1
CPU Scheduling
What Is In This Chapter?
•
This chapter is about how to get a process attached to a processor.
•
It centers around efficient algorithms that perform well.
•
The design of a scheduler is concerned with making sure all users get their fair share of the resources.
5: CPU-Scheduling
2
CPU Scheduling
What Is In This Chapter?
•
•
•
•
•
•
•
•
•
Basic Concepts
Scheduling Criteria
Scheduling Algorithms
Multiple-Processor Scheduling
Real-Time Scheduling
Thread Scheduling
Operating Systems Examples
Java Thread Scheduling
Algorithm Evaluation
5: CPU-Scheduling
3
Scheduling
Concepts
CPU SCHEDULING
Multiprogramming
A number of programs can be in memory at the same time. Allows overlap of CPU and I/O.
Jobs
(batch) are programs without user interaction.
User
(time shared) are programs that may have user interaction.
Process
is the common name for both.
CPU - I/O burst cycle
Characterizes process execution, which alternates, between CPU and
I/O activity.
CPU times are generally much shorter than I/O times. that
run
Preemptive Scheduling
An interrupt causes currently running process to give up the CPU and be replaced by another process.
5: CPU-Scheduling
4
CPU SCHEDULING
The Scheduler
Selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them
CPU scheduling decisions may take place when a process:
1.
Switches from running to waiting state
2.
Switches from running to ready state
3.
Switches from waiting to ready
4.
Terminates
Scheduling under 1 and 4 is nonpreemptive
All other scheduling is preemptive
5: CPU-Scheduling
5
CPU SCHEDULING
The Dispatcher
Dispatcher module gives control of the CPU to the process selected by the shortterm scheduler; this involves: switching context switching to user mode jumping to the proper location