0% found this document useful (0 votes)
5 views79 pages

Module 3.1 Process Scheduling

The document outlines various aspects of process scheduling in operating systems, including types of schedulers (short-term, long-term, and medium-term), scheduling algorithms, and the importance of CPU utilization. It discusses preemptive and non-preemptive scheduling, as well as criteria for evaluating scheduling performance such as throughput and turnaround time. Additionally, examples of scheduling methods like First-Come, First-Served and Shortest-Job-First are provided to illustrate their impact on process management.

Uploaded by

anantvmanoj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views79 pages

Module 3.1 Process Scheduling

The document outlines various aspects of process scheduling in operating systems, including types of schedulers (short-term, long-term, and medium-term), scheduling algorithms, and the importance of CPU utilization. It discusses preemptive and non-preemptive scheduling, as well as criteria for evaluating scheduling performance such as throughput and turnaround time. Additionally, examples of scheduling methods like First-Come, First-Served and Shortest-Job-First are provided to illustrate their impact on process management.

Uploaded by

anantvmanoj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 79

Scheduling

Module – 3

Dr. Rabindra Kumar Singh


Scheduling
 Processes Scheduling
 CPU Scheduling
 Pre-emptive & non-pre-emptive
 Resource allocation and management
 Deadlocks
 Deadlock Handling Mechanisms

Dr. Rabindra Kumar Singh BCSE303L 2


Process Management

Dr. Rabindra Kumar Singh


Process Management
 Scheduling: Primitive and non-Primitive Scheduling;
Scheduling Policies; Processes and Threads; real time Issues;
 Concurrency: The Idea of concurrent execution; state and
state diagram; Implementation Structures(ready list, process
control block and so forth); dispatching and context switching;
interrupt handling in concurrent environment;
 Mutual exclusion: Definition of the “mutual exclusion”
problem; Deadlock detection and prevention; solution
strategy; models and mechanism(semaphores, monitors,
condition variables, rendezvous); Producer-consumer
problems; synchronization; multiprocessor issues

Dr. Rabindra Kumar Singh BCSE303L 4


Process Scheduling

Maximize CPU use, quickly switch processes


onto CPU for time sharing
Process scheduler selects among available
processes for next execution on CPU

Dr. Rabindra Kumar Singh BCSE303L 5


Process Scheduling
Is an OS task that schedules processes of different
states like ready, waiting, and running.

Process scheduling allows OS to allocate a time


interval of CPU execution for each process.

Another important reason for using a process


scheduling system is that it keeps the CPU busy all
the time.

This allows you to get the minimum response time


for programs.

Dr. Rabindra Kumar Singh BCSE303L 6


Process Scheduling
Three types of operating system queues are:

Job queue – It helps you to store all the processes in


the system.

Ready queue – This type of queue helps you to set


every process residing in the main memory, which is
ready and waiting to execute.

Device queues – It is a process that is blocked because


of the absence of an I/O device.

Dr. Rabindra Kumar Singh BCSE303L 7


Ready Queue And Various I/O Device Queues

•Linked list – A queue


header contains
pointers to the first and
final PCBs in the list.

•Each PCB is extended


to include a pointer field
that points to the next
PCB in the queue.

Dr. Rabindra Kumar Singh BCSE303L 8


Representation of Process Scheduling

 Queueing diagram represents queues, resources, flows

•Arrow indicates the


flow of the process.

Dr. Rabindra Kumar Singh BCSE303L 9


Schedulers

Short-term scheduler (or CPU scheduler)

Long-term scheduler (or job scheduler)

Medium-term scheduler

Dr. Rabindra Kumar Singh BCSE303L 10


Short-term scheduler / CPU scheduler

Short term scheduling is also known as CPU scheduler.

The short-term scheduler's main job is to choose a process


from the Ready Queue that is ready to run and assign the
processor to it.

The dispatcher gives control of the CPU to the process


selected by the short term scheduler.

Dr. Rabindra Kumar Singh BCSE303L 11


Short-term scheduler / CPU scheduler

selects which process should be executed next and allocates


CPU

Sometimes only scheduler in a system

invoked in (milliseconds)  (must be fast)

Dr. Rabindra Kumar Singh BCSE303L 12


Long-term scheduler / job scheduler

Long term scheduler is also known as a job


scheduler.

This scheduler regulates the program and


select process from the queue and loads
them into memory for execution.

It also regulates the degree of multi-


programing.

Dr. Rabindra Kumar Singh BCSE303L 13


Long-term scheduler / job scheduler

selects which processes should be brought


into the ready queue

invoked infrequently in (seconds, minutes)


The long-term scheduler controls the degree of multiprogramming

Processes can be described as either:


I/O-bound process
CPU-bound process

Long-term scheduler strives for good process mix

Dr. Rabindra Kumar Singh BCSE303L 14


