On 2019-10-22 7:42 PM, Peter Relson wrote:
You can spin for a while, but then really need to "wait" (or pause) until
"posted" (or released) when the resource becomes available..
The code snippets I posted show that the code sleeps rather than waiting
to be signaled which I suspect may be
cheaper on those platforms.
Note that this is not the same as a CS loop which loops until successful
but only re-does things if something has changed.
This is quite common in the assembler code I see. A CS loop with a timer
(but no wait/post backoff).
And for things like "enabled resources" (ENQ, LOCAL lock), the system may
attempt to manage the work unit priorities to give the "holder" some extra
CPU time.
This is interesting for ENQ. Windows has a mechanism in place to raise
the priority of waiters to mitigate "priority inversion".
https://docs.microsoft.com/en-us/windows/win32/procthread/priority-inversion
Is "priority inversion" not an issue on z/OS. I know that swapped out
address spaces go to the top of the dispatcher queue but
how does it work for tasks?
Peter Relson
z/OS Core Technology Design
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email [email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN