Section 3: Process Scheduling - bmitch26/Operating-Systems GitHub Wiki

Section 3. Process Scheduling

  • CPU Scheduling
    • The way in which an OS decides which task gets to use the CPU Source
  • Preemptive vs. Non-Preemptive Scheduling
    • Preemptive lets a process be booted from the running queue before it is finished, whereas Non-Preemptive waits for the processes to finish as needed. Source
  • Scheduling Algorithms: Source
    • First-Come, First-Served (FCFS)
      • The prcoesses are taken in order of which ones request the CPU first.
    • Shortest Job Next (SJN)
      • Selects the waiting process that has the shortest execution time next.
    • Priority Scheduling
      • Preemptive method that works on the most important priority processes first.
    • Round Robin (RR)
      • Preemptive method where each process is cycled through with a fixed time slot (quantum).
    • Shortest Remaining Time (SRT)
      • Preemptive version of SJN
    • Multi-Level Queue Scheduling
      • Processes are divided into different classes of priority with their own scheduling needs. Processes cannot move between queues.
    • Multi-Level Feedback Queue Scheduling
      • Similar to Multi-Level Queue Scheduling, but the processes can move between queues.
    • Completely Fair Scheduler (CFS)
      • Divides the CPU time equally across all the processes based on Time Quantum/N, where N is the number of processes.