On 11 July 2015 at 18:47, Rob Scott <[email protected]> wrote:

> For the archives, here is the current key usage of IBM software that I am 
> aware of :
>
> 0Supervisor
> 1Job scheduler
> 3Availability manager
> 5Data management
> 6Communications (VTAM, TCP/IP)
> 7DB2, IMS and MQ
> 8,9V=V problem programs
> 10-15V=R problem programs

It's worth making clear that running with a PSW and/or storage key
that is officially used by some IBM component, or by a prominent ISV
product, is still safer than using key 0. There is no conflict in
having multiple products/components using the same system key, unless
one of them behaves exceptionally stupidly and high-handedly --
something like freeing all storage of key n under a TCB on the
assumption that it owns it all.

Writing new code to use a non-zero system key is one thing; modifying
existing code to do so potentially brings conflict with old design
and/or ignorance in implementation. I have worked on a product that
made no distinction between supervisor state and key 0. There was a
macro to go to "privileged mode" and one to go to "user mode".
Generally these expanded to "MODESET MODE=SUP,KEY=ZERO" and "MODESET
MODE=PROB,KEY=NZERO" respectively. Various local tests would be made
for arbitrarily one or the other of state and key, with generally
unpleasant results when in key 0 problem state (rare and probably
always unwise) or a non-zero system key and supervisor state.

The notion of using multiple system keys came in MVS; in SVS and
previous systems all the non-zero keys were used to separate each
user's storage from the others', because DAT was not available to do
so. Any program that works like the one I described is designed using
pre-MVS principles, even if written much more recently than 1972.

Tony H.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to