CPU Scheduling

Download Report

Transcript CPU Scheduling

CPU Scheduling
Chapter 7
CS4315
A. Berrached:CMS:UHD
1
CPU Scheduling
• Basic Concepts
• Scheduling Criteria
• Scheduling Algorithms
–
–
–
–
–
–
CS4315
FCFS (FIFO)
SJN & SRTN
Priority Scheduling
Round Robin Scheduling
Multilevel Queue
Multilevel Feedback Queue
A. Berrached:CMS:UHD
2
CPU Scheduling
• A multiprogramming OS allows more than one
process to be loaded in main memory at a time.
• Processes share the CPU using timemultiplexing
• A process execution consists of a cycle of CPU
computation--I/O operations.
• I/O operations require orders of magnitude
more time to complete.
• Basic Idea: When the running process requests
an I/O operation, allocate CPU to another
process.
CS4315
A. Berrached:CMS:UHD
3
CPU Scheduler
• CPU Scheduler: that part of the Process
Manager than is responsible for
– handling removal of running process from CPU
– Selection of another process
Two major issues:
• Scheduling mechanism: how is it all done?
• Scheduling policy:
– when is it time for a process to be removed from
CPU?
– Which ready process should be allocated the CPU
next?
CS4315
A. Berrached:CMS:UHD
4
Scheduling Mechanism
CS4315
A. Berrached:CMS:UHD
5
Scheduling Mechanism CNTD
Three parts:
– enqueuer
– dispatcher
– context-switcher
Data Structures:
– Process Descriptor
– Ready List
CS4315
A. Berrached:CMS:UHD
6
Scheduling Mechanism CNTD
• When a process is moved to the Ready-List
– Process Descriptor (PD) is updated
– the enqueuer places a pointer to PD in the Ready-List
• When the Scheduler switches CPU from one
process to another process
– the Context-Switcher saves the state of the current
process in its PD.
• How context-switching occurs depends on how
CPU multiplexing technique used:
– voluntary multiplexing
– involuntary multiplexing
CS4315
A. Berrached:CMS:UHD
7
Scheduling Mechanism CNTD
• Voluntary multiplexing: Running process gives
up CPU voluntarily
– context-switcher is invoked by running process.
• Involuntary multiplexing: an interrupt causes
running process to be removed from CPU.
– Interrupt generated by an I/O operation requested by
another process.
– Most commonly: a timer generated interrupt.
– In either case, interrupt handler invokes contextswitcher.
CS4315
A. Berrached:CMS:UHD
8
Scheduling Mechanism--Dispatcher
• After state of "old" process is saved by contextswitcher, the CPU is allocated to the Dispatcher
– Dispatcher state is loaded on CPU
• Dispatcher selects one of the ready processes
enqueued in the Ready-List.
• Dispatcher performs another context-switch from
itself to selected process (saves its state and loads
state of selected process).
• The Process Descriptor of selected process is
changed from Ready to Running.
CS4315
A. Berrached:CMS:UHD
9
Process Scheduling
CS4315
A. Berrached:CMS:UHD
10
Scheduling Policy Criteria
CS4315
A. Berrached:CMS:UHD
11
Optimization Criteria
CS4315
A. Berrached:CMS:UHD
12
First-Come-First-Served (FCFS)
Scheduling
CS4315
A. Berrached:CMS:UHD
13
FCFS Scheduling (cont.)
CS4315
A. Berrached:CMS:UHD
14
Shortest-Job-Next (SJN) Scheduling
SJN is optimal – gives minimum average waiting time
for a given set of processes
CS4315
A. Berrached:CMS:UHD
15
Example of Non-Preemptive SJN
2.0
CS4315
A. Berrached:CMS:UHD
16
Example of Preemptive SJN
2.0
CS4315
A. Berrached:CMS:UHD
17
Priority Scheduling
CS4315
A. Berrached:CMS:UHD
18
Round Robin (RR) Scheduling
CS4315
A. Berrached:CMS:UHD
19
Example: RR with time quantum=20
CS4315
A. Berrached:CMS:UHD
20
Deadline Scheduling
• Real Time Systems
– Processes must complete their task by specific
deadlines
– Main performance criteria
– Scheduler must have complete knowledge of
service time of each process
• All function must be predictable– no virtual memory
– A process is admitted to ready list only if OS
can guarantee deadline can be met.
CS4315
A. Berrached:CMS:UHD
21
Example
Process
0
1
2
3
4
CS4315
Service Time
350
125
475
250
75
Deadline
575
550
1050
none
200
A. Berrached:CMS:UHD
22
Multi-Level Queue
• Extension of priority scheduling, which also
combines other strategies
• Ready list is partitioned into multiple sub-lists
• Each process is assigned to a queue based on some
criteria (type, priority, etc.)
– E.g. one Q for foreground processes and one for
background processes
• Scheduler: * in-queue strategy
* cross-queue strategy
– E.g. In-queue strategy: RR for foreground Q and FCFS
for background A
– Cross-queue strategy: Serve higher-level processes first
CS4315
A. Berrached:CMS:UHD
23
Multi-Level Queue
• Example:
– Cross-Queue Strategy: Each queue get a percentage of
CPU time (in a round robin fashion) which it can
schedule among its processes.
– E.g.
Level 1: 80% of CPU time
Level 2: 20% of CPU time
CS4315
A. Berrached:CMS:UHD
24
Multi-Level Feedback Queue
CS4315
A. Berrached:CMS:UHD
25
Example:Multi-Level Feedback
Queue
• Gives shorter jobs higher priority without needing to predict
a job’s service time requirement.
CS4315
A. Berrached:CMS:UHD
26
BSD UNIX Scheduling
•
•
•
•
•
Multiple-level feedback queue approach
32 queues
System processes are placed in Q0 – Q7
User processes are placed in Q8 – Q31
Dispatcher always selects a process from highest
priority queue to run
• RR is used in each queue (time slice varies but
always < 100μs)
• A process’s changes over time: based on nice()
system calls and process’s utilization of CPU.
CS4315
A. Berrached:CMS:UHD
27
Windows NT/2K
•
•
•
•
•
•
•
Multiple-level feedback queues for thread scheduling
Priority to those threads that need very rapid response
32 levels
16 highest priority Qs are called real-time level queues
Next 15 Qs are variable-level queue
Lowest priority Q is called system-level Q.
System-level Q contains a single thread called zero-page
thread. It is run only when there are no other runnable
threads.
• Scheduling goes from highest level down
• Scheduling is preemptive: if a high-priority thread
becomes runnable while a lower priority thread is running,
the latter is preempted and the higher level thread will
begin to use the processor
CS4315
A. Berrached:CMS:UHD
28