ENVS 1800 Lecture 19: ENVS 1800 Lecture 19 Notes
ENVS 1800 Lecture 19 Notes – Preventing Starvation
Introduction
• It is particularly important that the algorithm selected not permit starvation to occur.
• With operating systems that support threads, dispatching normally takes place at the
thread level.
• As an additional criterion, the candidate selection decision can be made at either the
process or thread level.
• Some systems will select a candidate that meets criteria measured at the process level.
• A process is selected, and then a thread within that process is dispatched.
• Other systems will select a thread for dispatch based on thread performance criteria
without regard to the process to which they belong.
• Some systems implement only a single algorithm, selected by the original system
designers.
• Others provide options that can be selected by the administrator of the particular
system installation.
• Other than preventing starvation, the most important consideration in selecting a
scheduling algorithm is to determine the conditions under which dispatching is to be
performed preemptively or no preemptively.
• Early batch systems were predominately no preemptive.
• In a no preemptive system, the process assigned to the CPU by the dispatcher is allowed
to run to completion, or until it voluntarily gives up the CPU.
• No preemptive dispatching is efficient.
• The overhead required for the dispatcher to select a candidate and perform context
switching in a preemptive system, particularly if the quantum time is short, becomes a
substantial percentage of the overall CPU time available.
• No preemptive dispatching does not quite work in modern interactive systems.
• Some interrupts, particularly user keystrokes and mouse movements, demand
immediate attention.