NonStop S-Series Server Description Manual (G06.24+)

Memory Addressing and Access
HP NonStop S-Series Server Description Manual520331-003
4-50
Context-Bound Addresses
Context-Bound Addresses
Because only one addressing space, Kseg2, is available for providing aliases for all the
existing nonprivileged spaces (one or more per process), absolute addressing as an
alias has a finite limitation. Therefore, an alternate means of aliasing is provided,
called context-bound addressing. This is a software facility. It permits logical
segments to be created without absolute-address aliases. Such logical segments are
known as unaliased segments and are specified with an option parameter to the
SEGMENT_ALLOCATE_ procedure. Context-bound addresses (CBAs) can represent
any location in all the process address spaces. CBAs can be used only in privileged
state.
As an example of use, an operating system process might be the current process
address space; the process address space that provides a certain service for this
process is in a foreign process address space, as illustrated in Figure 4-24. The
operating system process uses context-bound addresses to access the foreign
process address space, which performs the requested service.
A CBA consists of two separate components: a CONTEXT specifier and a context-
relative address (CRADDR). CONTEXT is hidden from the program, but it is
implemented as a low-level table address. CRADDR is a relative address, the offset
from the start of the nonprivileged space.
For all processors, CONTEXT is the starting address of an array of pointers to Vseg
tables for the foreign address space. For flat segments, this array is the region table in
the PDST. For selectable segments, this array is an appendix to the operating system
structure for that logical segment. For some situations, a degenerate CBA is used, with
a zero CONTEXT and an absolute (Kseg2) address in CRADDR.