<< Chapter < Page | Chapter >> Page > |
Long-term scheduling is used to admit new processes to the system and is done whenever a user wants to create a new process.
Medium-term scheduling is used to swap processes between secondary storage and main memory and is done periodically to ensure theCPU utilization is high and that the page fault rate is low.
Short-term scheduling is used to allocate the CPU to a process and is done whenever a process has its timeslice expire, or when thecurrent process needs to perform some I/O.
All of these scheduling algorithms try to order the queue according to the next CPU burst a process is likely to have. Since it isnot possible to look into the future or examine the process and know the length of the next burst, this quantity must be estimated. This is done by using pastCPU bursts to predict future burst. The estimate of the next CPU burst is calculated as a weighted, exponential average. The previous CPU burst is givenweight alpha and the current estimate is given weight (1 - alpha). By varying alpha, more weight can be given to the most recent CPU burst, allowing forfaster reaction to changes in a process but also a highly varying estimate. Giving weight to the previous estimate allows the estimate to change moresmoothly. In effect, the estimation equation gives an exponentially smaller weight to CPU bursts the farther in the past they occurred.
A small quantum reduces the response time for all processes, which is important for interactive processes. However, a long quantumreduces the overhead of process switching, which increases throughput and CPU utilization. A short quantum is useful for a general-purpose computer. A longquantum is useful for a batch system. You might have a system that uses a short quantum when there are jobs that need a quick response time, then lengthens thequantum when heavy computation needs to be done.
A I/O bound process is favored by a multilevel feedback queueing scheduler because jobs that use the CPU heavily will be movedto low priority queues. This will leave the I/O bound processes in the higher priority queues.
The issue here is that a program spends much of its time waiting for I/O to complete. In a multithreaded program, one KLT can makethe blocking system call, while the other KLTs can continue to run. On a uniprocessor machine, a process that would otherwise have to block for all thesecalls can continue to run its other threads.
Notification Switch
Would you like to follow the 'Operating systems' conversation and receive update notifications?