Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Anne & Lynn Wheeler <lynn@garlic.com> |
|---|---|
| Newsgroups | comp.arch |
| Subject | Re: History of byte addressing |
| Date | 2011-06-11 15:05 -0400 |
| Organization | Wheeler&Wheeler |
| Message-ID | <m3y618p4ry.fsf@garlic.com> (permalink) |
| References | (9 earlier) <isht8n$m84$1@dont-email.me> <Nd8Hp.394$tp.382@newsfe06.iad> <isj3ub$44n$1@dont-email.me> <4DEDBA2F.6010503@SPAM.comp-arch.net> <islfn2$h6g$1@dont-email.me> |
Stephen Fuld <SFuld@alumni.cmu.edu.invalid> writes: > While you know far more about this than I do, and you may very well be > right about what the government did, that seems too simplistic. A > minimal kernel/user privilege just prevents user mode programs from > executing certain instructions. That is, it does not assure memory > protection. For example, IBM's CICS (its major transaction system for > S/370 and successors) had for a long time (and may still have) the > "feature" that both the CICS monitor and all user written transactions > were in a single address space. Thus a user written transaction > program with a subscript gone awry could over write another user > program, or even the CICS monitor. So for reasonable security, you > need more than just user/kernel mode protection. when undergraduate at univ., the univ. library got a ONR grant to do online catalog; part of the money went to get a 2321 (data cell). the effort was also selected to be betatest for original CICS product ... and I got tasked to support/debug CICS in the effort ... some past posts http://www.garlic.com/~lynn/submain.html#cics CICS had originally been developed at customer account ... and then went through some amount of effort to productize it. ordinary OS/360 was real memory (single address space) with enormous overhead related to scheduling, task switch, file open/close ... just about every systeme function. CICS (as did quite a few other "online" environments for os/360) would go thru all the high-overhead operations at startup ... and then appear like a continuously running, single large task to os/360 ... while implementing a lot of fine-grain light-weight monitor functions internally. Note that 360 in addition to single (real) address space did provide 2k granularity fetch&storage protection. Besides the problem/supervisor state flag in the PSW ... each 2k storage block could have a 4bit "protect" key (for store protect as standard, 360 had optional "fetch protect" feature ... which could provide fetch protect in addition to store-protect). The PSW (changing was a supervisor/privilege operation) would have 4 bit key ... which needed to match the 2kblock 4bit key for storage operation to succeed (PSW key 0 allowed privilege bypass store/fetch protect). This was mainly used to protect os/360 from applications and keep applications separated (allowing up to 15 concurrent applications). However, since CICS appeared as single large application, there wasn't any use of intra-CICS key protect. However, CICS applications tended to be very small and light-weight and underwent extensive testing and review before being allowed to run in production environment. CICS was one of the multithreaded application environments that could leverage the compare&swap instruction ... recently mentioned: http://www.garlic.com/~lynn/2011g.html#79 alignment, was History of byte addressing other posts mentioning compare&swap and/or smp http://www.garlic.com/~lynn/subtopic.html#smp while 370 introduced virtual memory, the single address space heritage and pointer-passing API was so deeply ingrained that the MVS operating system (separate address space for every application) continued to have an image of the operating system occupying every virtual address space (which also perpetuated the need for the storage key protection). Also from OS/360 heritage there were some number of "subsystem" services that resided outside the kernel proper. In the transition to MVS, these subsystems were moved their individual private address space (also having an image of the kernel proper). This created major problem with "normal" applications making a subsystem call using pointer-passing API (since they now occupied different address spaces). The solution was something called the "common segment" ... an image which appeared in every address space (akin to kernel image in every address space) ... however the size of the common segment needed to be somewhat proportional to the number of subsystems and the number of concurrent applications using those subsystems. Towards the end of the 370 period (while still 24bit addressing and before 31bit addressing) ... each application 16mbyte virtual address space would have an 8mbyte image of the kernel and for large installations, common segments that ran 4-5mbytes (threatening to grow to 5-6mbytes); aka some installations were being faced with limiting application size (including things like total CICS) to 2mbytes. The follow-on architecture would have "access registers" & program call ... basically an infrastructure of MVS "system tables" which support application pointer-passing API call directly to a subsysetm function in another virtual address space. The tables would allow hardware to swap virtual address space pointers (... nearly identical to call to library function in the same address space). The subsystem would have secondary address space pointer back to calling application to directly access parameters (from the pointer passing API), return results in the application address space and do a (hardware) program return (restoring caller's address space). The CICS workaround to address space limitation and lack of system multi-threading (i.e. purely internal multi-threading but appearing as single large task to the system) ... so only ran as a single process on a single processor ... installations would run multiple concurrent CICS "regions". In the early part of this century, it wasn't unusual to find some large installations with over 100 concurrently running CICS regions (in independent virtual address space, each doing their own independent multithreaded support). CICS system level multithreading operation didn't appear until 2004 (i.e. single CICS address space running threads concurrently on multiple processors). Major CICS history site has gone 404 ... but lives on at the wayback machine http://web.archive.org/web/20050409124902/www.yelavich.com/cicshist.htm The Evolution of CICS: CICS and Multiprocessor Exploitation (2004) http://web.archive.org/web/20041023110006/http://www.yelavich.com/history/ev200402.htm from above: CICS chose to provide for a multi-tasking environment under a single Task Control Block (TCB) using its own dispatcher (Task Control Program) rather than attempt to multi-task concurrent transaction processing using operating system subtasks. Not only was the overhead of operating system subtasking considered excessive, but having concurrently dispatched applications would have required programs to be reentrant and serialize their use of shared resources. That was felt to be too complicated at the time. ... snip ... -- virtualization experience starting Jan1968, online at home since Mar1970
Back to comp.arch | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
History of byte addressing John Levine <johnl@iecc.com> - 2011-06-02 19:36 +0000
Re: History of byte addressing nmm1@cam.ac.uk - 2011-06-02 20:38 +0100
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-03 08:05 -0700
Re: History of byte addressing Alex McDonald <blog@rivadpm.com> - 2011-06-03 05:26 -0700
Re: History of byte addressing Anne & Lynn Wheeler <lynn@garlic.com> - 2011-06-03 09:48 -0400
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-03 07:49 -0700
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-03 10:56 -0700
Re: History of byte addressing "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-06-04 10:59 -0700
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-04 15:01 -0700
Re: History of byte addressing nmm1@cam.ac.uk - 2011-06-04 22:53 +0100
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-05 10:40 -0700
Re: History of byte addressing John Levine <johnl@iecc.com> - 2011-06-05 06:10 +0000
Re: History of byte addressing Robert Myers <rbmyersusa@gmail.com> - 2011-06-05 10:00 -0700
Re: History of byte addressing Robert Myers <rbmyersusa@gmail.com> - 2011-06-05 10:04 -0700
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-05 10:36 -0700
Re: History of byte addressing "Paul A. Clayton" <paaronclayton@gmail.com> - 2011-06-05 11:00 -0700
Re: History of byte addressing Morten Reistad <first@last.name> - 2011-06-05 21:42 +0200
Re: History of byte addressing anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-06-06 17:03 +0000
Re: History of byte addressing Andrew Reilly <areilly---@bigpond.net.au> - 2011-06-06 23:55 +0000
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-06 18:26 -0700
Re: History of byte addressing Andrew Reilly <areilly---@bigpond.net.au> - 2011-06-07 05:08 +0000
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-07 03:26 -0700
Re: History of byte addressing Roberto Waltman <usenet@rwaltman.com> - 2011-07-05 20:00 -0400
Re: History of byte addressing jsavard@excxn.aNOSPAMb.cdn.invalid (John Savard) - 2011-07-06 00:15 +0000
Re: History of byte addressing George Neuner <gneuner2@comcast.net> - 2011-06-05 16:18 -0400
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-05 22:10 -0700
Re: History of byte addressing torbenm@diku.dk (Torben Ægidius Mogensen) - 2011-06-07 10:50 +0200
Re: History of byte addressing "Skybuck Flying" <Windows7IsOK@DreamPC2006.com> - 2011-06-07 16:02 +0200
Re: History of byte addressing "Skybuck Flying" <Windows7IsOK@DreamPC2006.com> - 2011-06-07 15:51 +0200
Re: History of byte addressing Louis Krupp <lkrupp@nospam.indra.com.invalid> - 2011-06-05 13:43 -0600
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-05 22:12 -0700
Re: History of byte addressing EricP <ThatWouldBeTelling@thevillage.com> - 2011-06-06 02:04 -0400
Re: History of byte addressing Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2011-06-05 23:49 -0700
Re: History of byte addressing EricP <ThatWouldBeTelling@thevillage.com> - 2011-06-06 13:34 -0400
Re: History of byte addressing Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2011-06-06 10:49 -0700
Re: History of byte addressing "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-06-06 22:42 -0700
Re: History of byte addressing Anne & Lynn Wheeler <lynn@garlic.com> - 2011-06-07 07:37 -0400
Re: History of byte addressing Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2011-06-07 08:22 -0700
Re: History of byte addressing "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-06-11 09:56 -0700
Re: History of byte addressing EricP <ThatWouldBeTelling@thevillage.com> - 2011-06-11 14:59 -0400
Re: History of byte addressing Louis Krupp <lkrupp@nospam.indra.com.invalid> - 2011-06-11 18:52 -0600
Re: History of byte addressing "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-06-12 12:40 -0700
Re: History of byte addressing Anne & Lynn Wheeler <lynn@garlic.com> - 2011-06-11 15:05 -0400
Re: History of byte addressing Louis Krupp <lkrupp@nospam.indra.com.invalid> - 2011-06-06 13:10 -0600
Re: History of byte addressing George Neuner <gneuner2@comcast.net> - 2011-06-06 16:41 -0400
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-06 18:13 -0700
Re: History of byte addressing Louis Krupp <lkrupp@nospam.indra.com.invalid> - 2011-06-06 23:50 -0600
Re: History of byte addressing Jim Haynes <jhaynes@alumni.uark.edu> - 2011-06-07 10:01 -0500
Re: History of byte addressing Louis Krupp <lkrupp@nospam.indra.com.invalid> - 2011-06-07 13:09 -0600
Re: History of byte addressing Louis Krupp <lkrupp@nospam.indra.com.invalid> - 2011-06-07 14:03 -0600
Re: History of byte addressing Louis Krupp <lkrupp@nospam.indra.com.invalid> - 2011-06-06 05:16 -0600
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-05 10:44 -0700
Re: History of byte addressing John Levine <johnl@iecc.com> - 2011-06-06 05:00 +0000
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-05 22:11 -0700
Re: History of byte addressing nmm1@cam.ac.uk - 2011-06-06 08:00 +0100
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-06 18:16 -0700
Re: History of byte addressing Michael S <already5chosen@yahoo.com> - 2011-06-06 01:01 -0700
Re: History of byte addressing nmm1@cam.ac.uk - 2011-06-06 08:30 +0100
Re: History of byte addressing Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-06-06 10:34 +0200
Re: History of byte addressing Michael S <already5chosen@yahoo.com> - 2011-06-06 03:29 -0700
Re: History of byte addressing Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-06-06 15:21 +0200
Re: History of byte addressing Michael S <already5chosen@yahoo.com> - 2011-06-06 03:23 -0700
Re: History of byte addressing MitchAlsup <MitchAlsup@aol.com> - 2011-06-07 08:01 -0700
Re: alignment, was History of byte addressing John Levine <johnl@iecc.com> - 2011-06-06 18:33 +0000
Re: alignment, was History of byte addressing nmm1@cam.ac.uk - 2011-06-06 19:30 +0100
Re: alignment, was History of byte addressing Anne & Lynn Wheeler <lynn@garlic.com> - 2011-06-06 15:32 -0400
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-06 18:11 -0700
Re: History of byte addressing Robert Myers <rbmyersusa@gmail.com> - 2011-06-06 06:48 -0700
Re: History of byte addressing jsavard@excxn.aNOSPAMb.cdn.invalid (John Savard) - 2011-07-03 16:13 +0000
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-07-03 09:10 -0700
Re: History of byte addressing "Skybuck Flying" <Windows7IsOK@DreamPC2006.com> - 2011-06-07 16:23 +0200
Re: History of byte addressing Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2011-06-07 08:26 -0700
Re: History of byte addressing "Skybuck Flying" <Windows7IsOK@DreamPC2006.com> - 2011-06-07 16:25 +0200
Re: History of byte addressing "Skybuck Flying" <Windows7IsOK@DreamPC2006.com> - 2011-06-07 16:45 +0200
Re: History of byte addressing "Skybuck Flying" <Windows7IsOK@DreamPC2006.com> - 2011-06-07 16:48 +0200
Re: History of byte addressing "Skybuck Flying" <Windows7IsOK@DreamPC2006.com> - 2011-06-07 16:59 +0200
Re: History of byte addressing "Skybuck Flying" <Windows7IsOK@DreamPC2006.com> - 2011-06-07 17:05 +0200
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-06-18 15:43 -0700
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-07-04 03:14 -0700
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-07-04 03:40 -0700
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-07-04 04:28 -0700
Re: History of byte addressing nmm1@cam.ac.uk - 2011-07-04 13:38 +0100
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-07-04 06:47 -0700
Re: History of byte addressing nmm1@cam.ac.uk - 2011-07-04 14:16 +0100
Re: History of byte addressing Bill Findlay <yaldnif.w@blueyonder.co.uk> - 2011-07-04 15:53 +0100
Re: History of byte addressing Bill Findlay <yaldnif.w@blueyonder.co.uk> - 2011-07-04 15:36 +0100
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-07-04 07:50 -0700
Re: History of byte addressing John Levine <johnl@iecc.com> - 2011-07-04 19:46 +0000
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-07-04 15:29 -0700
Re: History of byte addressing Bill Findlay <yaldnif.w@blueyonder.co.uk> - 2011-07-05 00:02 +0100
Re: History of byte addressing Bill Findlay <yaldnif.w@blueyonder.co.uk> - 2011-07-04 15:47 +0100
Re: History of byte addressing Quadibloc <jsavard@ecn.ab.ca> - 2011-07-04 07:54 -0700
csiph-web