output separator table
Bootstrap routines for 3705 Error message data module Error message data module Error message data module Pageable DMKBOX DMKBTS DMKEMA DMKEMB DMKEMC DMKFCB DMKSNT DMKSYM DMKUCB DMKUCS DMKTBM DMKVCC 3203 and 3211 Forms Control Buffer (FCB) load tables System name table System symbol table
3211 Universal Character Set Buffer (UCSB) load tables 1403 Universal Character Set (UCS) load tables Terminal translate tables 3203 Universal Character Set Buffer (UCSB) load tables VIRTUAL TIMER MAINTENANCE The System/370 with EC mode provides
virtual) with four tiaing facilities.
the system
They are: The interval timer at main storage location X'50' The time-of-day clock The tille-of-day clock compara tor The CPU timer user (both real and
Before describing how CP maintains these timers for virtual machines, it
is necessary to review how VM/370 uses the timing facilities of the real machine. 1. The location X'50' interval timer is used only for time-slicing. 2.
The value placed in the timer is the maximum length of time that
the dispatched virtual machine is allowed to execute.
Because the BLIP function of CMS uses the interval timer (location 1'50'), the uSe of STInER can cause extra blips at the user's
terminal. To avoid extra blips, issue the CftS command SET BLIP OFF. The tiae-of-day clock is used as a time stamp for
enables the scheduler to compute elapsed in-queue
dispatching priority calculation. messages and time for the
3. The time-of-day clock comparator facility is used by CP to schedule timer-driven events for both control program functions and for
virtual machines. A stack of comparator requests is maintained and
as clock comparator interrupts occur, the timer request blocks are
stacked for the dispatcher via calls to DftKSTKIO. 4. The processor timer facility performs three functions: Accumulates CP overhead Detects in-queue time slice end Simulates virtual processor timer The accumulation of CP overhead is accomplished as follows. The VftTTlftE field in the VMBLOK contains the total CP overhead incurred
by the virtual machine; it is initialized to the maximum positive number in a doubleword, X'7PPPPPPF PPFPPlll'. Whenever CP performs CP Introduction 1-81
a service for a virtual aachine, GR 11 is loaded with the address
of the VMBLOK and the current value in V!TTI!E is placed in the
processor timer. When CP is finished with the service for that
virtual machine 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 new VMBLOK 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 in tiae is the difference
between the maximum integer and the current value in the VftTTI!E field. Since VKTTIKE only accounts for supervisor state overhead,
detection of in-queue time 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 dropped from a queue. This initial value
is set by 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 of iHIMOUrQ a ente=ing 01 on a
Model 145 is 300 milliseconds, while for the same user entering Q2 (noninteractive) it is 2 seconds. Each tiae the user is
dispatched, the value in VMTMOUTQ is entered into the processor
timer; whenever the user is interrupted, the decremented processor timer is stored into VKTKOUTQ prior to being set froa the new VKTTIKE. When the problem state time slice has been exhausted; a
processor timer interrupt occurs, the VftQSEJD flag bit is set in
the VKBLOK, and the scheduler drops the user from the queue. It each queue drop, the problem time used in-queue (the difference
between VftTftOUTQ 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 processor timer is less than
that in VMTKOUTQ. In this case, the VftBLOK is flagged as "tracking
processor timer" and a processor tiaer interrupt is interpreted as
a virtual timer 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 in QUARTUft at location X'54') and the
value of the timer at the time of the interruption (saved in QUIBTUftR at
location 1'4C'). Virtual clock coaparator requests are
maintenance routine, DftKTKR. They are
comparator request stack and the virtual
interruption occurs.
handled by the virtual tiaer inserted into the general
machine is posted when the
virtual clock comparator 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 processor tiae 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 interval timer or processor tiaer is one that runs when the
virtual machine is executing or is in a self-imposed wait state (that
1-82 IBM VM/370 System Logic and Problem Deteraination--Volume 1
Previous Page Next Page