re:
http://www.garlic.com/~lynn/2012f.html#28 which one came first
360/67 had 1mbyte segments, 256 4k pages ... and 24bit and 32bit virtual
addressing modes (16 1mbyte and 4096 1mbyte)
370 just had 24bit virtual addressing ... but had 1mbyte and 64kbyte
virtual segment sizes and 4kbyte and 2kbyte virtual page size options.
the original 370 virtual memory specification had a bunch of additional
options ... included r/o shared segment bit in segment table entries.
370s were announced and shipped before virtual memory feature was
announced ... virtual memory later had to be retrofitted. most machines
implemented the full 370 virtual memory specification ... and in the
cp67/cms to vm370/cms transition, cms was reorganized to make use of the
64kbyte "read-only" (protected) shared segments (16 4kbyte shared
pages). problem arose retrofitting the full 370 virtual memory
specification to 370/165 ... and in order to get back six months in
schedule ... it was decided to drop several virtual memory features
... included r/o shared segment protection (370 models that had already
implemented the full set of features had to go back and remove the
dropped features).
vm370/cms was then stuck with how to have protected shared segments when
the hardware support had been dropped.
360 (and 370) had 2k "storage-protect" keys ... left over from 360
real-storage protection ... 4bit key for every 2kbyte of storage and PSW
field ... if PSW field matched the storage key ... store operations were
allowed (psw key of zero turned off store protect).
vm370/cms retreated to real hack to emulate segment protect ... cms
virtual machine with any shared "segments" always had its psw key set to
"15" and all non-shared storage set to "15" ... and all 2k areas in
"shared segment" were set to zero (preventing all stores in shared
pages).
w/o memory-mapped filesystem ... cp67 & vm370 had a real hack ... special
area in paging system ... appropriate privileges could execute "savesys"
command that wrote image of virtual pages to the special area. The
machine "IPL" command was allowed to be a name of the special area (as
alternative to device address) ... which would map virtual memory to the
saved named area. "named systems" have special configuration specifying
the pages saved/restored ... and the segments designated as "shared"
(& protected)
i could elimiante all that in cp67 with memory-mapped filesystem ...
and then moved the support to vm370 base. One of the big problems I
constantly fought was os/360 "relocatable address constants". CMS
borrowed compilers and applications from os/360 ... as well as many
conventions. os/360 relocatable address constants were application on
disk ... the application is fully read into (emulated real) storage
... and all relocatable address constants were swizzled to correspond
with the address where application was loaded.
memory-mapped filesystem should allow executiable applications mapped to
any available addres w/o having to thread way through lots of the image
... swizzling all the address constants (making them absolute). Swizzled
"absolute" addresses (after loading) also results in problems with
sharing exact same image in different virtual address spaces.
tss/360 addressed the design by having the address fields in application
images as relative to some virtual address space specific field. For me,
I was constantly battling the os/360 relocatable address constant
convention used by cms ... misc. past posts
http://www.garlic.com/~lynn/submain.html#adcon