Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch > #2151

Re: History of byte addressing

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>

Show all headers | View raw


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


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