
A rare and exciting technical examination of the philosophy, key development issues, programming implications, and future of the Microsoft OS/2 operating system. Here is revealing information every MS OS/2 programmer will find invaluable.
The scheduler's dispatch algorithm is very straightforward: It executes the highest-priority runnable thread for as long as the thread wants the CPU. When that thread gives up the CPU--perhaps by waiting for an I/O operation--that thread is no longer runnable, and the scheduler executes the thread with the highest priority that is runnable. If a blocked thread becomes runnable and it has a higher priority than the thread currently running, the CPU is immediately preempted and assigned to the higher-priority thread. In summary, the CPU is always running the highest-priority runnable thread.
The scheduler's dispatcher is simplicity itself: It's blindly priority based.
That doesn’t sound like something that required bodily lifting from a mainframe OS.
http://www.amazon.com/Inside-OS-2-Gordon-Letwin/dp/155615117...
The cover photo is also classic.