Professional Documents
Culture Documents
By
Prof. Sagar D. Korde
Department of Information Technology
K J Somaiya College of Engineering, Mumbai-77
(Constituent college of Somaiya Vidyavihar University)
10/14/2020 Silberschatz A., Galvin P., Gagne G, “Operating Systems Concepts”, VIIIth Edition, Wiley, 2011. 1
Course Outcomes:
At the end of successful completion of the module a student will be able to
CO2: Demonstrate use of inter process communication.
Module 2: Process Management
2.1 Processes: Process Concept, process creation , suspension and termination ,Process States: 2, 5, 7
state models, Process Description, Process Control block.
2.2 Threads: Multithreading models, Thread implementations – user level and kernel level threads,
Symmetric Multiprocessing.
2.3 Uniprocessor Scheduling: Scheduling Criteria, Types of Scheduling: Preemptive, Non-
preemptive, Long-term, Medium- term, Short-term schedulers. Scheduling Algorithms: FCFS, SJF,
SRTF,RR, Priority.
2.4 Multiprocessor Scheduling: Granularity, Design Issues, Process Scheduling. Thread Scheduling,
Real Time Scheduling
2.5 Process Security
10/14/2020 Silberschatz A., Galvin P., Gagne G, “Operating Systems Concepts”, VIIIth Edition, Wiley, 2011. 2
Module 2.1: CPU Scheduling
• Basic Concepts
• Scheduling Criteria
• Scheduling Algorithms
• Thread Scheduling
• Multiple-Processor Scheduling
• Operating Systems Examples
• Algorithm Evaluation
10/14/2020 3
Objectives
10/14/2020 4
Basic Concepts
10/14/2020 5
Histogram of CPU-burst Times
10/14/2020 6
Alternating Sequence of CPU and
I/O Bursts
10/14/2020 7
Types of Scheduler
S.N Long-Term Scheduler Short-Term Scheduler Medium-Term Scheduler
.
3 It controls the degree of It provides lesser control over It reduces the degree of
multiprogramming degree of multiprogramming multiprogramming.
10/14/2020 8
CPU Scheduler
• Selects from among the processes in memory that are ready to execute, and
allocates the CPU to one of them
• CPU scheduling decisions may take place when a process:
1. Switches from running to waiting state
2. Switches from running to ready state
3. Switches from waiting to ready
4. Terminates
• Scheduling under 1 and 4 is non-preemptive
• All other scheduling is preemptive – implications for data sharing between
threads/processes
10/14/2020 9
Dispatcher
10/14/2020 10
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)
10/14/2020 11
Scheduling Algorithm Optimization Criteria
10/14/2020 12
First-Come, First-Served (FCFS) Scheduling
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:
P1 P2 P3
10/14/2020 13
FCFS Scheduling (Cont.)
P2 P3 P1
0 3 6 30
10/14/2020 14
Shortest-Job-First (SJF) 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
o The difficulty is knowing the length of the next CPU request.
10/14/2020 15
Example of SJF
P4 P1 P3 P2
0 3 9 16 24
• Average waiting time = (3 + 16 + 9 + 0) / 4 = 7
10/14/2020 16
Determining Length of Next CPU Burst
• Can only estimate the length
• Can be done by using the length of previous CPU bursts, using
exponential averaging
10/14/2020 17
Prediction of the Length of the
Next CPU Burst
10/14/2020 18
Examples of Exponential Averaging
• =0
o n+1 = n
o Recent history does not count.
• =1
o n+1 = tn
o 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.
10/14/2020 19
Priority Scheduling
• A priority number (integer) is associated with each process
• The CPU is allocated to the process with the highest priority (smallest integer
highest priority)
o Preemptive
o Non-preemptive
• Note that SJF is a priority scheduling where priority is the predicted next CPU
burst time
• Problem Starvation – low priority processes may never execute
• Solution Aging – as time progresses increase the priority of the process
10/14/2020 20
Priority Scheduling
10/14/2020 21
Round Robin (RR)
• Each process gets a small unit of CPU time (time quantum), usually 10-100
milliseconds. After this time has elapsed, the process is preempted and added to
the end of the ready queue.
• We can predict wait time: 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.
• Performance
o q large FIFO
o q small may hit the context switch wall: q must be large with respect to
context switch, otherwise overhead is too high
10/14/2020 22
Example of RR with Time Quantum = 4
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
10/14/2020 23
Time Quantum and Context Switch Time
10/14/2020 24
Turnaround Time Varies With
The Time Quantum
10/14/2020 25
Multilevel Queue
• Ready queue is partitioned into separate queues:
o foreground (interactive)
o background (batch)
10/14/2020 26
Multilevel Queue Scheduling
10/14/2020 27
Multilevel Feedback Queue
10/14/2020 28
Example of Multilevel Feedback Queue
• Three queues:
o Q0 – RR with time quantum 8 milliseconds
o Q1 – RR time quantum 16 milliseconds
o Q2 – FCFS
• Scheduling
o 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.
o 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.
10/14/2020 29
Multilevel Feedback Queues
10/14/2020 30
Thread Scheduling
10/14/2020 31
Pthread Scheduling
10/14/2020 32
Multiple-Processor Scheduling
10/14/2020 33
NUMA and CPU Scheduling
10/14/2020 34
Multicore Processors
• Recent trend to place multiple processor cores on same physical chip
10/14/2020 35
Multithreaded Multicore System
10/14/2020 36
Operating System Examples
• Solaris scheduling
• Windows XP scheduling
• Linux scheduling
10/14/2020 37
Solaris Dispatch Table
10/14/2020 38
Solaris Scheduling
10/14/2020 39
Windows XP Priorities
10/14/2020 40
Linux Scheduling
10/14/2020 41
Priorities and Time-slice length
10/14/2020 42
List of Tasks Indexed
According to Priorities
10/14/2020 43
Algorithm Evaluation
• Queueing models
• Implementation
10/14/2020 44
Evaluation of CPU Schedulers
by Simulation
10/14/2020 45
THANK YOU
10/14/2020 Silberschatz A., Galvin P., Gagne G, “Operating Systems Concepts”, VIIIth Edition, Wiley, 2011. 46