Computer Old Farts Forum
 help / color / mirror / Atom feed
* [COFF] [TUHS] Memory management in Dennis Ritchie's C Compiler
       [not found]   ` <CABH=_VS=Wyvnb_SoiCfRd3GaYwA47TJhMSRwpryBoEo38T6fyw@mail.gmail.com>
@ 2020-08-18 23:48     ` dot
  2020-08-19 17:39       ` paul.winalski
  0 siblings, 1 reply; 5+ messages in thread
From: dot @ 2020-08-18 23:48 UTC (permalink / raw)


--> COFF

Paul Winalski <paul.winalski at gmail.com> wrote:

mmap() / $CRETVA

> The VMS image activator (runtime loader in Unix-speak) used these
> primitives to load program images into virtual memory.  More than one
> process can map the same region of a file.  This is how sharing of
> read-only program segments such as .text is implemented.
>
> I think Burroughs OSes had this concept even before VMS.

Did MULTICS work the same way?

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

Tony.
-- 
f.anthony.n.finch  <dot at dotat.at>  http://dotat.at/
reject all prejudice and discrimination based upon race, colour,
religion, age, disability, gender, or sexual orientation


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [COFF] [TUHS] Memory management in Dennis Ritchie's C Compiler
  2020-08-18 23:48     ` [COFF] [TUHS] Memory management in Dennis Ritchie's C Compiler dot
@ 2020-08-19 17:39       ` paul.winalski
  2020-08-19 20:36         ` clemc
  0 siblings, 1 reply; 5+ messages in thread
From: paul.winalski @ 2020-08-19 17:39 UTC (permalink / raw)


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.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [COFF] [TUHS] Memory management in Dennis Ritchie's C Compiler
  2020-08-19 17:39       ` paul.winalski
@ 2020-08-19 20:36         ` clemc
  2020-08-19 22:09           ` paul.winalski
  0 siblings, 1 reply; 5+ messages in thread
From: clemc @ 2020-08-19 20:36 UTC (permalink / raw)


small update ... see below..

On Wed, Aug 19, 2020 at 1:39 PM Paul Winalski <paul.winalski at gmail.com>
wrote:

> 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.

Called the Data Address Translator (DAT) box.  I still have my 'TILT' deck
which is an IPL program that used diagnose instructions to spell TILT in
the lights on the DAT box and ring the console bell, which on a 360 was a
fire alarm.

BTW: the 67 had 8 32 bit TLB entries, built out of ECL flip-flops.



>   The only
> IBM OS to use it was CP/67, the virtual machine forerunner of VM/370.
>
Careful, TSS used it first actually and shipped before CP/67 - but it had a
number of issues.
CMU would work to fix them and Michigan would start and rewrite, creating
MTS (which was not an IBM product but TSS was and shipped into the early
1980s).

I just did a review of a book that I'll find out when it supposed to hit
the streets by some tech historians in the UK.   I reviewed the chapter
where CTSS begets, Multics and TSS,  beget UNIX and MTS respectfully.
 Basically the name of the chapter is the rise of idea of timesharing.
 [No worries, the DEC world is in the book also, but follows a different
thread - this is looking at the fight at IBM and GE between commercial
batch and timesharing].

>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/coff/attachments/20200819/f6439cfe/attachment.htm>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [COFF] [TUHS] Memory management in Dennis Ritchie's C Compiler
  2020-08-19 20:36         ` clemc
@ 2020-08-19 22:09           ` paul.winalski
  0 siblings, 0 replies; 5+ messages in thread
From: paul.winalski @ 2020-08-19 22:09 UTC (permalink / raw)


On 8/19/20, Clem Cole <clemc at ccc.com> wrote:
> small update ... see below..
>
> On Wed, Aug 19, 2020 at 1:39 PM Paul Winalski <paul.winalski at gmail.com>
> wrote:
>
>> 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.
>
> Called the Data Address Translator (DAT) box.  I still have my 'TILT' deck
> which is an IPL program that used diagnose instructions to spell TILT in
> the lights on the DAT box and ring the console bell, which on a 360 was a
> fire alarm.
>
> BTW: the 67 had 8 32 bit TLB entries, built out of ECL flip-flops.

The various OS/VS variants for S/370 were way late.  IBM was forced to
release the models 155 and 165 before OS/VS was available.  The
decided to take the opportunity to stick it to the third-party leasing
companies.  The S/370 models 155 and 165 were released without DAT
boxes.  The third-party leasers gobbled them up.  The third S/370, the
model 145, had to be released with the DAT hardware and microcode
because the IBM 1400 emulator needed it.  Then OS/VS was finally
ready.  For the model 145 DAT support just worked.  For the 155 and
165, a DAT box could be added to turn them into the 155-II and 165-II.
If you leased your machine from IBM, you got the upgrade for free.  If
you had bought the machine, you had to pay through the nose to get a
DAT box.

>>   The only
>> IBM OS to use it was CP/67, the virtual machine forerunner of VM/370.
>>
> Careful, TSS used it first actually and shipped before CP/67 - but it had a
> number of issues.
> CMU would work to fix them and Michigan would start and rewrite, creating
> MTS (which was not an IBM product but TSS was and shipped into the early
> 1980s).

I forgot all about TSS.

> I just did a review of a book that I'll find out when it supposed to hit
> the streets by some tech historians in the UK.   I reviewed the chapter
> where CTSS begets, Multics and TSS,  beget UNIX and MTS respectfully.
>  Basically the name of the chapter is the rise of idea of timesharing.
>  [No worries, the DEC world is in the book also, but follows a different
> thread - this is looking at the fight at IBM and GE between commercial
> batch and timesharing].

GECOS was GE's commercial batch OS, IIRC.  Dartmouth Time-Sharing
System (DTSS) ran on the GE 635.

-Paul W.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [COFF] [TUHS] Memory management in Dennis Ritchie's C Compiler
       [not found] <20200817195108.75FED18C09E@mercury.lcs.mit.edu>
@ 2020-08-21  9:08 ` lars
  0 siblings, 0 replies; 5+ messages in thread
From: lars @ 2020-08-21  9:08 UTC (permalink / raw)


Noel Chiappa writes:
>     > From: Larry
>     > It's possible the concept existed in some other OS but I'm not
>     > aware of it.
>
> It's pretty old. Both TENEX and ITS had the ability to map file pages
> into a process' address space.

I have a date for when this feature was announced for ITS.  The previous
.CBLK UUO could not access files.

RMS 09/30/73 10:13:28  JOBS! BE FIRST IN YOUR TREE TO INSERT A DISK FILE PAGE!
SEE .INFO.;CORBLK ORDER FOR DETAILS.

(This is now redirected to COFF.)

In related news: A rather complete full dump of the MIT-AI PDP-10 from
1971 has been found.  It includes full source code and documentation for
the system, including ITS version 671, DDT, TECO, MIDAS, (MAC)LISP,
CHESS (MacHack), MUDDLE, LOGO, MACSYMA, etc.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-08-21  9:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [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     ` [COFF] [TUHS] Memory management in Dennis Ritchie's C Compiler dot
2020-08-19 17:39       ` paul.winalski
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).