Computer Old Farts Forum
 help / color / mirror / Atom feed
From: paul.winalski at gmail.com (Paul Winalski)
Subject: [COFF] [TUHS] Memory management in Dennis Ritchie's C Compiler
Date: Wed, 19 Aug 2020 13:39:38 -0400
Message-ID: <CABH=_VS4P5yQ+7aO+DoO4pqzqt_PPccMEACJuzFs1PZzZ2t6Fg@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.20.2008190041300.21522@grey.csi.cam.ac.uk>

On 8/18/20, Tony Finch <dot at dotat.at> wrote:
>
> The Manchester / Ferranti Atlas had virtual memory in 1962 but I don't
> know how much they used it for multiprogramming (and by implication shared
> text segments) - it didn't do timesharing until later, but AIUI virtual
> memory helped it to have an exceptionally good job throughput for the
> time. Perhaps their motivation was more to do with having a good shared
> implementation of overlays and paged IO.
>
> https://en.wikipedia.org/wiki/Single-level_store

I knew the Manchester invented virtual memory in the Atlas system.

In the IBM System/360 world, the first machine with Dynamic Address
Translation (DAT, the hardware that implements virtual->physical
address transiation via page tables) was the S/360 model 67.  The only
IBM OS to use it was CP/67, the virtual machine forerunner of VM/370.
All of the models of System/370 eventually got virtual memory
capability.  The different OSes implemented virtual memory quite
differently:

DOS/VS, the OS for smaller machines, had a single, demand-paged
virtual address space that could be larger than physical memory..
This could be partitioned into five user program spaces.  DOS/VS could
run up to five processes (one per partition) simultaneously.  Process
scheduling was strictly preemptive--the program in P4 got the CPU
whenever it needed it.  P3 only ran when P4 was stalled; P2 only when
P4 and P3 were stalled, etc.  At our school we ran the spooling system
in P4 since it was almost completely I/O bound.  P3 ran the
administrative transaction processing system.  P2 ran the student
time-sharing software.  P1 and BG (background; the lowest on the
scheuling totem pole) ran batch jobs.

OS/VS1 was the successor to OS/MFT (multiprogramming with a fixed
number of tasks).  Like DOS/VS, it had a single virtual address space
divided into partitions, but you could have more than five of them.

OS/VS2 SVS (single virtual storage) was the first successor to OS/ MVT
(multiprogramming with a variable number of tasks).  It, too, had a
single virtual address space, but partitioning was done dynamically.

OS/VS2 MVS (multiiple virtual storage) was the only one of the lot to
handle virtual memory the way that modern OSes do.  Each process got
its own, independent virtual address space.

-Paul W.


  reply	other threads:[~2020-08-19 17:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20200817192715.22D9518C09E@mercury.lcs.mit.edu>
     [not found] ` <20200817193050.GC11413@mcvoy.com>
     [not found]   ` <CABH=_VS=Wyvnb_SoiCfRd3GaYwA47TJhMSRwpryBoEo38T6fyw@mail.gmail.com>
2020-08-18 23:48     ` dot
2020-08-19 17:39       ` paul.winalski [this message]
2020-08-19 20:36         ` clemc
2020-08-19 22:09           ` paul.winalski
     [not found] <20200817195108.75FED18C09E@mercury.lcs.mit.edu>
2020-08-21  9:08 ` lars

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CABH=_VS4P5yQ+7aO+DoO4pqzqt_PPccMEACJuzFs1PZzZ2t6Fg@mail.gmail.com' \
    --to= \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Computer Old Farts Forum

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://inbox.vuxu.org/coff

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 coff coff/ http://inbox.vuxu.org/coff \
		coff@minnie.tuhs.org
	public-inbox-index coff

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.coff


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git