Uniprocessor scheduling - Rose

Day 25
Uniprocessor scheduling
Algorithm: Selection function




Selection function – which process among
ready processes to select.
w – time spent in system, waiting and
executing, so far
e – time spent in execution, so far
s- total service time required by the process

Service time – the time that the process actually
runs (includes e)
Algorithm: Decision Mode


Non-pre-emptive
 Once a process is in the running state, it will continue until it
terminates or blocks itself for I/O
 Selection function is used only when a process blocks or
terminates
Pre-emptive
 Currently running process may be forced to release the
processor and moved to the Ready state by the operating system
 Allows for better service since any one process cannot
monopolize the processor for very long
 More switching overhead
 Selection function is used when a process blocks or terminates
or when a new process enters the system or when a time slice
expires.
First-Come-First-Served
(FCFS/FIFO)


Each process joins the Ready queue
When the current process ceases to execute,
the oldest process in the Ready queue is
selected


non-pre-emptive
A short process may have to wait a very long
time before it can execute
FCFS
Arrival time
Service Time
P1
0
24
P2
1
3
P3
2
3
Calculate the turn-around time for each
process and the average turn-around time.
FCFS

Favors CPU-bound processes



I/O processes have to wait until CPU-bound
process completes
Inefficient use of processor and I/O devices.
Rarely used on its own.
Process Scheduling Example
First-Come-First-Served
(FCFS)
0
A
B
C
D
E
5
10
15
20
Shortest Process Next (SPN)





Select the shortest process in the ready
queue.
Non-pre-emptive.
Reduces the response time for shorter
processes.
Less predictable response time for longer
processes.
Must estimate the running time for each
process.
Process Scheduling Example
Shortest Process Next (SPN)
0
A
B
C
D
E
5
10
15
20
Shortest Remaining Time(SRT)





Pre-emptive version of SPN.
Check when a new process enters the
system and when the current process
voluntarily releases the processor.
Better response time as short jobs given
immediate preference.
Fewer process switches than RR.
Must keep track of elapsed time.
Process Scheduling Example
Shortest Remaining Time(SRT)
0
A
B
C
D
E
5
10
15
20
Round robin




Pre-empt a process using the clock interrupt.
A process is allowed to run for a time-slice or
quantum.
The next process in the Ready queue is
selected to run following the pre-emption
(FCFS).
Prevents large processes from monopolizing
the processor.
Round robin


Design issue: length of quantum
Short quantum



short processes will finish quickly.
lots of process switches
Choose such that typical processes can
complete without being interrupted.
Round robin


Unfair to I/O-bound processes as they will
typically not use a complete quantum, while
CPU-bound processes will.
Use Virtual Round Robin



Use an auxiliary queue to hold processes that
have I/O requests serviced.
Process in auxiliary queue gets preference over
those in the main ready queue.
Process from the auxiliary runs for time remaining
from last time-slice.
Process Scheduling Example
Round-Robin
0
A
B
C
D
E
5
10
15
20
Highest Response Ratio Next
(HRRN)
w s
Response ratio 
s
w – time spent waiting for the processor
s – expected service time
HRRN




Non-pre-emptive
Select the process that has the highest
response ratio.
Short process (small “s”) given preference.
Long process(large “s”) that has been waiting
a long time (large “w”) is given preference.


Accounts for age of process.
Must estimate “s”.
Process Scheduling Example
Highest Response Ratio
Next (HRRN)
0
A
B
C
D
E
5
10
15
20
Multi-level Feedback (quantum = i)


Pre-emptive (time quantum)
Maintain many ready queues of varying priority.





Each queue uses FCFS.
A process that is pre-empted is moved to a queue of
lower priority to wait.
Thus longer processes are penalized.
Don’t have to estimate running time.
Note: If there are no processes waiting, don’t preempt the process
Process Scheduling Example
Multi-level Feedback (quantum = i)
0
A
B
C
D
E
5
10
15
20
Multi-level Feedback
(quantum = 2i * quantum)


With quantum = i, long processes will have
very high turn-around time.
So, a process in queue RQi will be allowed to
run for 2i * quantum.
Multi-level Feedback
(quantum = 2i * quantum)
Fair-Share Scheduling



Treat multiple processes and threads of a
user as a collection.
The performance of the collection of threads
is optimized not just that of any one thread or
process.
Fair share scheduling ensures that users are
given a fair share of the processor time.
FSS


Divide user community into groups.
Each user process’ priority is based on the
process’ execution time and the execution
time of processes within the same group.