* [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
[parent not found: <20200817195108.75FED18C09E@mercury.lcs.mit.edu>]
* [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).