The following message is a courtesy copy of an article
that has been posted to bit.listserv.ibm-main,alt.folklore.computers as well.


shmuel+ibm-m...@patriot.net (Shmuel Metz  , Seymour J.) writes:
> Who R U? In CICS you're supposed to use CICS services for I/O, not to do
> your own in the main CICS task. One of those services is to run code in a
> separate subtask so that you are allowed to do things directly that would
> otherwise be prohibited.

one of the examples of not appearing to be multithreaded to the
operating system ... was that CICS didn't utilize multiprocessors until
less than ten years ago ... it appeared like one large task to the
operating system ... and CICS provided all the subtask & thread
management internally. Since CICS only appeared like one large
application to the operating system ... there was no way of having
concurrent pieces executing simultaneously on different processors. For
a long time, to utilize additional processors required having multiple
separate CICS regions executing concurrently (I was in datacenter less
than decade ago with banner mentioning having over 120 CICS regions).

there was lots & lots in CICS attempting to isolate itself as much as
possible from the high overhead of the underlying operating system
... using the operating system for bare scaffold to operate the machine
... but attempting to do as much of everything else itself.

I was undergraduate at univ. in the 60s and responsible for os/360
support. The univ. library got an ONR grant for online catalog ... part
of the funds was used to purchase a 2321 datacell. The effort was also
selected to be one of the betatest sites for the original/first CICS
product release ... and I got tasked to also do CICS support (I didn't
even get sent to any CICS classes ... just had to figure things out from
code and dumps).

CICS would do all its file opens at start up and keep them open for the
duration of CICS execution. One of the first bugs I had to shoot was
CICS file open bug that resulting in abend ... problem turned out to be
that the BDAM file options used by the original (customer) CICS
implementation ... was different than the BDAM file options being used
by the library (and there was buried stuff in the code specific to the
particular BDAM options).

... as aside some of the posting problems seem to coincide with news
about SSL DOS attack on CIA & PAYPAL (& others). Some number of usenet
servers are utilized by SSL ... at least for entering userid/password as
part of posting. I haven't seen any specific evidence ... but recent
usenet posting issues seem to coincide with some of the recent reports
of SSL DOS attacks.

these URLs have gone 404 ... but still around on wayback machine

The Evolution of CICS: CICS and Multi-region Operation (1980)
http://web.archive.org/web/20040705000349/http://www.yelavich.com/history/ev198001.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 ...

for a little multiprocessor topic drift ... charlie had invented
compare&swap instruction when working on fine-grain multiprocessor
support for cp67 (compare&swap chosen because CAS are charlie's
initials). First foreys into POK to get compare&swap instruction
included in 370 was rebuffed ... claim being that the POK favorite son
operating system had decided that the TEST&SET instruction (from 360
multiprocessor) was more than adequate. The challenge was that in order
to get compare&swap included in 370 ... it would be necessary to invent
some non-multiprocessor, non-SMP uses for the instruction. Thus was born
the examples for multithreaded/multitasking operation (whether or not
running in multiprocessor environment).

the principles of operation programming notes for compare&swap have
change little since the original version:
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/dz9zr003/A.6?DT=20040504121320

compare&swap became stable for use by highly multithreaded operation 
(especially scalable DBMS applications) and showed up on wide variety
of platforms (or something with very similar semantics).

One of the early problems for rs/6000 starting to sell into DBMS market
segment ... was not having a compare&swap instructions (DBMS were forced
to use unix kernel calls to achieve multithreaded serialization
... putting rs/6000 DBMS operation at significant thruput disadvantage).
Eventually AIX on rs/6000 offered a special supervisor call interrupt
hack; special fast path in the supervisor call FLIH that would simulate
the compare&swap semantics and immediately return to the caller
(disabled for interrupts ... meets requirements for atomic operation in
a non-multiprocessor environment).

-- 
42yrs virtualization experience (since Jan68), online at home since Mar1970

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to