cpu schedulingchampion.17/2431/04-scheduling.pdf · cpu scheduling 1 cse 2431: introduction to...
TRANSCRIPT
![Page 1: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/1.jpg)
CPU Scheduling
1
CSE 2431: Introduction to Operating SystemsReading: Chapter 6, [OSC](except Sections 6.7.2–6.8)
![Page 2: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/2.jpg)
Contents
• Why Scheduling?• Basic Concepts of Scheduling• Scheduling Criteria• A Basic Scheduling Algorithm (FCFS)• Scheduling Algorithms (SJF, RR, etc.)• Thread Scheduling
2
![Page 3: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/3.jpg)
Why Scheduling?
• Deciding which process/thread should occupy the resource (CPU, disk, etc.)
3
(CPU (horsepower))
Process 1 Process 2 Process 3
I want to ride it Whose turn is it?
![Page 4: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/4.jpg)
Contents
• Why Scheduling?• Basic Concepts of Scheduling• Scheduling Criteria• A Basic Scheduling Algorithm (FCFS)• Scheduling Algorithms (SJF, RR, etc.)• Thread Scheduling
4
![Page 5: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/5.jpg)
When to Schedule?
5
![Page 6: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/6.jpg)
Contents
• Why Scheduling?• Basic Concepts of Scheduling• Scheduling Criteria• Basic Scheduling Algorithm (FCFS)• Scheduling Algorithms (SJF, RR, etc.)• Thread Scheduling
6
![Page 7: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/7.jpg)
Scheduling Objectives
• Fairness (nobody cries)• Priority (ladies first)• Efficiency (make best use of equipment)• Encourage good behavior (good boy/girl)• Support heavy loads (degrade gracefully)• Adapt to different environments (interactive, real-
time, multimedia)
7
![Page 8: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/8.jpg)
Performance Criteria• Fairness: No starvation• Efficiency keep resources as busy as possible • Throughput: # of processes completed in unit time • Turnaround Time (also called elapsed time): Amount of
time to complete a particular process from its beginning• Waiting Time: Amount of time process has been waiting in
ready queue • Response Time: Amount of time from when a request was
first submitted until first response is produced. • Policy Enforcement: Enforcing that stated policy is carried
out • Proportionality: Meet users' expectations• Meeting Deadlines: Avoid losing data
8
![Page 9: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/9.jpg)
Different Systems, Different Foci
• For all– Fairness, policy enforcement, resource balance
• Batch Systems–Max throughput, min turnaround time, max CPU
utilization
• Interactive Systems–Min Response time, best proportionality
• Real-Time Systems– predictability, meeting deadlines
9
![Page 10: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/10.jpg)
Preemptive vs. Non-preemptive• Non-preemptive scheduling:– The running process keeps the CPU until it
voluntarily gives up the CPU • Process exits• Switches to waiting state• 1 and 4 only (no 3)
• Preemptive scheduling:– The running process can be interrupted and must
release the CPU (be forced to give up CPU)
10
Running Terminated
Ready Waiting
1
4
3
![Page 11: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/11.jpg)
Process Behavior• I/O-Bound – Does too much I/O to keep CPU busy
• CPU-Bound– Does too much computation to keep I/O busy
• Process Mix– Scheduling should load-balance between I/O
bound and CPU-bound processes– Ideal would be to run all equipment at 100%
utilization, but that would not necessarily be good for response time
11
![Page 12: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/12.jpg)
Program Characteristics Considered in Scheduling
• Is it I/O bound? • Is it CPU bound? • Batch or interactive environment • Urgency • Priority • Frequency of page faults • Frequency of preemption • How much execution time it has already received • How much execution time it needs to complete
12
compute computeI/O
I/O I/O
![Page 13: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/13.jpg)
CPU Scheduler
• Proc 1: 14 time units• Proc 2: 8 time units• Proc 3: 8 time units
• Dispatcher• Preemptive vs.
non-preemptive
13
Ready queue
Proc 1Proc 2Proc 3
Proc 10Proc 11Proc 12
Waiting queue
CPU
Dispatcher
![Page 14: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/14.jpg)
Dispatcher• Gives the control of the CPU to the process,
scheduled by the short-term scheduler. • Functions: – Switching context– Switching to user mode– Jumping to the proper location in the user program.
• Dispatch Latency: time to stop a process and start another one. – Pure overhead– Needs to be fast
14
![Page 15: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/15.jpg)
Single Processor Scheduling Algorithms
• Batch systems– First Come First Serve (FCFS)– Shortest Job First
• Interactive Systems– Round Robin– Priority Scheduling–Multi Queue & Multi-level Feedback– Shortest process time– Guaranteed Scheduling– Lottery Scheduling– Fair Sharing Scheduling
15
![Page 16: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/16.jpg)
First Come First Serve (FCFS)• Process that requests the CPU FIRST is allocated the CPU FIRST. • Also called FIFO• Preemptive or non-preemptive?• Used in batch systems • Real life analogy?
– Buying tickets?• Implementation
– FIFO queues– A new process enters the tail of the queue– The schedule selects from the head of the queue.
• Performance Metric: Average Waiting Time. • Given Parameters:
– Burst Time (in ms), Arrival Time and Order
16
![Page 17: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/17.jpg)
FCFS ExampleProcess Duration Order Arrival Time
P1 24 1 0P2 3 2 0P3 4 3 0
17
The final schedule (Gantt chart):
0
P1 (24)
24 27
P2 (3) P3 (4)
P1 waiting time: 0P2 waiting time: 24P3 waiting time: 27
The average waiting time: (0+24+27)/3 = 17
What if P1 arrives at time 2
31
![Page 18: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/18.jpg)
Problems with FCFS
• Non-preemptive• Not optimal AWT• Cannot utilize resources in parallel:– Assume 1 process CPU bounded and many I/O
bounded processes – Result: Convoy effect, low CPU and I/O device
utilization –Why?
18
![Page 19: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/19.jpg)
Why Convoy Effects?• Consider 100 I/O-bound processes and 1 CPU-bound job in
the system. • I/O-bound processes pass quickly through the ready queue and
suspend themselves waiting for I/O. • The CPU-bound process arrives at head of queue and executes
the program until completion. • I/O bound processes rejoin the ready queue and wait for the
CPU-bound process releasing the CPU.• I/O devices idle until the CPU-bound process completes.• In general, a convoy effect happens when a set of processes
need to use a resource for a short time, and one process holds the resource for a long time, blocking all of the other processes. Essentially, it causes poor utilization of resources in the system.
19
![Page 20: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/20.jpg)
Shortest Job First (SJF)• Schedule the job with the shortest duration time first• Used in batch systems• Two types:
– Non-preemptive– Preemptive
• Requirement: the duration time needs to be known in advance
• Optimal if all jobs are available simultaneously (provable) – Gives the best possible AWT (average waiting time)
20
![Page 21: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/21.jpg)
Non-preemptive SJF: ExampleProcess Duration Order Arrival Time
P1 6 1 0P2 8 2 0P3 7 3 0P4 3 4 0
21
0 3
P4 (3) P1 (6)
9
P3 (7)
16
P4 waiting time: 0P1 waiting time: 3P3 waiting time: 9P2 waiting time: 16
The total time is: 24The average waiting time (AWT): (0+3+9+16)/4 = 7
P2 (8)
24
Do it yourself
![Page 22: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/22.jpg)
Comparing to FCFSProcess Duration Order Arrival Time
P1 6 1 0P2 8 2 0P3 7 3 0P4 3 4 0
22
0 6
P4 (3)P1 (6)
14
P3 (7)
21
P1 waiting time: 0P2 waiting time: 6P3 waiting time: 14P4 waiting time: 21
The total time is the same.The average waiting time (AWT): (0+6+14+21)/4 = 10.25
(compared to 7)
P2 (8)
24
Do it yourself
![Page 23: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/23.jpg)
SJF Is Not Always Optimal• Is SJF optimal if all
the jobs are not available simultaneously?
Process Duration Order Arrival Time
P1 10 1 0P2 2 2 2
23
0 10
P1 (10)
P1 waiting time: 0P2 waiting time: 8
The average waiting time (AWT): (0+8)/2 = 4
P2 (2)
2 (p2 arrives) 12
Do it yourself
![Page 24: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/24.jpg)
Preemptive SJF
• Also called Shortest Remaining Time First– Schedule the job with the shortest remaining time
required to complete
• Requirement: the duration time needs to be known in advance
24
![Page 25: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/25.jpg)
Preemptive SJF: Same ExampleProcess Duration Order Arrival Time
P1 10 1 0
P2 2 2 2
25
P1 waiting time: 4-2 =2P2 waiting time: 0
The average waiting time (AWT): (0+2)/2 = 1
0 122
P1 (8)P2 (2)
4
P1 (2)
![Page 26: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/26.jpg)
A Problem with SJF
• Starvation– In some scenarios, a job may wait forever– Example: SJF• Process A with duration time of 1 hour arrives at time 0• But every 1 minute, a shorter process with duration time
of 2 minutes arrive• Result of SJF: process A never gets to run
• What’s the difference between starvation and a deadlock?
26
![Page 27: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/27.jpg)
Interactive Scheduling Algorithms• Usually preemptive
– Time is sliced into quantum (time intervals)– Scheduling decision is also made at the beginning of each
quantum• Performance Criteria
– Min Response time– best proportionality
• Representative algorithms:– Priority-based– Round-robin– Multi Queue & Multi-level Feedback– Shortest process time– Guaranteed Scheduling– Lottery Scheduling– Fair Sharing Scheduling
27
![Page 28: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/28.jpg)
Priority Scheduling• Each job is assigned a priority. • FCFS within each priority level. • Select highest priority job over lower ones.• Rationale: higher priority jobs are more mission-
critical– Example: DVD movie player vs. send email
• Problems:– May not give the best AWT– Starvation
28
![Page 29: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/29.jpg)
Set Priority
• Two approaches– Static (for system with well known and regular
application behaviors)– Dynamic (otherwise)
• Priority may be based on: – Cost to user. – Importance of user. – Aging – Percentage of CPU time used in last X hours.
29
![Page 30: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/30.jpg)
Priority Scheduling: ExampleProcess Duration Priority Arrival Time
P1 6 4 0P2 8 1 0P3 7 3 0P4 3 2 0
30
0 8
P4 (3) P1 (6)
11
P3 (7)
18
P2 waiting time: 0P4 waiting time: 8P3 waiting time: 11P1 waiting time: 18
The average waiting time (AWT): (0+8+11+18)/4 = 9.25
(worse than SJF)
P2 (8)
24
Do it yourself
![Page 31: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/31.jpg)
Round-Robin (RR)
• One of the oldest, simple, commonly used scheduling algorithms
• Select process/thread from ready queue in a round-robin fashion (take turns)
• Problems:– Do not consider priority–More context switch overhead
31
![Page 32: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/32.jpg)
Round-Robin: ExampleProcess Duration Order Arrival Time
P1 3 1 0P2 4 2 0P3 3 3 0
32
0
Suppose time quantum is: 1 unit, P1, P2 & P3 never block
P1 P2 P3
10
P1 P2 P3 P1 P2 P3 P2
P1 waiting time: 4P2 waiting time: 6P3 waiting time: 6
The average waiting time (AWT): (4+6+6)/3 = 5.33
Do it yourself
![Page 33: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/33.jpg)
Time Quantum• Time slice too large
– FIFO behavior – Poor response time
• Time slice too small– Too many context switches (overheads) – Inefficient CPU utilization
• Heuristic: (Eliminating preemption)– 70–80% of processes block within time-slice
• Typical time slice – 10 to 100 ms
• Time spent in system depends on size of job
33
![Page 34: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/34.jpg)
Multi-Queue Scheduling• Hybrid between priority and round-robin• Processes assigned to one queue• Scheduling between queues
– Fixed Priorities – Dynamic priorities based on CPU % spent on queue
• Example – System processes – Interactive programs – Background processes
• Address the starvation problem
34
![Page 35: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/35.jpg)
Multi-Queue Scheduling: Example
35
![Page 36: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/36.jpg)
Multi-Processor Scheduling: Load Sharing• Decides–Which process to run?– How long does it run?–Where to run it?
36
(CPU (horsepower))
Process 1 Process 2 Process n
I want to ride it
…
![Page 37: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/37.jpg)
Multi-Processor Scheduling Choices• Self-Scheduled – Each CPU dispatches a job from the ready queue
• Master-Slave – One CPU schedules the other CPUs
• Asymmetric – One CPU runs the kernel and the others run the
user applications. – One CPU handles network and the others handle
applications
37
![Page 38: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/38.jpg)
Gang Scheduling for Multi-Processors
• A collection of processes belonging to one job • All the processes are running at the same time– If one process is preempted, all the processes of
the gang are preempted. Why?• Helps to eliminate the time a process spends
on waiting for other processes in its parallel computation.
38
![Page 39: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/39.jpg)
Priority Inversion and Inheritance
• Priority inversion problem– When a higher priority process needs to read or modify
kernel data that are currently being locked by a lower priority process:
– The higher priority process must wait!– But the lower priority cannot proceed due to scheduling.
• Solution: Priority inheritance – When a lower-priority process accesses a resource, it
inherits high priority until it is done with the resource in question. Then its priority reverts to its natural value.
39
![Page 40: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/40.jpg)
User-Level Thread Scheduling
Possible Scheduling • 50-msec process quantum• Threads run 5 msec/CPU
burst
40
?
![Page 41: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/41.jpg)
Kernel-Level Thread Scheduling
41
Possible Scheduling • 50-msec process quantum• Threads run 5 msec/CPU
burst
![Page 42: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/42.jpg)
Summary (I)
• Why Scheduling?• Basic Concepts of Scheduling• Scheduling Criteria• Basic Scheduling Algorithm (FCFS)• Convoy Effects
42
![Page 43: CPU Schedulingchampion.17/2431/04-Scheduling.pdf · CPU Scheduling 1 CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2–6.8)](https://reader033.vdocuments.us/reader033/viewer/2022050611/5fb24646a43b9b42c15c41aa/html5/thumbnails/43.jpg)
Summary (II)
• Scheduling algorithms– Shortest job first (SJF)– Round-robin (RR)– Priority scheduling–Multi Queue–Multi-Processor Scheduling
• Priority Inversion• Thread Scheduling
43