ENVS 1800 Lecture Notes - Lecture 20: Software Bug, Infinite Loop
ENVS 1800 Lecture 20 Notes – No preemptive Dispatch Algorithms
Introduction
• An additional disadvantage of no preemptive processing is that a buggy program with an
infinite loop can hang the system indefinitely.
• Most no preemptive systems actually have a time-out built in for this purpose.
• A compromise position uses no preemptive processing for executing processes that do
not require immediate responses
• Allows critical processes to interrupt temporarily, always returning control to the no
preemptive process.
• Earlier versions of Windows, through Version 3.1, presented another compromise that
was dependent on the cooperation of the processes themselves.
• This position assumed that processes would voluntarily relinquish control on a regular
basis, to allow other processes a chance to execute.
• To a large measure, this approach worked, although less well than true preemptive
multitasking
• However, it is subject to errors that may occur in individual processes that can prevent
the execution of other processes.
• Linux presents another compromise approach
• User processes (i.e., regular programs) run preemptively, but operating system
programs run no preemptively.
• An important requirement to this approach is that operating system processes run
quickly and very reliably.
• The advantage to this approach is that critical operating system processes can get their
work done efficiently without interruption from user processes.
• The next section introduces a few typical examples of dispatching algorithms.
• There are many other possibilities, including algorithms that use combinations of these
examples.
find more resources at oneclass.com
find more resources at oneclass.com