> 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

Reply via email to