> Can anyone tell me where I can find clear explanations and difference > between the following: > > 1. Home address > 2.Primary address > 3.Secondary address
Each address space is identified by a 16 bit number called the address space identifier (ASID.) It is used by hardware during the translation process and MVS also uses it as an index in various tables such as the ASVT. All jobs, started tasks, TSO sessions, Unix processes etc, have exactly one address space each and from each job's perspective its known as the HOME address space (HASN.) Ok. All done with that thought. An address space is an address space. No more or less. Now, The System/370 introduced the concept of synchronous "cross memory" services as a way to provide 24-bit constraint relief as well as some horizontal scalability and functional isolation. Cross-memory services allow you to switch control of a running program over into another address space (a cross-memory server address space) to access functionality and/or data in that space. In S/370 and later, the address space where the instructions are being fetched from (executed) is known as the PRIMARY address space (PASN.) The architecture originally allowed for data movement between the PRIMARY address space and a SECONDARY address space (SASN.) ESA changed that, but the terminology and usage were well established before then. When a job starts, the home address space is also the primary AND the secondary address space. You often see this written down as PASN=SASN=HASN. When a space switch happens the primary and/or secondary address space is changed to "point to" another address space. The "switch" is caused by executing a space-switching PC instruction and/or a "set-secondary" SSAR instruction. A privileged (server) application first has to use cross-memory services to set up PC entry tables for PC instructions to be used by its clients. When a client program issues a PC instruction, the hardware uses these tables to figure out what address space and state to run in. After a PC switch "into" another address space, that address space becomes the PRIMARY address space. So at that point, PASN=SERVER, and HASN is whatever it was originally. The HASN -never- changes, but SASN may or may not change at the same time as PASN. It "depends" whether SASN=HASN, or SASN=PASN. Later the cross-memory server code switches back to the original caller's address space by issuing a PT or PR instruction and you're back where you started. It's more complex than that, but close enough for a 50,000' view. It's all written down in POPs, but if you don't have much of an internals background it may as well be written in Latin. CC ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

