system to be exceeded. Selection within scheduling priority siaply aeans that a executable virtual machine of high priority is always added
to the active subset (to a queue) before a executable virtual aachine of
lower priority. If the paging biasmechanisa is activated by setting
thepaging bias factor to a nonzero value, scheduler selection is in
favor ofsmaller virtual machines; otherwise, selection is within
priority.Once the active subset (the set of in-queue virtual aachines)
has been selected, the dispatcher allocates resources of the processoraaong them. The list of executable virtual machines in a queue is sorted by dispatching (as opposed to scheduling) priority. The dispatching
priority is a running average of a given virtual aachine's processortime/wait-time ratio. Thus, virtual aachines who are most likely to go
into wait state, based on past performance, are dispatched ahead of
those whosedemands on the processor are more extensive. This siaple
ratio priority is normally altered if a virtualmachine is identified as
compute-boundby means of the fact that it has executed for at least 50 ms. without entering the wait state. In this case, it is placed at the bottom of the dispatchable list. On the other hand, virtual machines
identified as interactiveby virtue of the frequency their requests for
terminalI/O are placed at the top of the dispatchable list. DHKDSP also provides a fast dispatch path for virtual machines that have
issued specific privileged instructions that are not handled by the
VirtualMachine Assist feature.
These virtualmachines can be dispatched very rapidly because the
virtual aachine'sprogram old PSi needs very little reconstruction to
redispatch the virtual machine, hence use of fullPSi reconstruction
path is not required. The decision forusing the fast dispatch path (DHKDSP1) is accoaplished by the module that handles privileged
operation,DMKPRV or DMKVIO. A fast redispatch path is also available
afterI/O interrupts. If DMKDSP can determine that the I/O interrupt
processing had no effect on the running virtualmachine's status and it
caused no higher-priority virtual machine tobecome runnable, then the
virtualPSi stored at the I/O old PSi location will be used to
redispatch the virtualmachine. The CP supervisor runs disabled for all I/O and external interrupts.
The dispatcher, in order to alleviate part of this problea, willtemporarily enable for interrupts and then disable. There are three
occasions when the dispatcher enables for interruptions (enable
windows):
1. ihen an enabled wait state is entered.
2. ihen an enabledproblem state is entered to run a virtual machine. 3. ihen another part of the supervisor is entered via the unstacking
of a CP request block.On occasions 1 and 2, the dispatcher ignores the enable since the systea will soon be enabled for interruptions. On occasion 3, if the
dispatcher finds a CP request block to unstack, it first enables then
disables for interruptions before unstacking the request.
1-134 IBMVM/370 System Logic and Problem Deter.ination--Voluae 1
to the active subset (to a queue) before a executable virtual aachine of
lower priority. If the paging bias
the
favor of
priority.
has been selected, the dispatcher allocates resources of the processor
priority is a running average of a given virtual aachine's processor
into wait state, based on past performance, are dispatched ahead of
those whose
ratio priority is normally altered if a virtual
compute-bound
identified as interactive
terminal
issued specific privileged instructions that are not handled by the
Virtual
These virtual
virtual aachine's
redispatch the virtual machine, hence use of full
path is not required. The decision for
operation,
after
processing had no effect on the running virtual
caused no higher-priority virtual machine to
virtual
redispatch the virtual
The dispatcher, in order to alleviate part of this problea, will
occasions when the dispatcher enables for interruptions (enable
windows):
1. ihen an enabled wait state is entered.
2. ihen an enabled
of a CP request block.
dispatcher finds a CP request block to unstack, it first enables then
disables for interruptions before unstacking the request.
1-134 IBM