Process Scheduling

Process scheduling is the act of assign CPU to different processes in a multiprogrammed OS. We can do it following two politics: preemptive and non-preemptive scheduling. The first means that a process in the system can be halted also if it could logically continue. Non-preemptive scheduling means that the only way the process can be halted is that it's logically stopped, in example for an I/O operation, because the process is terminated, because it's blocked by a semaphore that time it with other resources in the system ... The choice of one way or another in the scheduling system is made usually keeping these points in mind:

  1. ) throughput : is the number of processes that the OS can handle
  1. ) CPU occupation
  1. ) fairness : are we interested in different priority to handle the system or not ?
  1. ) turnaround : is the maximum time we want a process can be in our system
  1. ) interaction : we usually want that all processes in our system will respond as soon as possible

We can have different ways to handle scheduling: round-robin, priority systems, event-driven systems, ...

webmaster@scastagnoli.net