If DKKIOS receives an unsolicited interrupt or an I/O error for
scheduled I/O, a call is made to DKKFREE for either an IOBLOK, CPEXBLOK, or an IOERBLOK. DKKFREE will ensure that control is returned to the
processor that initiated the request. Shared Segment The shared seqment suufunction of VK/370 (DftKITS, DftKCFG, DftKCFB, DKKPGS, and DKKVKl) runs under the global system lock on either the main processor or the attached processor. All protected shared segments are
duplicated in a system that is generated for attached processor mode and
that is initialized on a machine with the multiprocessing feature. DKKCFG obtains sufficient storage to construct the duplicate page and
swap tables in contiguous storage. The SHRTIBLE SHRPIGE pointer points
to the page and swap tables for the main processor, and the page and
swap tables for the attached processor are at a fixed displacement from
the page and swap tables for the main processor. DftKCFG initializes
both sets of page and swap tables. Initially, the two swap tables point
to the DlSD locations specified in DKKSBT. However, as the pages are
read into storage and then stolen, each shared page is allocated its own DlSD slot and is pointed to by only one swap table entry.
The last user to purge a shared system causes both sets of page and
swap tables to be released. One shared page table is reserved for use by each processor. This
includes both problem state and supervisor state execution on behalf of
a virtual machine. To accomplish this, each time a virtual machine running a shared system is locked, a test is made to determine whether
or not the virtual machine was last serviced on this processor. If it
was last serviced on the other processor, all of its shared page table
pointers in its segment tables are switched to this processor's shared
pages.
DKKPTR is able to steal a shared page from a shared page table
reserved for the processor it is running on without notifying the other
processor. The virtual page could not appear in the look-aside buffer
of the other processor.
The dispatcher releases the VKBLOK lock on LlSTUSER following the
check for pending interrupts (assuming no fast redispatch possible)
unless the virtual machine was running one or more shared systems. In
the latter case the VKBLOK lock is not released until the DftKVKl scan
for a changed page is completed. DKKVKA scans all protected shared segments that the virtual machine used. For every changed page that it finds, DftKVKl checks whether or
not the system lock is held. If the system lock is held, the changed
page is returned to CP free storage. If the system lock is not held, DKKVKl marks the page table entry as invalid, marks the swap table entry
as in transit, and indicates that the core table entry is on the free
and flush lists. The other virtual machines can continue to use the
shared segments. The changed pages are replaced when the next reference
to the changed page is made.
If the shared segment is violated, an error message (DKKVft1456) is
sent to the violator, and he is placed in console function mode. The user may examine his PSW and registers to determine what caused the
viOlation. The user enters the BEGIN command to resume execution at the
point of interruption. 1-180 IBM VK/370 System Logic and Problem Deter.ination--Voluae 1
CP Method of Operation and Program
Organization
This part contains the following information: • CP Program Organization • Use of the Annotated Flow Diagram • Virtual I/O Operations and Interruption Processes
CP Method of Operation and Progra. Organization 1-181
Previous Page Next Page