The shadow segment table is constructed in first-level storage and
initialized to indicate that all segments are unavailable. Flags are
aaintained in theVMBLOK to indicate that the shadow tables exist. DMKVATMD also constructs the shadow control registers 0 and 1. Shadow control register 0 contains the external interruption mask bits used by CP, mixed with the hardware controls and enabling bits from virtual
control register o.Shadow control register 1 contains the segment
table origin address of the shadow segment table.When the virtual machine is operating in virtual translate mode, CP loads the shadow control registers into the real control registers and
dispatches the user. The immediate result of attempting to execute an
instruction is a segment exception, intercepted byDMKPRG and passed to DMKVATSI. DMKVATSI exaaines the virtual segment table in second-level
storage. Ifthe virtual segment is not available, the segment exception
interruption is reflected to the virtual machine. If the virtual
segment is markedavailable# then DMKV1TSI: • Allocates one full segment of shadow page table, in the format specified by virtual control register o. • Sets all of the page table entries to indicate page not in storage. • Barks the segment available in the shadow segment table. • Redispatches the virtual machine via DMKDSP. Once again, the i.mediate result is an interruption, which is a
paging exception and control is passed toDMKVATPI. DMKVATPI references
the virtual page table in second-level storage to determine if the
virtual page is available. If the virtual page is not available, the
paging interruption is reflected to the virtual machine. However, if
the virtual page ismarked in storage, the virtual page table entry
determines which page of second-level storage is being referenced by the
third-level storage address provided..DftKVATPI next determines if t'bat
page of second-level storage is resident in first-level storage at that
tiae. If so, the appropriate entry in the shadow page table is filled
in and marked in storage. If not, the required page is brought into
first-level storage viaDMKPTRAN and the shadow page table filled in as
above.
As the virtual machine continues execution, aore shadow tables are
filled in or allocated as the third-level storage locations are
referenced.Whenever a new segment is referenced, another segment of
shadow page tables is allocated.Whenever a new page is referenced, the
appropriate shadow page table entry is validated, etc.No changes are made in the shadow tables if the virtual aachine leaves translate mode (usually via an interruption), unless it also leaves extended control
aode. Dropping out ofBC mode is the signal for CP to release all of the
shadow page and segment tables and the copy of the virtual segment
table.
There aresoae situations that require invalidating all of the shadow
tables constructedby CP or even releasing and reallocating thea. Whenever DftKPTR swaps out a page that belongs to a virtual relocating
aachine, it sets a bit in theVMBLOK indicating that all of the shadow
page tables .ust be invalidated. Invalidation of all of the tables isrequired since CP does not know which third-level storage pages map into
the second-level page that is being swapped out. The actual
invalidation is handled byD!KVATAB, called fro. DMKDSP when the virtual
aachine is on the verge of being dispatched.CP Introduction 1-119
initialized to indicate that all segments are unavailable. Flags are
aaintained in the
control register o.
table origin address of the shadow segment table.
dispatches the user. The immediate result of attempting to execute an
instruction is a segment exception, intercepted by
storage. If
interruption is reflected to the virtual machine. If the virtual
segment is marked
paging exception and control is passed to
the virtual page table in second-level storage to determine if the
virtual page is available. If the virtual page is not available, the
paging interruption is reflected to the virtual machine. However, if
the virtual page is
determines which page of second-level storage is being referenced by the
third-level storage address provided..
page of second-level storage is resident in first-level storage at that
tiae. If so, the appropriate entry in the shadow page table is filled
in and marked in storage. If not, the required page is brought into
first-level storage via
above.
As the virtual machine continues execution, aore shadow tables are
filled in or allocated as the third-level storage locations are
referenced.
shadow page tables is allocated.
appropriate shadow page table entry is validated, etc.
aode. Dropping out of
shadow page and segment tables and the copy of the virtual segment
table.
There are
tables constructed
aachine, it sets a bit in the
page tables .ust be invalidated. Invalidation of all of the tables is
the second-level page that is being swapped out. The actual
invalidation is handled by
aachine is on the verge of being dispatched.