Page 1 of 1

What is AM and AC?

PostPosted: Sat Oct 20, 2012 2:55 pm
by Mehdi shri
Dear friends:
What's the means of AM, AC and SSI columns in the a PDS liberary which contain load modouls (like below) ?
 Name         Size          TTR         AC       AM        RM          SSI   
LOADTR01     00004C10       000C07      00       31        ANY      BE512010

Re: What is AM and AC?

PostPosted: Sat Oct 20, 2012 3:13 pm
by enrico-sorichetti
if You look at the ISPF user guide vol 1 and search for AC / AM
here for example
http://publibz.boulder.ibm.com/cgi-bin/ ... 0610214209
You will find the answer
( not the last one but more than enough for the question asked )

and the explanation for the zOS meaning for them can be found here
http://www.redbooks.ibm.com/abstracts/sg246366.html

or better ... search Yourself
http://www.redbooks.ibm.com for
ABCs of z/OS System Programming

to save You some work here is the link to the first volume of the series
http://www.redbooks.ibm.com/abstracts/sg246981.html

Re: What is AM and AC?

PostPosted: Sat Oct 20, 2012 10:05 pm
by steve-myers
Mr. Sorichetti is correct in referring you to documentation, but these parameters are relatively obscure and moderately difficult for a beginner to find.

AM is "Addressing Mode." z/OS hardware has 3 addressing modes: 24, 31, and 64. The AM refers to the number of bits in a virtual storage address a program can use. AM 24 goes back to OS/360, which did not have virtual storage, and was still the basis for the very first releases of MVS. AM 31 goes back to MVS/XA, and AM 64, which is very rarely used, is only available with z/OS.

RM is related to Residency Mode. RM is a load module attribute, and refers to the address in virtual storage where a program can be located. Realistically, there are just 2: 24 and ANY, where ANY is both 24 and 31, though load modules with RM ANY are usually loaded only above the 16 meg line. Load modules cannot be defined as AM 24 and RM ANY, since the storage where the load module is loaded cannot be addressed. Load modules with AM 31 and RM 24 are very common.

AC is Access Code. AC is a load module attribute. Load modules with AC 1 can use some operating system resources that are only easily available to Assembler programmers.

Re: What is AM and AC?

PostPosted: Sun Oct 21, 2012 7:59 pm
by steve-myers
You also inquired about SSI. This is rather more complicated. IBM uses it, but it is rarely used by us users. It has no impact other than providing information on the load module. This link describes IBM's use of SSI.

In the late 1960s and early 1970s there was a user modification for the OS/360 Linkage Editor that stored the date the module was linked into SSI data. The need for this was reduced after IBM modified the Linkage Editor to store the date a load module was linked into the load module text.

Re: What is AM and AC?

PostPosted: Mon Oct 22, 2012 7:37 pm
by Pedro
Load modules with AC 1 can use some operating system resources that are only easily available to Assembler programmers.

True. But more specifically, AC is the authorization code. Load modules with AC=1 can get into supervisor state if they reside in a library that is APF authorized. AC=1 without an APF library is a no-op.

Re: What is AM and AC?

PostPosted: Wed Oct 24, 2012 7:20 am
by steve-myers
Pedro is only partially correct. An "authorized" program can use other resources that do not necessarily require key 0/supervisor state. Back in the 1980s I had a couple of "authorized" programs that opened the VTOC for output, and performed APF blessed ENQ/RESERVE macros, but that otherwise ran in problem state and problem storage key. An unauthorized program program can get S047 ABENDs when it attempts to get into a more authorized state.

Re: What is AM and AC?

PostPosted: Wed Oct 24, 2012 9:29 pm
by Pedro
performed APF blessed ... but that otherwise ran in problem state and problem storage key.

I do not believe that is exactly true.

You are right that a program does not have to issue MODESET to get into supervisor state to have special privileges. But the program still needs to reside in an APF authorized dataset. You can issue some macros merely because of being from an APF dataset and can also inherit some based on state of the caller.

And because the program is loaded from an APF authorized dataset, it gets loaded into read-only memory. That is, you can not say that it is exactly like a simple user program.

Re: What is AM and AC?

PostPosted: Wed Oct 24, 2012 10:33 pm
by Ed Goodman
Oh SNAP!

Re: What is AM and AC?

PostPosted: Wed Oct 24, 2012 11:34 pm
by steve-myers
Pedro wrote:... And because the program is loaded from an APF authorized dataset, it gets loaded into read-only memory. ...
Only if the program is reenterable. And the storage is key 0, which for all practical purposes is read only storage. Also, it's an APF library or a link list library.

As of z/OS 1.10 there is a system option to load reenterable programs in a regular library into key 0 storage. Finally!