Skip to main content

5.1 Basic Concepts

  • The execution of an application involves some sequence of I/O bursts and CPU burst. Discuss how these bursts might affect the performance of the operating system.
  • Describe the role of the short-term scheduler in the operating system and how it might modify the state of processes and the system’s ready queue.
  • Describe the role of a scheduling algorithm.
  • Identify the circumstances in which the short-term is activated to make decisions related to changing the states of processes and moving them around the system’s queues.
  • Describe the relationship between the short-term scheduler and the dispatcher in managing processes.
  • When is preemption useful in scheduling? Identify the pros and cons of preemptive and non-preemptive scheduling.

5.2 Scheduling Criteria

  • There are several metrics one can use to characterize the performance of a computing system: CPU utilization, throughput, turnaround time, waiting time, and response time.
  • Describe each of these performance metrics and what makes more sense (higher or lower) to produce an optimized system.

5.3 Scheduling Algorithms

  • Given a scheduling algorithm and information on the length of CPU bursts, process priorities, and order of arrival build a Gantt chart showing when each process is scheduled to run.
  • How can scheduling algorithms operate when one does not have prior knowledge of the length of processes’ CPU burst? How can mathematics help in the absence of a crystal ball?
  • From a given Gantt chart showing a sequence of processes’ CPU bursts, compute the individual waiting time and turnaround time for each process. Compute also the overall average waiting time and average turnaround time.
  • You should be prepared to work with the following algorithms and to understand how they compare against one another:
    • First-Come, First-Serve (FCFS)
    • Shortest-Job-First-First (SJF)
    • Shortest-Remaing-Time-First (SRTF)
    • Priority (P)
    • Round-Robin (RR)
  • How does preemption affect scheduling? Are the consequences always bad, always good?
  • How are the performance metrics affected by preemptive variations of scheduling algorithms? (For instance, FCFS vs. FCFS with preemption by priority, or preemptive SFJ and non-preemptive SJF.)
  • What characterizes foreground and background processes?
  • What motivates the idea of Multilevel Queue Scheduling and Multilevel Feedback Queue Scheduling? How do they operate?
  • Explain why the Multilevel Feedback Queue Scheduling algorithm can be seen as the most general CPU-scheduling algorithm.