scheduling chapter 5 - cpujamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · chapter 5 -...
TRANSCRIPT
![Page 1: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/1.jpg)
CHAPTER 5 - CPUCHAPTER 5 - CPUSCHEDULINGSCHEDULING
1
![Page 2: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/2.jpg)
OBJECTIVESOBJECTIVESIntroduce CPU scheduling for multiprocessor and multicoresystems
CPU-scheduling algorithms and assessing them
Evaluation criteria for selecting a CPU-scheduling algorithm for aparticular system
To examine the scheduling algorithms of several operating systems
2
![Page 3: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/3.jpg)
BASIC CONCEPTSBASIC CONCEPTS
3 . 1
![Page 4: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/4.jpg)
CPU-I/O BURST CYCLECPU-I/O BURST CYCLE
3 . 2
![Page 5: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/5.jpg)
CPU-I/O BURST CYCLECPU-I/O BURST CYCLEMaximum CPU utilization obtained with multiprogramming
CPU–I/O Burst Cycle
Process execution consists of a cycle of CPU execution and I/Owait
CPU burst followed by I/O burst
CPU burst distribution is of main concern
3 . 3
![Page 6: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/6.jpg)
HISTOGRAM OF CPU-BURST DURATIONSHISTOGRAM OF CPU-BURST DURATIONS
3 . 4
![Page 7: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/7.jpg)
CPU SCHEDULERCPU SCHEDULERScheduler selects from among the processes in ready queue, andallocates the CPU to one of them
Queue may be ordered in various ways
3 . 5
![Page 8: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/8.jpg)
PREEMPTIVE SCHEDULINGPREEMPTIVE SCHEDULINGCPU scheduling decisions may take place when aprocess:
1. Switches from running to waiting state
2. Switches from running to ready state
3. Switches from waiting to ready
4. Terminates
3 . 6
![Page 9: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/9.jpg)
CPU SCHEDULERCPU SCHEDULERScheduling under 1 and 4 is nonpreemptive or cooperative
All other scheduling is preemptive
Consider access to shared data
Consider preemption while in kernel mode
Consider interrupts occurring during crucial OSactivities
Preemptive can lead to race conditions
3 . 7
![Page 10: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/10.jpg)
DISPATCHERDISPATCHERDispatcher module gives control of the CPU to the process selected
by the scheduler; this involves:
switching context
switching to user mode
jumping to the proper location in the user program to restart thatprogram
3 . 8
![Page 11: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/11.jpg)
DISPATCHERDISPATCHERDispatch latency – time it takes for the dispatcher to stop one
process and start another running
3 . 9
![Page 12: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/12.jpg)
DISPATCHERDISPATCHER
vmstat reports information about processes, memory, paging, blockIO, traps, disks and cpu activity.
~$ vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 6838372 790652 3562880 0 0 36 28 143 34 2 1 97 0 0 0 0 0 6838224 790660 3562904 0 0 0 28 1059 3782 1 1 98 0 0 0 0 0 6838224 790660 3562908 0 0 0 0 1281 4134 1 1 98 0 0
3 . 10
![Page 13: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/13.jpg)
DISPATCHERDISPATCHER~$ cat /proc/10740/status
Name: java State: S (sleeping) ... voluntary_ctxt_switches: 63 nonvoluntary_ctxt_switches: 3
3 . 11
![Page 14: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/14.jpg)
SCHEDULING CRITERIASCHEDULING CRITERIA
4 . 1
![Page 15: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/15.jpg)
SCHEDULING CRITERIASCHEDULING CRITERIACPU utilization – keep the CPU as busy as possible
Throughput – # of processes that complete their execution pertime unit
Turnaround time – amount of time to execute a particular process
Waiting time – amount of time a process has been waiting in theready queue
Response time – amount of time it takes from when a request wassubmitted until the �rst response is produced, not output (fortime-sharing environment)
4 . 2
![Page 16: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/16.jpg)
SCHEDULING ALGORITHM OPTIMIZATION CRITERIASCHEDULING ALGORITHM OPTIMIZATION CRITERIAMax CPU utilization
Max throughput
Min turnaroundtime
Min waiting time
Min response time
4 . 3
![Page 17: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/17.jpg)
SCHEDULING ALGORITHMSSCHEDULING ALGORITHMS
5 . 1
![Page 18: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/18.jpg)
FIRST-COME, FIRST-SERVED (FCFS)FIRST-COME, FIRST-SERVED (FCFS)Process Burst Time
P1 24
P2 3
P3 3
Suppose that the processes arrive in the order: P1 , P2 , P3
5 . 2
![Page 19: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/19.jpg)
FCFS SCHEDULINGFCFS SCHEDULINGThe Gantt Chart for the schedule is:
Waiting time for P1 = 0; P2 = 24; P3 = 27
Average waiting time: (0 + 24 + 27)/3 = 17
5 . 3
![Page 20: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/20.jpg)
FCFS SCHEDULINGFCFS SCHEDULINGSuppose that the processes arrive in the order: P2 , P3 , P1
The Gantt chart for the schedule is:
Waiting time for P1 = 6; P2 = 0; P3 = 3
Average waiting time: (6 + 0 + 3)/3 = 3
5 . 4
![Page 21: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/21.jpg)
FCFS SCHEDULINGFCFS SCHEDULINGMuch better than previous case
Convoy effect - short process behind longprocess
Consider one CPU-bound and many I/O-bound processes
5 . 5
![Page 22: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/22.jpg)
SHORTEST-JOB-FIRST (SJF)SHORTEST-JOB-FIRST (SJF)Associate with each process the length of its next CPU burst
Use these lengths to schedule the process with the shortest time
SJF is optimal – gives minimum average waiting time for a given setof processes
The dif�culty is knowing the length of the next CPU request
5 . 6
![Page 23: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/23.jpg)
EXAMPLE OF SJFEXAMPLE OF SJFProcess Burst Time
P1 6
P2 8
P3 7
P4 3
5 . 7
![Page 24: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/24.jpg)
EXAMPLE OF SJFEXAMPLE OF SJFSJF scheduling chart
Average waiting time = (3 + 16 + 9 + 0) / 4 = 7
5 . 8
![Page 25: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/25.jpg)
DETERMINING LENGTH OF NEXT CPU BURSTDETERMINING LENGTH OF NEXT CPU BURSTCan only estimate the length – should be similar to the previous one
Then pick process with shortest predicted next CPU burst
Can be done by using the length of previous CPU bursts, usingexponential averaging
5 . 9
![Page 26: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/26.jpg)
DETERMINING LENGTH OF NEXT CPU BURSTDETERMINING LENGTH OF NEXT CPU BURSTtn = actual length of nth CPU burst
τn+1 = predicted value for the next CPU burst
α where 0 ≤ α ≤ 1
De�ne: τn+1 = α tn + ( 1− α ) τn .
5 . 10
![Page 27: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/27.jpg)
PREDICTION OF THE LENGTH OF THE NEXT CPU BURSTPREDICTION OF THE LENGTH OF THE NEXT CPU BURST
5 . 11
![Page 28: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/28.jpg)
EXPONENTIAL AVERAGINGEXPONENTIAL AVERAGINGα = 0
τn+1 = τn → Recent history does not count
α =1
τn+1 = α tn → Only the actual last CPU burst counts
If we expand the formula, we get:
τn+1 = α tn + (1 - α)α t n -1 + … + (1 - α )j α tn-j + … +(1 - α )n+1 τ0
Since both α and (1 - α) are less than or equal to 1, each successiveterm has less weight than its predecessor
5 . 12
![Page 29: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/29.jpg)
SHORTEST-REMAINING-TIME-FIRSTSHORTEST-REMAINING-TIME-FIRSTThe preemptive version of Shortest Job First is sometimes called the
Shortest Remaining Time First algorithm
5 . 13
![Page 30: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/30.jpg)
EXAMPLEEXAMPLENow we add the concepts of varying arrival times and preemption to
the analysis
Process Arrival Time Burst Time
P1 0 8
P2 1 4
P3 2 9
P4 3 5
5 . 14
![Page 31: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/31.jpg)
EXAMPLEEXAMPLEPreemptive SJF Gantt Chart
Average waiting time = [(10-1)(1-1)(17-2)+5-3)]/4 = 26/4 = 6.5 msec
5 . 15
![Page 32: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/32.jpg)
ROUND ROBIN (RR)ROUND ROBIN (RR)Each process gets a small unit of CPU time (time quantum q), usually
10-100 milliseconds. After this time has elapsed, the process ispreempted and added to the end of the ready queue.
If there are n processes in the ready queue and the time quantum is q,then each process gets 1/n of the CPU time in chunks of at most qtime units at once. No process waits more than (n-1)q time units.
Timer interrupts every quantum to schedule next process
5 . 16
![Page 33: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/33.jpg)
EXAMPLEEXAMPLEProcess Burst Time
P1 24
P2 3
P3 3
5 . 17
![Page 34: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/34.jpg)
EXAMPLEEXAMPLETime Quantum = 4
The Gantt chart is:
5 . 18
![Page 35: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/35.jpg)
ROUND ROBIN PERFORMANCEROUND ROBIN PERFORMANCETypically, higher average turnaround than SJF, but better response
q large → FIFO
q small → q must be large with respect to context switch, otherwiseoverhead is too high
q usually 10ms to 100ms, context switch < 10 microsec
5 . 19
![Page 36: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/36.jpg)
TIME QUANTUM AND CONTEXT SWITCH TIMETIME QUANTUM AND CONTEXT SWITCH TIME
5 . 20
![Page 37: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/37.jpg)
TURNAROUND TIME VARIES WITH THE TIME QUANTUMTURNAROUND TIME VARIES WITH THE TIME QUANTUM
5 . 21
![Page 38: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/38.jpg)
PRIORITY SCHEDULINGPRIORITY SCHEDULINGA priority number (integer) is associated with each process
The CPU is allocated to the process with the highest priority(smallest integer → highest priority)
Preemptive
Nonpreemptive
5 . 22
![Page 39: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/39.jpg)
PRIORITY SCHEDULINGPRIORITY SCHEDULINGSJF is priority scheduling where priority is the inverse of predictednext CPU burst time
Problem → Starvation – low priority processes may neverexecute
Solution → Aging – as time progresses increase the priority ofthe process
5 . 23
![Page 40: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/40.jpg)
EXAMPLEEXAMPLEProcess Burst Time Priority
P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2
5 . 24
![Page 41: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/41.jpg)
EXAMPLEEXAMPLEPriority scheduling Gantt Chart
Average waiting time = 8.2 msec
5 . 25
![Page 42: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/42.jpg)
MULTILEVEL QUEUEMULTILEVEL QUEUEReady queue is partitioned into separate queues, eg:
foreground(interactive)
background (batch)
Process permanently in a given queue
5 . 26
![Page 43: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/43.jpg)
MULTILEVEL QUEUEMULTILEVEL QUEUEEach queue has its own scheduling algorithm:
foreground – RR
background –FCFS
5 . 27
![Page 44: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/44.jpg)
MULTILEVEL QUEUEMULTILEVEL QUEUEScheduling must be done between the queues:
Fixed priority scheduling; (i.e., serve all from foreground then frombackground). Possibility of starvation.
Time slice – each queue gets a certain amount of CPU time which itcan schedule amongst its processes; i.e., 80% to foreground in RR
20% to background in FCFS
5 . 28
![Page 45: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/45.jpg)
MULTILEVEL QUEUE SCHEDULINGMULTILEVEL QUEUE SCHEDULING
![Page 46: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/46.jpg)
5 . 29
![Page 47: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/47.jpg)
MULTILEVEL QUEUE SCHEDULINGMULTILEVEL QUEUE SCHEDULING
5 . 30
![Page 48: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/48.jpg)
MULTILEVEL FEEDBACK QUEUEMULTILEVEL FEEDBACK QUEUEA process can move between the various queues; aging can be
implemented this way
Multilevel-feedback-queue scheduler de�ned by the followingparameters:
number of queues
scheduling algorithms for each queue
method used to determine when to upgrade a process
method used to determine when to demote a process
method used to determine which queue a process will enter whenthat process needs service
5 . 31
![Page 49: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/49.jpg)
EXAMPLEEXAMPLEThree queues:
Q0 – RR with time quantum 8
milliseconds
Q1 – RR time quantum 16 milliseconds
Q2 – FCFS
5 . 32
![Page 50: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/50.jpg)
EXAMPLEEXAMPLE
5 . 33
![Page 51: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/51.jpg)
EXAMPLEEXAMPLEScheduling
A new job enters queue Q0 which is served FCFS
When it gains CPU, job receives 8 milliseconds
If it does not �nish in 8 milliseconds, job is moved to queue Q 1
At Q1 job is again served FCFS and receives 16 additional
milliseconds
If it still does not complete, it is preempted and moved to queueQ2
5 . 34
![Page 52: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/52.jpg)
THREAD SCHEDULINGTHREAD SCHEDULING
6 . 1
![Page 53: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/53.jpg)
THREAD SCHEDULINGTHREAD SCHEDULINGDistinction between user-level and kernel-level threads
When threads supported, threads scheduled, not processes
Many-to-one and many-to-many models, thread library schedulesuser-level threads to run on LWP
Known as process-contention scope (PCS) since schedulingcompetition is within the process
Typically done via priority set by programmer
Kernel thread scheduled onto available CPU is system-contentionscope (SCS) – competition among all threads in system
6 . 2
![Page 54: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/54.jpg)
PTHREAD SCHEDULINGPTHREAD SCHEDULINGAPI allows specifying either PCS or SCS during thread creation
PTHREAD_SCOPE_PROCESS schedules threads using PCSscheduling
PTHREAD_SCOPE_SYSTEM schedules threads using SCSscheduling
Can be limited by OS – Linux and Mac OS X only allowPTHREAD_SCOPE_SYSTEM
6 . 3
![Page 55: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/55.jpg)
PTHREAD SCHEDULING APIPTHREAD SCHEDULING API#include <pthread.h> #include <stdio.h> #define NUM THREADS 5 int main(int argc, char *argv[]) { int i, scope; pthread_t tid[NUM THREADS]; pthread_attr_t attr; /* get the default attributes */ pthread_attr_init(&attr); /* first inquire on the current scope */ if (pthread_attr_getscope(&attr, &scope) != 0) { fprintf(stderr, "Unable to get scheduling scope \n"); } else { if (scope == PTHREAD_SCOPE_PROCESS) { printf("PTHREAD SCOPE PROCESS"); } else if (scope == PTHREAD_SCOPE_SYSTEM) { printf("PTHREAD SCOPE SYSTEM"); } else { fprintf(stderr, "Illegal scope value. \n"); } } /* set the scheduling algorithm to PCS or SCS */ pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); /* create the threads */ for(i = 0; i < NUM THREADS; i++) { pthread_create(&tid[i],&attr,runner,NULL);
} 6 . 4
![Page 56: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/56.jpg)
MULTIPLE-PROCESSOR SCHEDULINGMULTIPLE-PROCESSOR SCHEDULING
7 . 1
![Page 57: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/57.jpg)
MULTIPLE-PROCESSOR SCHEDULINGMULTIPLE-PROCESSOR SCHEDULINGCPU scheduling more complex when multiple CPUs are available
Homogeneous processors within a multiprocessor
Asymmetric multiprocessing – only one processor accesses thesystem data structures, alleviating the need for data sharing
Symmetric multiprocessing (SMP) – each processor is self-scheduling, all processes in common ready queue, or each has itsown private queue of ready processes
Currently, most common
7 . 2
![Page 58: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/58.jpg)
ORGANIZATION OF READY QUEUESORGANIZATION OF READY QUEUES
7 . 3
![Page 59: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/59.jpg)
MULTICORE PROCESSORSMULTICORE PROCESSORSRecent trend to place multiple processor cores on same physical chip
Faster and consumes less power
Multiple threads per core also growing
Takes advantage of memory stall to make progress on anotherthread while memory retrieve happens
7 . 4
![Page 60: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/60.jpg)
MEMORY STALLMEMORY STALLMemory Stall - due to cache miss etc.
7 . 5
![Page 61: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/61.jpg)
MULTITHREADED MULTICORE SYSTEMMULTITHREADED MULTICORE SYSTEM
7 . 6
![Page 62: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/62.jpg)
CHIP MULTITHREADINGCHIP MULTITHREADING
7 . 7
![Page 63: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/63.jpg)
MULTITHREADED MULTICORE SYSTEMMULTITHREADED MULTICORE SYSTEMTwo ways to multithread a processing core
Coarse grained - run until long-latency event occurs → �ushpipeline (expensive)
Fine grained - Switch at fx. instruction level
7 . 8
![Page 64: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/64.jpg)
TWO LEVELS OF SCHEDULINGTWO LEVELS OF SCHEDULING
7 . 9
![Page 65: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/65.jpg)
LOAD BALANCINGLOAD BALANCINGIf SMP, need to keep all CPUs loaded for ef�ciency
Load balancing attempts to keep workload evenly distributed
Push migration – periodic task checks load on each processor, andif found pushes task from overloaded CPU to other CPUs
Pull migration – idle processors pulls waiting task from busyprocessor
7 . 10
![Page 66: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/66.jpg)
PROCESSOR AFFINITYPROCESSOR AFFINITYProcessor af�nity – process has af�nity for processor on which it iscurrently running
soft af�nity - tries but no guarantee
hard af�nity - guarantees a subset of processors
Variations including processor sets
7 . 11
![Page 67: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/67.jpg)
NUMA AND CPU SCHEDULINGNUMA AND CPU SCHEDULING
7 . 12
![Page 68: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/68.jpg)
REAL-TIME CPU SCHEDULINGREAL-TIME CPU SCHEDULING
8 . 1
![Page 69: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/69.jpg)
REAL-TIME CPU SCHEDULINGREAL-TIME CPU SCHEDULINGSoft real-time systems – no guarantee as to when critical real-time
process will be scheduled
Hard real-time systems – task must be serviced by its deadline
8 . 2
![Page 70: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/70.jpg)
EVENT LATENCYEVENT LATENCY
Event Latency: The amount of time that elapses from when an eventoccurs to when it is serviced
8 . 3
![Page 71: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/71.jpg)
LATENCIESLATENCIESTwo types of latencies affect performance
Interrupt latency – time from arrival of interrupt to start of routinethat services interrupt
Dispatch latency – time for schedule to take current process off CPUand switch to another
8 . 4
![Page 72: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/72.jpg)
INTERRUPT LATENCYINTERRUPT LATENCY
![Page 73: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/73.jpg)
8 . 5
![Page 74: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/74.jpg)
DISPATCH LATENCYDISPATCH LATENCY
![Page 75: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/75.jpg)
8 . 6
![Page 76: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/76.jpg)
PRIORITY-BASED SCHEDULINGPRIORITY-BASED SCHEDULINGFor real-time scheduling, scheduler must support preemptive,priority-based scheduling
But only guarantees soft real-time
For hard real-time must also provide ability to meet deadlines
8 . 7
![Page 77: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/77.jpg)
PRIORITY-BASED SCHEDULINGPRIORITY-BASED SCHEDULINGProcesses have new characteristics: periodic ones require CPU atconstant intervals
Has processing time t, deadline d, period p
0 ≤ t ≤ d ≤ p
Rate of periodic task is 1/p
![Page 78: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/78.jpg)
8 . 8
![Page 79: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/79.jpg)
ADMISSION CONTROLADMISSION CONTROLProcess have to announce its deadline requirements.
Scheduler does one of two things
1. Accepts and guarantees
2. Rejects the request asimpossible
8 . 9
![Page 80: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/80.jpg)
RATE MONOTONIC SCHEDULINGRATE MONOTONIC SCHEDULINGA priority is assigned based on the inverse of its period
Shorter periods = higherpriority;
Longer periods = lower priority
If a lower-priority process is running and a higher-priority processbecomes available to run, it will preempt the lower-priority process.
Assign higher priority to tasks that require the CPU more often
8 . 10
![Page 81: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/81.jpg)
EXAMPLEEXAMPLEProcess Period Processing time
P1 50 20
P2 100 35
8 . 11
![Page 82: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/82.jpg)
EXAMPLEEXAMPLEIs it possible?
CPU utilization: Ratio of burst to period
P1: 20/50 = 0.40 = 40%
P2: 35/100 = 0.35 =35%
Total: 75%
8 . 12
![Page 83: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/83.jpg)
EXAMPLEEXAMPLESuppose we assign P2 a higher priority than P1
P1 misses deadline! Lets try with Rate Monotonic Scheduling
8 . 13
![Page 84: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/84.jpg)
EXAMPLEEXAMPLEP1 is assigned a higher priority than P2, because of shorter period.
P2 is preempted, but deadlines hold
8 . 14
![Page 85: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/85.jpg)
RATE MONOTONIC SCHEDULINGRATE MONOTONIC SCHEDULINGIs considered optimal in if a set of processes cannot bescheduled with it, it cannot with any other that assigns staticpriorities
But it does not guarantee optimal utilization!
8 . 15
![Page 86: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/86.jpg)
EXAMPLEEXAMPLEProcess Period Processing time
P1 50 20
P2 80 35
8 . 16
![Page 87: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/87.jpg)
EXAMPLEEXAMPLETotal utilization = (20/50) + (35/80) = 94%
Deadlines missed for P2
8 . 17
![Page 88: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/88.jpg)
EARLIEST DEADLINE FIRST SCHEDULING (EDF)EARLIEST DEADLINE FIRST SCHEDULING (EDF)Priorities are assigned according to deadlines:
the earlier the deadline, the higher thepriority
the later the deadline, the lower the priority
Priorities are dynamic
8 . 18
![Page 89: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/89.jpg)
EXAMPLEEXAMPLEProcess Period Processing time
P1 50 20
P2 80 35
8 . 19
![Page 90: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/90.jpg)
EXAMPLEEXAMPLE
8 . 20
![Page 91: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/91.jpg)
EARLIEST DEADLINE FIRST SCHEDULING (EDF)EARLIEST DEADLINE FIRST SCHEDULING (EDF)Does not require processes to be periodic nor use constant CPUtime per burst
Requirement: Announce deadline when it becomes runnable
Theoretical optimal - all reach deadline and CPU utilization 100%
Practice: Impossible due to context switching and interrupthandling
8 . 21
![Page 92: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/92.jpg)
PROPORTIONAL SHARE SCHEDULINGPROPORTIONAL SHARE SCHEDULINGT shares are allocated among all processes in the system
An application receives N shares where N < T
This ensures each application will receive N/T of the totalprocessor time
Admission control checks if enough shares are available
8 . 22
![Page 93: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/93.jpg)
PROPORTIONAL SHARE SCHEDULINGPROPORTIONAL SHARE SCHEDULINGExample - 100 total shares (T):
A gets 50shares
B gets 15 shares
C gets 20 shares
If D arrives and requests 30 shares, it is not allowed
8 . 23
![Page 94: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/94.jpg)
POSIX REAL-TIME SCHEDULINGPOSIX REAL-TIME SCHEDULINGThe POSIX.1b standard
API provides functions for managing real-time threads
De�nes two scheduling classes for real-time threads:
1. SCHED_FIFO - threads are scheduled using a FCFS strategywith a FIFO queue. There is no time-slicing for threads of equalpriority
2. SCHED_RR - similar to SCHED_FIFO except time-slicing occursfor threads of equal priority
8 . 24
![Page 95: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/95.jpg)
POSIX REAL-TIME SCHEDULINGPOSIX REAL-TIME SCHEDULINGDe�nes two functions for getting and setting schedulingpolicy:
pthread_attr_getsched_policy(pthread attr t *attr, int *policy)
pthread_attr_setsched_policy(pthread attr t *attr, int policy)
8 . 25
![Page 96: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/96.jpg)
POSIX REAL-TIME SCHEDULINGPOSIX REAL-TIME SCHEDULING#include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 void *runner(void *param); // gcc -pthread file.c int main(int argc, char *argv[]) { int i, policy; pthread_t tid[NUM_THREADS]; pthread_attr_t attr; /* get the default attributes */ pthread_attr_init(&attr); /* get the current scheduling policy */ if (pthread_attr_getschedpolicy(&attr, &policy) != 0) { fprintf(stderr, "Unable to get policy. \n"); } else { if (policy == SCHED_OTHER) { printf("SCHED_OTHER \n"); } else if (policy == SCHED_RR) { printf("SCHED_RR \n"); } else if (policy == SCHED_FIFO) { printf("SCHED_FIFO \n"); } } /* set the scheduling policy - FIFO, RR, or OTHER */ if (pthread_attr_setschedpolicy(&attr, SCHED_FIFO) != 0) {
f i f( d " bl li \ ") 8 . 26
![Page 97: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/97.jpg)
OPERATING-SYSTEM EXAMPLESOPERATING-SYSTEM EXAMPLES
9 . 1
![Page 98: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/98.jpg)
LINUX SCHEDULING < = VERSION 2.5LINUX SCHEDULING < = VERSION 2.5Prior to kernel version 2.5, ran variation of standard UNIX scheduling
algorithm
Version 2.5 moved to constant order O(1) scheduling time
Preemptive, priority based
Two priority ranges: time-sharing and real-time
Real-time range from 0 to 99 and nice value from 100 to 140
Map into global priority with numerically lower values indicatinghigher priority
9 . 2
![Page 99: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/99.jpg)
LINUX SCHEDULING < = VERSION 2.5LINUX SCHEDULING < = VERSION 2.5Higher priority gets larger q
Task run-able as long as time left in time slice (active)
If no time left (expired), not run-able until all other tasks use theirslices
9 . 3
![Page 100: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/100.jpg)
LINUX SCHEDULING < = VERSION 2.5LINUX SCHEDULING < = VERSION 2.5All run-able tasks tracked in per-CPU runqueue data structure
Two priority arrays (active, expired)
Tasks indexed by priority
When no more active, arrays are exchanged
Worked well, but poor response times for interactiveprocesses
9 . 4
![Page 101: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/101.jpg)
LINUX SCHEDULING IN > 2.6.23LINUX SCHEDULING IN > 2.6.23Completely Fair Scheduler (CFS)
Scheduling classes, each has speci�c priority
Scheduler picks highest priority task in highest scheduling class
Rather than quantum based on �xed time allotments, based onproportion of CPU time
2 scheduling classes included, others can be added
1. default
2. real-time
9 . 5
![Page 102: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/102.jpg)
LINUX SCHEDULING IN > 2.6.23LINUX SCHEDULING IN > 2.6.23Quantum calculated based on nice value from -20 to +19
Lower value is higher priority
Calculates target latency – interval of time during which taskshould run at least once
Target latency can increase if say number of active tasksincreases
9 . 6
![Page 103: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/103.jpg)
LINUX SCHEDULING IN > 2.6.23LINUX SCHEDULING IN > 2.6.23CFS scheduler maintains per task virtual run time in variablevruntime
Associated with decay factor based on priority of task – lowerpriority is higher decay rate
Normal default priority yields virtual run time = actual run time
To decide next task to run, scheduler picks task with lowest virtualrun time
9 . 7
![Page 104: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/104.jpg)
CFS PERFORMANCECFS PERFORMANCE
9 . 8
![Page 105: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/105.jpg)
LINUX SCHEDULINGLINUX SCHEDULINGReal-time scheduling according to POSIX.1b
Real-time tasks have static priorities
Real-time plus normal map into global priorityscheme
Nice value of -20 maps to global priority 100
Nice value of +19 maps to priority 139
9 . 9
![Page 106: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/106.jpg)
LINUX SCHEDULINGLINUX SCHEDULING
9 . 10
![Page 107: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/107.jpg)
LINUX SCHEDULINGLINUX SCHEDULING
9 . 11
![Page 108: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/108.jpg)
WINDOWS SCHEDULINGWINDOWS SCHEDULINGWindows uses priority-based preemptive scheduling
Highest-priority thread runs next
Dispatcher is scheduler
Thread runs until (1) blocks, (2) uses time slice, (3) preempted byhigher-priority thread
Real-time threads can preempt non-real-time
9 . 12
![Page 109: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/109.jpg)
WINDOWS SCHEDULINGWINDOWS SCHEDULING32-level priority scheme
Variable class is 1-15, real-time class is 16-31
Priority 0 is memory-management thread
Queue for each priority
If no run-able thread, runs idle thread
9 . 13
![Page 110: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/110.jpg)
WINDOWS PRIORITY CLASSESWINDOWS PRIORITY CLASSESWin32 API identi�es several priority classes to which a process canbelong
REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS,
ABOVE_NORMAL_PRIORITY_CLASS,
NORMAL_PRIORITY_CLASS,
BELOW_NORMAL_PRIORITY_CLASS,
IDLE_PRIORITY_CLASS
All are variable except REALTIME
9 . 14
![Page 111: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/111.jpg)
WINDOWS PRIORITY CLASSESWINDOWS PRIORITY CLASSESA thread within a given priority class has a relative priority
TIME_CRITICAL, HIGHEST, ABOVE_NORMAL, NORMAL,
BELOW_NORMAL, LOWEST, IDLE
Priority class and relative priority combine to give numeric priority
Base priority is NORMAL within the class
If quantum expires, priority lowered, but never below base
If wait occurs, priority boosted depending on what was waited for
9 . 15
![Page 112: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/112.jpg)
WINDOWS PRIORITY CLASSESWINDOWS PRIORITY CLASSESForeground window given 3x priority boost
Windows 7 added user-mode scheduling (UMS)
Applications create and manage threads independent of kernel
For large number of threads, much more ef�cient
UMS schedulers come from programming language libraries likeC++ Concurrent Runtime (ConcRT) framework
9 . 16
![Page 113: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/113.jpg)
WINDOWS PRIORITIESWINDOWS PRIORITIES
9 . 17
![Page 114: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/114.jpg)
SOLARISSOLARISPriority-based scheduling
Six classes available
Time sharing (default)(TS)
Interactive (IA)
Real time (RT)
System (SYS)
Fair Share (FSS)
Fixed priority (FP)9 . 18
![Page 115: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/115.jpg)
SOLARISSOLARISGiven thread can be in one class at a time
Each class has its own schedulingalgorithm
Time sharing is multi-level feedback queue
Loadable table con�gurable by sysadmin
9 . 19
![Page 116: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/116.jpg)
SOLARIS DISPATCH TABLESOLARIS DISPATCH TABLE
![Page 117: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/117.jpg)
9 . 20
![Page 118: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/118.jpg)
SOLARIS SCHEDULINGSOLARIS SCHEDULING
![Page 119: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/119.jpg)
9 . 21
![Page 120: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/120.jpg)
SOLARIS SCHEDULINGSOLARIS SCHEDULINGScheduler converts class-speci�c priorities into a per-thread global
priority
Thread with highest priority runs next
Runs until (1) blocks, (2) uses time slice, (3) preempted by higher-priority thread
Multiple threads at same priority selected via RR
9 . 22
![Page 121: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/121.jpg)
ALGORITHM EVALUATIONALGORITHM EVALUATION
10 . 1
![Page 122: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/122.jpg)
ALGORITHM EVALUATIONALGORITHM EVALUATIONHow to select CPU-scheduling algorithm for an OS?
Determine criteria, then evaluate algorithms
Deterministic modeling
Type of analytic evaluation
Takes a particular predetermined workload and de�nes theperformance of each algorithm for that workload
10 . 2
![Page 123: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/123.jpg)
EXAMPLEEXAMPLEProcess Burst Time
P1 10
P2 29
P3 3
P4 7
P5 12
10 . 3
![Page 124: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/124.jpg)
DETERMINISTIC EVALUATIONDETERMINISTIC EVALUATIONFor each algorithm, calculate minimum average waiting time
Simple and fast, but requires exact numbers for input, applies only tothose inputs
10 . 4
![Page 125: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/125.jpg)
DETERMINISTIC EVALUATIONDETERMINISTIC EVALUATIONFCFS: 28 ms
Non-preemptive SJF: 13ms
RR: 23ms
10 . 5
![Page 126: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/126.jpg)
QUEUEING MODELSQUEUEING MODELSDescribes the arrival of processes, and CPU and I/O burstsprobabilistically
Commonly exponential, and described by mean
Computes average throughput, utilization, waiting time, etc
Computer system described as network of servers, each withqueue of waiting processes
Knowing arrival rates and service rates
Computes utilization, average queue length, average wait time,etc
10 . 6
![Page 127: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/127.jpg)
LITTLE’S FORMULALITTLE’S FORMULAn = average queue length
W = average waiting time in queue
λ = average arrival rate into queue
Little’s law – in steady state, processes leaving queue must equalprocesses arriving, thus n = λ x W
Valid for any scheduling algorithm and arrival distribution
For example, if on average 7 processes arrive per second, andnormally 14 processes in queue, then average wait time perprocess = 2 seconds
10 . 7
![Page 128: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/128.jpg)
SIMULATIONSSIMULATIONSQueueing models limited - Simulations more accurate
Programmed model of computer system
Clock is a variable
Gather statistics indicating algorithm performance
Data to drive simulation gathered via
Random number generator according to prob.
Distributions de�ned mathematically or empirically
Trace tapes record sequences of real events in realsystems
10 . 8
![Page 129: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/129.jpg)
EVALUATION OF CPU SCHEDULERS BY SIMULATIONEVALUATION OF CPU SCHEDULERS BY SIMULATION
10 . 9
![Page 130: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/130.jpg)
IMPLEMENTATIONIMPLEMENTATIONEven simulations have limited accuracy
Just implement new scheduler and test in real systems
High cost, high risk
Environments vary
Most �exible schedulers can be modi�ed per-site or per-system
Or APIs to modify priorities
But again environments vary
10 . 10
![Page 131: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/131.jpg)
QUESTIONSQUESTIONS
11 . 1
![Page 132: SCHEDULING CHAPTER 5 - CPUjamik/dm510-19/material/lecture-03.pdf · 2019. 5. 13. · CHAPTER 5 - CPU SCHEDULING 1. ... systems CPU-scheduling algorithms and assessing them Evaluation](https://reader035.vdocuments.net/reader035/viewer/2022081621/612fbc001ecc51586943a400/html5/thumbnails/132.jpg)
BONUSBONUSExam question number 3: Process Scheduling
11 . 2