Long Term Scheduler Short Term Scheduler
It is an operating system scheduler that chooses It is an operating system scheduler that chooses
processes from the job queue and loads them the process from the several processes that
to execution in the main memory. the processor runs.
It is also referred to as the Job Scheduler. It is also referred to as a CPU scheduler.

It is slower. It is faster.
It controls the multiprogramming degree. It provides less control over the multiprogramming
degree.
It selects the process less frequently. It selects the process more frequently.

It is always present in the Batch OS and can or It is present in the Batch OS and is only minimally
cannot be present at all in the Time-Sharing OS. present in the Time-Sharing OS.

It chooses the processes from the job pool. It chooses the processes from the ready queue.

It chooses a good process that is a mix-up of It chooses a new process for a processor quite
input/output bound and CPU bound. frequently.

Dr. Rabindra Kumar Singh BCSE303L 15


Medium Term Scheduling
It is an important part of swapping.
It enables you to handle the swapped out-processes.
In this scheduler, a running process can become suspended, which makes an I/O
request.

Dr. Rabindra Kumar Singh BCSE303L 16


Medium Term Scheduling
 Is added if degree of multiple programming needs to
be decreased
A running process can become suspended if it makes an I/O request.

A suspended processes can’t make any progress towards completion.

In order to remove the process from memory and make space for other
processes, the suspended process should be moved to secondary
storage.

Dr. Rabindra Kumar Singh BCSE303L 17


BCSE303L 18
CPU Scheduling

Dr. Rabindra Kumar Singh


CPU Scheduling
 Basic Concepts
 Scheduling Criteria
 Scheduling Algorithms
 Multiple-Processor Scheduling
 Real-Time Scheduling
 Thread Scheduling
 Operating Systems Examples
 Java Thread Scheduling
 Algorithm Evaluation

Dr. Rabindra Kumar Singh BCSE303L 20


Basic Concepts
 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 distribution

Dr. Rabindra Kumar Singh BCSE303L 21


Alternating Sequence of CPU And I/O Bursts

Dr. Rabindra Kumar Singh BCSE303L 22


CPU Scheduler
 Whenever the CPU becomes idle, the OS
must select one of the processes in the ready
queue to be executed

 The selection process is carried out by the


short-term scheduler

Dr. Rabindra Kumar Singh BCSE303L 23


Diagram of Process State

Dr. Rabindra Kumar Singh BCSE303L 24


Preemptive scheduling vs. non-preemptive scheduling

CPU scheduling decisions may take place when a


process:

1. Switches from running to waiting state


2. Terminates
3. Switches from waiting to ready
4. Switches from running to ready state

Dr. Rabindra Kumar Singh BCSE303L 25


Preemptive scheduling vs. non-preemptive scheduling

 When scheduling takes place only under


circumstances 1 and 2, we say that the scheduling
scheme is non-preemptive; otherwise, its called
preemptive

 Under non-preemptive scheduling, once the CPU


has been allocated to a process, the process keep
the CPU until it release the CPU either by
terminating or by switching to waiting state.

Dr. Rabindra Kumar Singh BCSE303L 26


Preemptive scheduling vs. non-preemptive scheduling

 Preemptive scheduling incurs a cost associated with


access to share data.

 Consider the case of two processes that share a


data. It is preemptive so that while one process is
updating the data, the second process then tries to
read the data, which are in an inconsistent state.

Dr. Rabindra Kumar Singh BCSE303L 27


Dispatcher
 Dispatcher module gives control of the CPU
to the process selected by the short-term
scheduler; this involves:
 switching context
 switching to user mode
 jumping to the proper location in the user
program to restart that program
 Dispatch latency – time it takes for the
dispatcher to stop one process and start
another running

Dr. Rabindra Kumar Singh BCSE303L 28


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)

Dr. Rabindra Kumar Singh BCSE303L 29


Optimization Criteria
• Max CPU utilization
• Max throughput
• Min turnaround time
• Min waiting time
• Min response time

Dr. Rabindra Kumar Singh BCSE303L 30


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

0 24 27 30
 Waiting time for P1 = 0; P2 = 24; P3 = 27
 Average waiting time: (0 + 24 + 27)/3 = 17

Dr. Rabindra Kumar Singh BCSE303L 31


FCFS Scheduling (Contd...)

• Turnaround Time – The interval from the time


of submission of a process to the time of
completion is turnaround time
• Response Time – the amount of time it takes
to start responding
Process Burst Arrival Start Wait Finish
Time
1 24 0 0 0 24
2 3 0 24 24 27
3 3 0 27 27 30

Dr. Rabindra Kumar Singh BCSE303L 32


Process Burst Arrival Start Wait Finish TA RT
Time
1 24 0 0 0 24 24 0
2 3 0 24 24 27 27 24
3 3 0 27 27 30 30 27

Dr. Rabindra Kumar Singh BCSE303L 33


Process Burst Time Arrival

1 12 0
2 6 1
3 9 4

Turnaround Time –
Average Turnaround time = (12+17+23)/3
=17.33ms
Response Time –
Average Response Time = (0+11+14)/3 = 8.33ms

Dr. Rabindra Kumar Singh BCSE303L 34


Process Burst Arrival Start Wait Finish TA RT
Time
1 12 0 0 0 12 12 0
2 6 1 12 11 18 17 11
3 9 4 18 14 27 23 14

Average Waiting Time = (0+11+14)/3 = 8.33ms


Average Turnaround Time =(12+17+23)/3 =17.33ms
Average Response = (0+11+14)/3 = 8.33ms

Dr. Rabindra Kumar Singh BCSE303L 35


Process Burst Time Arrival

1 10 0
2 29 0
3 3 0
4 7 0
5 12 0

Dr. Rabindra Kumar Singh BCSE303L 36


Process Burst Arrival Start Wait Finish TA RT
Time
1 10 0 0 0 10 10 0
2 29 0 10 10 39 39 10
3 3 0 39 39 42 42 39
4 7 0 42 42 49 49 42
5 12 0 49 49 61 61 49

Dr. Rabindra Kumar Singh BCSE303L 37


FCFS Scheduling (Contd...)
Suppose that the processes arrive in the order
P2 , P3 , P1
 The Gantt chart for the schedule is:
P2 P3 P1

0 3 6 30

 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

Dr. Rabindra Kumar Singh BCSE303L 38


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
 Two schemes:
 Non-preemptive – once CPU given to the process it cannot
be preempted until completes its CPU burst
 preemptive – if a new process arrives with CPU burst
length less than remaining time of current executing
process, preempt. This scheme is know as the
Shortest-Remaining-Time-First (SRTF)
 SJF is optimal – gives minimum average waiting time
for a given set of processes

Dr. Rabindra Kumar Singh BCSE303L 39


Example of Non-Preemptive SJF
Process Arrival Time Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
• SJF (non-preemptive)

P1 P3 P2 P4

0 3 7 8 12 16

• Average waiting time = (0 + 6 + 3 + 7)/4 = 4

Dr. Rabindra Kumar Singh BCSE303L 40


Example of Preemptive SJF
Process Arrival Time Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
• SJF (preemptive)
P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

• Average waiting time = (9 + 1 + 0 +2)/4 = 3

Dr. Rabindra Kumar Singh BCSE303L 41


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
1. t n = actual length of nth CPU burst
2. τ n+ 1= predicted value for the next CPU burst
3. α , 0≤ α ≤ 1
4. Define: τ = α t + 1− α τ
( . )
n+ 1 n n
• The parameter α controls the relative weight of recent and past history in our
prediction. Tn stores the past history.

Dr. Rabindra Kumar Singh BCSE303L 42


Prediction of the Length of the Next CPU Burst

Dr. Rabindra Kumar Singh BCSE303L 43


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

Dr. Rabindra Kumar Singh BCSE303L 44


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)
– Preemptive
– nonpreemptive
• 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

Dr. Rabindra Kumar Singh BCSE303L 45


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.
 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
q large  FIFO
q small  q must be large with respect to context
switch, otherwise overhead is too high

Dr. Rabindra Kumar Singh BCSE303L 46


Example of RR with Time Quantum = 20

Process Burst Time


P1 53
P2 17
P3 68
P4 24
 The Gantt chart is:

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

 Typically, higher average turnaround than SJF, but


better response

Dr. Rabindra Kumar Singh BCSE303L 47


Time Quantum and Context Switch Time

Dr. Rabindra Kumar Singh BCSE303L 48


Turnaround Time Varies With The Time Quantum

Dr. Rabindra Kumar Singh BCSE303L 49


Multilevel Queue
 Ready queue is partitioned into separate queues:
foreground (interactive)
background (batch)
 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

Dr. Rabindra Kumar Singh BCSE303L 50


Multilevel Queue Scheduling

Dr. Rabindra Kumar Singh BCSE303L 51


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

Dr. Rabindra Kumar Singh BCSE303L 52


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.

Dr. Rabindra Kumar Singh BCSE303L 53


Multilevel Feedback Queues

Dr. Rabindra Kumar Singh BCSE303L 54


Multiple-Processor Scheduling
 CPU scheduling more complex when
multiple CPUs are available
 Homogeneous processors within a
multiprocessor
 Load sharing
 Asymmetric multiprocessing – only one
processor accesses the system data
structures, alleviating the need for data
sharing

Dr. Rabindra Kumar Singh BCSE303L 55


Real-Time Scheduling
 Hard real-time systems – required to
