a service for a virtual aachine, GR 11 is loaded with the address
of theVMBLOK and the current value in V!TTI!E is placed in the
processortimer. When CP is finished with the service for that
virtualmachine the processor timer, which has been decreaented by the amount of processor time used, is stored back into V!TTlftE. GB
11 is then loaded with a newVMBLOK pointer and the processor tiaer is set from the new VftTTlft! field. The amount of CP overhead for a
given virtual aachine at any point intiae is the difference
between themaximum integer and the current value in the VftTTI!E field. Since VKTTIKE only accounts for supervisor state overhead,
detection of in-queuetime slice end is perforaed by the processor
timer when the virtual machine is dispatched in the problea state.The VMTKOUTQ field in the VKBLOK is initialized to the amount of problem state time that the virtual machine is allowed to
accumulate before being droppedfrom a queue. This initial value
is setby the scheduler (DMKSCB) when the virtual machine is added
to a queue and its value depends on the queue entered (interactive
or noninteractive) and on the processor model. For exaaple, the
initial value ofiHIMOUrQ a ente=ing 01 on a
Model 145 is300 milliseconds, while for the same user entering Q2 (noninteractive) it is 2 seconds. Each tiae the user is
dispatched, the value inVMTMOUTQ is entered into the processor
timer; whenever the user is interrupted, the decremented processortimer is stored into VKTKOUTQ prior to being set froa the new VKTTIKE. When the problem state time slice has been exhausted; a
processortimer interrupt occurs, the VftQSEJD flag bit is set in
theVKBLOK, and the scheduler drops the user from the queue. It each queue drop, the problem time used in-queue (the difference
betweenVftTftOUTQ and the initial value) is added to the total problem tiae field (VMVTIKE) in the VRBLOK. Virtual processor timer simulation is handled for Ee aode virtual
machines if the value in the virtual processortimer is less than
that inVMTKOUTQ. In this case, the VftBLOK is flagged as "tracking
processortimer" and a processor tiaer interrupt is interpreted as
a virtualtimer interrupt rather than as an in-queue tiae slice
end.Virtual Timing Facilities Virtual location 1'50' tiaers are updated by the elapsed processor time each time the dispatcher has been entered after a running user has been
interrupted.The size of the update is the difference between the value
of the timer at dispatch (saved inQUARTUft at location X'54') and the
value of thetimer at the time of the interruption (saved in QUIBTUftR at
location1'4C'). Virtual clock coaparator requests are
maintenance routine,DftKTKR. They are
comparator request stack and the virtual
interruption occurs.
handled by the virtualtiaer inserted into the general
machine is posted when the
virtual clockcomparator requests to set the virtual processor tiaer place the new value into the ECBLOK. Requests to store the new value
update the ECBLOK field with the virtual processortiae used since the
last entry to dispatch and pass the value to the user. Requests to set
the time-of-day clock are ignored.
A real intervaltimer or processor tiaer is one that runs when the
virtual machine is executing or is in a self-imposed wait state (that
1-82IBM VM/370 System Logic and Problem Deteraination--Volume 1
of the
processor
virtual
11 is then loaded with a new
given virtual aachine at any point in
between the
detection of in-queue
timer when the virtual machine is dispatched in the problea state.
accumulate before being dropped
is set
to a queue and its value depends on the queue entered (interactive
or noninteractive) and on the processor model. For exaaple, the
initial value of
Model 145 is
dispatched, the value in
timer; whenever the user is interrupted, the decremented processor
processor
the
between
machines if the value in the virtual processor
that in
processor
a virtual
end.
interrupted.
of the timer at dispatch (saved in
value of the
location
maintenance routine,
comparator request stack and the virtual
interruption occurs.
handled by the virtual
machine is posted when the
virtual clock
update the ECBLOK field with the virtual processor
last entry to dispatch and pass the value to the user. Requests to set
the time-of-day clock are ignored.
A real interval
virtual machine is executing or is in a self-imposed wait state (that
1-82