On 13 March 2012 11:08, Paul Gilmartin <paulgboul...@aim.com> wrote:
> On Tue, 13 Mar 2012 07:54:06 -0500, McKown, John wrote:
>
>>Going back into the dark days of history, CICS has often done things which 
>>the OS can also do. One thing I remember was it implemented its own version 
>>of program fetch. It would read the directory entry for a program, allocate 
>>the correct amount of storage in the CICS managed DSA (Dynamic Storage Area), 
>>then do BSAM READs to bring in the program as well as perform address 
>>relocation. Why? Because using a OS/360 LOAD macro would cause the entire 
>>region to "wait" while the program was loaded. By doing the function itself, 
>>it could do asynchronous reads and dispatch other transactions while the 
>>waiting for the READ to complete. Remember, this was in the days of very slow 
>>SLEDs such as 3330 disk drives and slow machines.
>>
> Sigh.  Conway's Law.  YA case of IBM's implementing valuable
> function in the wrong layer, thus depriving other components
> of its use.

IBM's multi-user subsystems have a long history of implementing their
own services, either on top of or bypassing the OS provided ones. HASP
(later JES2) provides a good example, not least because it documented
the reasons. It provided its own interval timer services because for
the first couple of decades of its existence there was no STIMERM, so
each task could have only one outstanding STIMER request. It provided
its own DASD space management services  because DADSM was such an
incredibly poor performer, and the VTOC scheme had limited function.
It did its own console commands and messages to avoid waits, and so on
and so on.

I don't know CICS, but it's of a similar age to HASP, and it seems
reasonable that it may have implemented its own services of necessity.
Now that many of them are provided by z/OS in a usable form, there's
probably a slow change in progress, as there has been with JES2.

To be sure, there are cases of subsystems gratuitously implementing
their own services that are worse in various senses than the OS ones.
Look at the original VSAM catalogues, or VSAM as a whole, for that
matter.

> The proper approach would have been to provide a
> NOWAIT option to LOAD, with an ECB to be POSTed when the
> operation completed.  Or, simply, for CICS to ATTACH programs
> and go about its business.  (But when does ATTACH return to
> its caller?  Immediately, or after performing a LOAD?)

It notionally returns immediately, and the LOAD is done under the new
subtask, which is the Right Way to do it.

Tony H.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN

Reply via email to