Exceptions at basic block boundaries 545
360-67 & 370 used shared segments for sharing of pages ... i.e. implicit only one PTE per page frame (multiple different address spaces or segment tables ... and pointers to the same page table ... Debt Collection of PTEs).
360-67 only had 1mbyte segments (256 pages) and originally CMS only had something like 3-4 pages set up for shareable. So cp67 did have a hack for shared-pages that involved (a small number of) multiple different PTEs in different address spaces pointing to the same real page.
370 came out with options ... 2kpages and 4kpages and 64k (16 page) segments and 1mbyte (256 page) segments. CMS was restructure to have a single shared segment. The base 370 architecture also defined a feature where the segment table pointer (to the page table) could have a read-only flag ... so you could have store-protect on a shared-segment basis (similear but different to the 360 real memory storage protect based storage keys).
Hi, We have frequently discussed outsourcing here, and I thought you might be interested in the following which appeared in a mailing...
note that in the original 370 announcement, there wasn't mention of virtual memory support ... which was a later enhancement. the low & mid-range 370s ... it just required microcode change. But for the 370-155 & 370-165 it required significant hardware retrofit to the machines already in customer shops. At one point ... the 165 engineers raised an issue that they could ship basic virtual memory hardware support six months earlier if they could drop some of the stuff in the define virtual memory architecture (like shared segment protection). A business decision was finally made to drop the extra features from all 370 virtual memory implementations ... in order to have six month earlier announce & ship of virtual memory.
This caused quite a hardship for the CMS shared segment (across different virtual address space) protection ... and they finally had to come up with a hack kluge.
i had originally came up with global page replacement algorithm in the 60s as an undergraduate and added it to cp67 (and it was picked up and shipped in the standard product). this was about the same time as the ACM article appeared on working sets and local page replacement algorithm.
Over ten years later ... somebody was trying to get a stanford phd on global page replacement algorithm and there was quite a bit of opposition from the parties buttociated with local page replacement. I was asked if i could contribute.
It turns out that the grenoble science center had an ACM paper published in the early 70s on modifications they made to cp67 for local page replacements ... and performance measurements they ran on cp67 machine they ran at grenoble (360-67 with 1mbyte real storage, 154 4k "pageable pages" after fixed kernel requiremetns); 30-35 cms users with mixed-mode workload,
About the same time, cambridge science center
was running similar workload with 75-80 users on a 768k real storage 360-67 (104 4k pageable pages after fixed storage requirements) using a version of cp67 running my local page replacement algorithm ... and having about the same response and thruput as the grenoble machine (twice as many users and 1-3rd the real storage).
I provided old plots and papers ... and the person eventually got their phd.
misc. past posts mentioning shared segment protection:
Exceptions at basic block boundaries 546
Eric P. working set tended to buttign a task a set number of real pages. when a task faulted, local LRU replacement would select one of the tasks own pages for replacement. in...