complete a critical task within a guaranteed
amount of time
 Soft real-time computing – requires that
critical processes receive priority over less
fortunate ones

Dr. Rabindra Kumar Singh BCSE303L 56


Thread Scheduling
 Local Scheduling – How the threads library
decides which thread to put onto an
available LWP

 Global Scheduling – How the kernel


decides which kernel thread to run next

Dr. Rabindra Kumar Singh BCSE303L 57


Pthread Scheduling API
#include <pthread.h>
#include <stdio.h>
#define NUM THREADS 5
int main(int argc, char *argv[])
{
int i;
pthread t tid[NUM THREADS];
pthread attr t attr;
/* get the default attributes */
pthread attr init(&attr);
/* set the scheduling algorithm to PROCESS or SYSTEM */
pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM);
/* set the scheduling policy - FIFO, RT, or OTHER */
pthread attr setschedpolicy(&attr, SCHED OTHER);
/* create the threads */
for (i = 0; i < NUM THREADS; i++)
pthread create(&tid[i],&attr,runner,NULL);

Dr. Rabindra Kumar Singh BCSE303L 58


Pthread Scheduling API
/* now join on each thread */
for (i = 0; i < NUM THREADS; i++)
pthread join(tid[i], NULL);
}
/* Each thread will begin control in this function */
void *runner(void *param)
{
printf("I am a thread\n");
pthread exit(0);
}

Dr. Rabindra Kumar Singh BCSE303L 59


Operating System Examples

• Solaris scheduling
• Windows XP scheduling
• Linux scheduling

Dr. Rabindra Kumar Singh BCSE303L 60


Solaris 2 Scheduling

Dr. Rabindra Kumar Singh BCSE303L 61


Solaris Dispatch Table

Dr. Rabindra Kumar Singh BCSE303L 62


Windows XP Priorities

Dr. Rabindra Kumar Singh BCSE303L 63


Linux Scheduling
 Two algorithms: time-sharing and real-time
 Time-sharing
 Prioritized credit-based – process with most credits
is scheduled next
 Credit subtracted when timer interrupt occurs
 When credit = 0, another process chosen
 When all processes have credit = 0, recrediting
occurs
 Based on factors including priority and history
 Real-time
 Soft real-time
 Posix.1b compliant – two classes
 FCFS and RR
 Highest priority process always runs first

Dr. Rabindra Kumar Singh BCSE303L 64


The Relationship Between Priorities and Time-slice length

Dr. Rabindra Kumar Singh BCSE303L 65


List of Tasks Indexed According to Prorities

Dr. Rabindra Kumar Singh BCSE303L 66


Algorithm Evaluation
 Deterministic modeling – takes a particular
predetermined workload and defines the
performance of each algorithm for that
workload
 Queueing models
 Implementation

Dr. Rabindra Kumar Singh BCSE303L 67


5.15

Dr. Rabindra Kumar Singh BCSE303L 68


5.08

Dr. Rabindra Kumar Singh BCSE303L 69


In-5.7

Dr. Rabindra Kumar Singh BCSE303L 70


In-5.8

Dr. Rabindra Kumar Singh BCSE303L 71


In-5.9

Dr. Rabindra Kumar Singh BCSE303L 72


Dispatch Latency

Dr. Rabindra Kumar Singh BCSE303L 73


Java Thread Scheduling

• JVM Uses a Preemptive, Priority-Based


Scheduling Algorithm

• FIFO Queue is Used if There Are Multiple


Threads With the Same Priority

Dr. Rabindra Kumar Singh BCSE303L 74


Java Thread Scheduling (cont)

JVM Schedules a Thread to Run When:

1. The Currently Running Thread Exits the Runnable


State
2. A Higher Priority Thread Enters the Runnable
State

* Note – the JVM Does Not Specify Whether


Threads are Time-Sliced or Not

Dr. Rabindra Kumar Singh BCSE303L 75


Time-Slicing
Since the JVM Doesn’t Ensure Time-Slicing, the yield()
Method
May Be Used:

while (true) {
// perform CPU-intensive task
...
Thread.yield();
}

This Yields Control to Another Thread of Equal Priority

Dr. Rabindra Kumar Singh BCSE303L 76


Thread Priorities

Priority Comment
Thread.MIN_PRIORITY Minimum Thread Priority
Thread.MAX_PRIORITY Maximum Thread Priority
Thread.NORM_PRIORITY Default Thread
Priority

Priorities May Be Set Using setPriority() method:


setPriority(Thread.NORM_PRIORITY + 2);

Dr. Rabindra Kumar Singh BCSE303L 77


References

Silberschatz, Gagne, Galvin: Operating System Concepts, 6th Edition

Dr. Rabindra Kumar Singh BCSE303L 78


Dr. Rabindra Kumar Singh BCSE303L 79

You might also like