jaggz wrote:Hi, ... Objective behind my question was some time back in our shop an application programmer ran a program which overlaid the key storages and we understood from the dump. ..
This makes absolutely no sense. All programs have some sort of "key storage" - either the program text itself or data, or both - that the program must have to run properly. This has absolutely nothing to do with storage keys used for storage protection. Most programs alter in some fashion, this storage. It is quite common for programs to improperly alter this storage because of errors in the program; this may account for the "overlaid the key storages" statement
In MVS and z/OS, most user programs are run using program and data in storage protected using key 8. For the most part a program running in key 8 in address space A is protected from a program running in address space B, also in key 8, by the paging hardware, even though the two programs frequently use common virtual addresses. I have been using MVS and z/OS systems for nearly 40 years, and I cannot recall any incident in which a problem state key 8 through 15 program accessed data in another address space.
Some programs are run using storage keys 0 through 7. There are several ways these keys are assigned which I won't discuss here. Collectively these storage keys are considered "authorized." There is only one way, to the best of my knowledge, which I will not discuss here, that an otherwise unauthorized program can be run using storage keys 0 through 7. This method is very tightly controlled, for obvious reasons.