Non-Preemptive v.s. preemptive v.s. real time - when does each task release 
    its hold on the system.

  Non-preemptive - On the earliest systems and on PCs up through Win 3.1
    Once a task started, it ran until completion or it relinquished control
      back to the OS to share with other tasks.
      Required programmer to include sharing capabiliities.

  Preemptive - on large systems historically and on most current systems  
    Size and timing of a time slice allocated to task are under the 
      complete control of the OS.  

    Required on multi-user systems.

    OS capable of allocating different sized time slices and differing 
      time slice ratios between current tasks (priorities). 

  Real time - a form of preemption where certain system tasks (or user tasks) 
    are guaranteed to to be given time slices at specific time or on demand.

    Ex. A system responsible for monitoring the current flight of a plane.
    Certain checks and actions must be carried out at the appropriate time.

    Or fire alarm system, if a sensor is triggered, it is reported.

    Heavily dependent on IRQs and NMIs.

Lectures