Saturday, November 16, 2024

Global SRB dispatching

 Dispatcher follows the pointer in CVT to find the GSMQ (global service manager queue). GSMQ is like a staging queue. Dispatcher loops through the queue and issue SCHEDULE to the SRB which insert them into GSPL (global service priority queue). GSPL has 2 sub queues. One is non-quiescable SRB and one is normal system SRB. Dispatcher distribute the GSMQ to these 2 queues. 

Dispatcher then goes through GSPL to select one for dispatching. First it check if the system is no dispatches or and if it is, is the ASCB associated with this SRB is in the exemption list. ( the reason for the exemption is because some address spaces need to run to bring the system back from wait state). 

Dispatcher continue the following check to make sure the SRB is dispatchable before running it:

- is the SRB is dispatchable or not.

- if the address space associated with this SRB is dispatchable

- is all SRB STOP indicator is off

When the SRB passes the test, dispatcher update PSAAOLD with the ASCB address and set up the environment (load the segment origin to CR1, increase counter in ASCB, set up return address back to dispatcher in R14 etc)  dispatcher then issues LPSW to transfer control to the SRB  note tha PSAANWW is not updated for global STB processing 


No comments: