Years ago I did the VAX/VMS internals courses and I still have the documentation for the course, dated around 1987/8. The other day I was running OpenVMS 9.2 as a VM when I noticed that with nothing to do the host saw <1% CPU usage. I have 4 cores, and had 2 allocated to VMS at the time. I remembered back over the decades and thought that the VMS scheduler never really stopped, it just sat in a tight loop (not quite a spinlock) waiting for something to be available. Sure enough:
Code: Select all
60$: TSTL G^SCH$GL_COMQS ; POSSIBLY READY TO DO SOMETHING?
BNEQ 20$ ; YES, TRY AGAIN
BEQL 60$ ; NO, KEEP LOOKING