To use fetch protection, a virtual machine must execute the set
storage key(SSK) instruction referring to the data areas to be
protected, with the fetch protect bit in the key.VM/370 subsequently:
1. Checks for a fetch protection violation when handling privileged
and nonprivileged instructions.
2.Saves and restores the fetch protection bit (in the virtual storage
key) when writing and recovering virtualmachine pages froB the
paging device.
3. Checks for a fetch protection violation on a writeCCW (except for
spooling or console devices).
A special case of storage protection occurs when theCMS nucleus
resides in a protected shared segment. TheCMS nucleus may be protected
and still be shared by manyCftS users. After a virtual machine has used
a protected shared segment, the pages are checked for changes. If any
pages have been changed, the user gets placed in console functionmode after error :essage DMKVKA U 56W. the changed page is
returned to CP free storage.EXECUTING THE PAGEIBLE CONTROL PROGRAM Calls to pageable routines are recognized at execution time by the SVC 8
linkage manager inDMKSYC. For every SVC 8, the called address (in the
caller's GPR15) is tested to see if it is within the resident nucleus.
If it is less thanDMKCPEND and greater than DMKSLC, the called
routine's base address is placed in GPR12 and control is passed to the
called routine in thenormal way. However, if the called address is
aboveDftKCPEND or below DMKSLC, the linkage manager issues a TRIIS macro, requesting the paging manager to locate and, if necessary,
page-in the called routine. TheTRANS is issued with LOCK option.
Thus, the lock count associated with the called routine's real page
indicates the responsibility count of the module.• When the module is called, the count is incremented. • When the routine exits via SVC 12, the count is decremented. When the count reaches zero, the pageable routine is unlocked and is
eligible tob-e paged out of the system. However, because all CP
pageable modules are reenterable, the page is never swapped out, but
when the page is stolen, it is placed directly on the free page list.
Because unlocked pageable routines participate in the paging process
in amanner similar to user virtual storage pages, the least recently
used approximation usedby page selection tends to make highly used
control program routines, even when not locked,remain resident. The
called routine is locked into real storage until it exits. Thus, it can
request asynchronously scheduled function, such asI/O or timer interrupts, as long as it dynamically establishes the interruption
return address for the requested operation and does not give up control
via anEXIT macro prior to receiving the requested interruption.
Addressability for the module, while it is executing, is guaranteed
because the CALL linkage loads the real address of the pagedmodule into
GPR12 (themodule base register) prior to passing control. If all
addressing is done in a base/displacementform, the fact that the Bodule is executing at an address different from that at which it was loaded is
not apparent. llthough part of CP is pageable, it never runs in
relocate mode. Thus, the processor is not degradedby the DIT feature
being active, and no problems occur because of handling disabled page
faults.
1-78IBM Y8/370 System Logic and Problem Determination--Voluae 1
storage key
protected, with the fetch protect bit in the key.
1. Checks for a fetch protection violation when handling privileged
and nonprivileged instructions.
2.
key) when writing and recovering virtual
paging device.
3. Checks for a fetch protection violation on a write
spooling or console devices).
A special case of storage protection occurs when the
resides in a protected shared segment. The
and still be shared by many
a protected shared segment, the pages are checked for changes. If any
pages have been changed, the user gets placed in console function
returned to CP free storage.
linkage manager in
caller's GPR15) is tested to see if it is within the resident nucleus.
If it is less than
routine's base address is placed in GPR12 and control is passed to the
called routine in the
above
page-in the called routine. The
Thus, the lock count associated with the called routine's real page
indicates the responsibility count of the module.
eligible to
pageable modules are reenterable, the page is never swapped out, but
when the page is stolen, it is placed directly on the free page list.
Because unlocked pageable routines participate in the paging process
in a
used approximation used
control program routines, even when not locked,
called routine is locked into real storage until it exits. Thus, it can
request asynchronously scheduled function, such as
return address for the requested operation and does not give up control
via an
Addressability for the module, while it is executing, is guaranteed
because the CALL linkage loads the real address of the paged
GPR12 (the
addressing is done in a base/displacement
not apparent. llthough part of CP is pageable, it never runs in
relocate mode. Thus, the processor is not degraded
being active, and no problems occur because of handling disabled page
faults.
1-78