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