Appeal 2007-2127 Reexamination Control No. 90/006,621 There are two ways in which a running thread gives up control of the CPU. It can give up control of the CPU voluntarily, for example when it finishes executing, or while waiting for the return of a function call or the completion of a device I/O request. It would not be wise, however, to design an operating system under the presumption that all the active threads within the operating system will cooperate among themselves to share processor cycles equally. OS/2 will automatically preempt a running thread after a certain number of clock cycles has passed (this value is called the time slice), and go on to execute another. This makes OS/2 a preemptive scheduling system. OS/2 utilized both "priority" and "timesliced" preemptive scheduling in 1988 as described in Young, Programmer's Guide to OS/2, page 180: Specifically, a thread is preempted when either of the following events occurs: ♦ Another thread, which has a higher priority, becomes ready to run. (This can occur, for example, if a system call or hardware interrupt routine frees some resource for which the higher- priority thread has been waiting.) ♦ The thread's time slice expires. The system receives control with each clock-tick interrupt, which gives the scheduler 36Page: Previous 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Next
Last modified: September 9, 2013