SGG 6 (01)

6.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.

6.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.

6.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.