Process Scheduling
-
Upload
international-islamic-university -
Category
Education
-
view
143 -
download
0
Transcript of Process Scheduling
![Page 1: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/1.jpg)
PROCESS SCHEDULING
Sunawar Khan
MS(CS)
IIUI
![Page 2: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/2.jpg)
Reference:-
After Reading This Topic. . .
Goals of processor
scheduling.
Preemptive vs. Non
preemptive scheduling.
Role of priorities in scheduling.
Scheduling criteria.
Common scheduling algorithms.
![Page 3: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/3.jpg)
Reference:-
What is Process Scheduling?
Assignment of Processor to process to accomplish the work
When process should be assigned to which process is Process Scheduling
When more than one process is runnable, UPU must decide priority
Part of OS concerned with this decision is called Scheduler.
To solve this problem with different algorithm is called Scheduling Algorithm
http://www.cs.kent.edu/~rmuhamma/
![Page 4: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/4.jpg)
Reference:-
Basic Concept
■ Maximum CPU utilization obtained
with multiprogramming
■ CPU–I/O Burst Cycle – Process
execution consists of a cycle of CPU
execution and I/O wait
■ CPU burst followed by I/O burst
■ CPU burst distribution is of main
concern
Silberchatz, Galvin and Gagne Operating System, 9th Edition
![Page 5: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/5.jpg)
Reference:-
Policy To Process Scheduling
Decides which process runs at given time
Different schedulers goals Maximize throughput
Minimize latency
Prevent indefinite postponement
Complete process by given deadline
Maximize processor utilization
http://www.cs.kent.edu/~rmuhamma/
![Page 6: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/6.jpg)
Reference:-
What the Scheduler try to achieve
•Maximize throughput
•Response Time
•Minimize resource utilization
•Avoid indefinite postponement
•Enforce priorities
•Minimize overhead
•Ensure predictability
•Policy Enforcement
Different objectives depending on system
Deitel & Deitel, Operating System
![Page 7: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/7.jpg)
Reference:-
General Goals
Goals
Fairness Predictability Scalability
http://www.cs.kent.edu/~rmuhamma/
![Page 8: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/8.jpg)
Reference:-
Scheduling Levels
High-level scheduling
•Determines which jobs can compete for resources
•Controls number of processes in system at one time
Intermediate-level
scheduling
•Determines which processes can compete for processors
•Responds to fluctuations in system load
Low-level scheduling
•Assigns priorities
•Assigns processors to processes
Deitel & Deitel, Operating System
![Page 9: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/9.jpg)
Reference:-
Scheduling Levels
Deitel & Deitel, Operating System
![Page 10: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/10.jpg)
Reference:-
Preemptive vs. Nonpreemptive Scheduling
Preemptive processes
Can be removed from their current processor
Can lead to improved response times
Important for interactive environments
Preempted processes remain in memory
Nonpreemptive processes
Run until completion or until they yield control of a processor
Unimportant processes can block important ones indefinitely
http://www.cs.kent.edu/~rmuhamma/
![Page 11: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/11.jpg)
Reference:-
CPU Scheduler
Short-term scheduler selects from among the processes in ready queue, and
allocates the CPU to one of them
Queue may be ordered in various ways
CPU scheduling decisions may take place when a process:
1. Switches from running to waiting state
2. Switches from running to ready state
3. Switches from waiting to ready
4. Terminates
Scheduling under 1 and 4 is nonpreemptive
All other scheduling is preemptive
Consider access to shared data
Consider preemption while in kernel mode
Consider interrupts occurring during crucial OS activities
Silberchatz, Galvin and Gagne Operating System, 9th Edition
![Page 12: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/12.jpg)
Reference:-
Scheduling Criteria
■ CPU utilization – keep the CPU as busy as possible
■ Throughput – # of processes that complete their execution per
time unit
■ Turnaround time – amount of time to execute a particular
process
■ Waiting time – amount of time a process has been waiting in
the ready queue
■ Response time – amount of time it takes from when a request
was submitted until the first response is produced, not output
(for time-sharing environment)
Silberchatz, Galvin and Gagne Operating System, 9th Edition
![Page 13: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/13.jpg)
Reference:-
Scheduling Algorithm Optimization Criteria
■ Max CPU utilization
■ Max throughput
■ Min turnaround time
■ Min waiting time
■ Min response time
Silberchatz, Galvin and Gagne Operating System, 9th Edition
![Page 14: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/14.jpg)
Reference:-14
Scheduling Algorithms
Scheduling algorithms
Decide when and for how long each process runs
Make choices about Preemptibility
Priority
Running time
Run-time-to-completion
fairness
![Page 15: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/15.jpg)
Reference:-
First-In-First-Out (FIFO) Scheduling
FIFO scheduling
•Simplest scheme
•Processes dispatched according to arrival time
•Nonpreemptible
•Rarely used as primary scheduling algorithm
![Page 16: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/16.jpg)
Reference:-
FIFO
Process Burst Time
P1 24
P2 3
P3 3
■ Suppose that the processes arrive in the order: P1 , P2 , P3
The Gantt Chart for the schedule is:
■ Waiting time for P1 = 0; P2 = 24; P3 = 27
■ Average waiting time: (0 + 24 + 27)/3 = 17
P P P1 2 3
0 24 3027
![Page 17: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/17.jpg)
Reference:-
FIFO (Cont.)
Suppose 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
■ Much better than previous case
■ Convoy effect - short process behind long process
– Consider one CPU-bound and many I/O-bound processes
P1
0 3 6 30
P2
P3
![Page 18: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/18.jpg)
Reference:-
Round-Robin (RR) Scheduling
■ Round-robin scheduling
– Based on FIFO
– Processes run only for a limited amount of time called a time
slice or quantum
– Preemptible
– Requires the system to maintain several processes in memory
to minimize overhead
– Often used as part of more complex algorithms
![Page 19: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/19.jpg)
Reference:-
Round Robin(RR) Scheduling
■ Each process gets a small unit of CPU time (time quantum q), usually 10-100 milliseconds.
After this time has elapsed, the process is preempted 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 q time units at once. No process waits more
than (n-1)q time units.
■ Timer interrupts every quantum to schedule next process
■ Performance
– q large FIFO
– q small q must be large with respect to context switch, otherwise overhead is too
high
![Page 20: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/20.jpg)
Reference:-
Round Robin(RR) Scheduling
![Page 21: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/21.jpg)
Reference:-
Example of RR with Time Quantum = 4
Process Burst Time
P1 24
P2 3
P3 3
■ The Gantt chart is:
■ Typically, higher average turnaround than SJF, but better response
■ q should be large compared to context switch time
■ q usually 10ms to 100ms, context switch < 10 usec
P P P1 1 1
0 18 3026144 7 10 22
P2
P3
P1
P1
P1
![Page 22: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/22.jpg)
Reference:-
Time Quantum and Context Switch Time
![Page 23: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/23.jpg)
Reference:-
Turnaround Time Varies With The Time Quantum
80% of CPU bursts should be shorter than q
![Page 24: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/24.jpg)
Reference:-24
Round-Robin (RR) Scheduling
■ Selfish round-robin scheduling
– Increases priority as process ages
– Two queues
■ Active
■ Holding
– Favors older processes to avoids unreasonable
delays
![Page 25: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/25.jpg)
Reference:-25
Round-Robin (RR) Scheduling
■ Quantum size
– Determines response time to interactive requests
– Very large quantum size
■ Processes run for long periods
■ Degenerates to FIFO
– Very small quantum size
■ System spends more time context switching than running processes
– Middle-ground
■ Long enough for interactive processes to issue I/O request
■ Batch processes still get majority of processor time
![Page 26: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/26.jpg)
Reference:-
Shortest-Process-First (SPF) Scheduling
■ Scheduler selects process with smallest time to finish
– Lower average wait time than FIFO
■ Reduces the number of waiting processes
– Potentially large variance in wait times
– Nonpreemptive
■ Results in slow response times to arriving interactive requests
– Relies on estimates of time-to-completion
■ Can be inaccurate or falsified
– Unsuitable for use in modern interactive systems
![Page 27: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/27.jpg)
Reference:-
Shortest-Process-First (SPF) Scheduling
■ 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 set of processes
– The difficulty is knowing the length of the next CPU
request
– Could ask the user
![Page 28: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/28.jpg)
Reference:-
Example of SJF
ProcessArriva l Time Burst Time
P1 0.0 6
P2 2.0 8
P3 4.0 7
P4 5.0 3
■ SJF scheduling chart
■ Average waiting time = (3 + 16 + 9 + 0) / 4 = 7
P3
0 3 24
P4
P1
169
P2
![Page 29: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/29.jpg)
Reference:-
Determining Length of Next CPU Burst
■ Can 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, using exponential averaging
■ Commonly, α set to ½
■ Preemptive version called shortest-remaining-time-first
:Define 4.
10 , 3.
burst CPU next the for value predicted 2.
burst CPU of length actual 1.
1n
thn nt
.1 1 nnn
t
![Page 30: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/30.jpg)
Reference:-
Prediction of the Length of the Next CPU Burst
![Page 31: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/31.jpg)
Reference:-
Examples of Exponential 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 - ) tn -1 + …
+(1 - )j tn -j + …
+(1 - )n +1 0
■ Since both and (1 - ) are less than or equal to 1, each successive term has less weight than its predecessor
![Page 32: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/32.jpg)
Reference:-
Example of Shortest-remaining-time-first
■ Now we add the concepts of varying arrival times and preemption to the analysis
ProcessAarri Arrival TimeT Burst Time
P1 0 8
P2 1 4
P3 2 9
P4 3 5
■ Preemptive SJF Gantt Chart
■ Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4 = 6.5 msec
P4
0 1 26
P1
P2
10
P3
P1
5 17
![Page 33: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/33.jpg)
Reference:-
Multilevel Queue
■ Ready queue is partitioned into separate queues, eg:
– foreground (interactive)
– background (batch)
■ Process permanently in a given queue
■ Each queue has its own scheduling algorithm:
– foreground – RR
– background – FCFS
■ Scheduling must be done between the queues:
– Fixed priority scheduling; (i.e., serve all from foreground then from background).
Possibility of starvation.
– Time slice – each queue gets a certain amount of CPU time which it can schedule
amongst its processes; i.e., 80% to foreground in RR
– 20% to background in FCFS
![Page 34: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/34.jpg)
Reference:-34
Multilevel Feedback Queues
■ Different processes have different needs
– Short I/O-bound interactive processes should generally run before processor-bound batch processes
– Behavior patterns not immediately obvious to the scheduler
■ Multilevel feedback queues
– Arriving processes enter the highest-level queue and execute with higher priority than processes in lower queues
– Long processes repeatedly descend into lower levels
■ Gives short processes and I/O-bound processes higher priority
■ Long processes will run when short and I/O-bound processes terminate
– Processes in each queue are serviced using round-robin
■ Process entering a higher-level queue preempt running processes
![Page 35: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/35.jpg)
Reference:-35
Multilevel Feedback Queues
■ Algorithm must respond to changes in environment
– Move processes to different queues as they alternate between
interactive and batch behavior
■ Example of an adaptive mechanism
– Adaptive mechanisms incur overhead that often is offset by
increased sensitivity to process behavior
![Page 36: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/36.jpg)
Reference:-
Multilevel Queue Scheduling
![Page 37: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/37.jpg)
Reference:-
Multi Level Queue Scheduling
![Page 38: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/38.jpg)
Reference:-
Multilevel Feedback Queue
■ A process can move between the various queues; aging can be
implemented this way
■ Multilevel-feedback-queue scheduler defined by the following
parameters:
– 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
when that process needs service
![Page 39: Process Scheduling](https://reader031.fdocuments.us/reader031/viewer/2022022202/5879fd071a28ab70298b7699/html5/thumbnails/39.jpg)
Reference:-
Example of Multilevel Feedback Queue
■ Three queues:
– Q0 – RR with time quantum 8 milliseconds
– Q1 – RR time quantum 16 milliseconds
– Q2 – FCFS
■ Scheduling
– A new job enters queue Q0 which is served
FCFS
■ When it gains CPU, job receives 8
milliseconds
■ If it does not finish in 8
milliseconds, job is moved to queue
Q1
– At Q1 job is again served FCFS and
receives 16 additional milliseconds
■ If it still does not complete, it is
preempted and moved to queue Q2