Professional Documents
Culture Documents
Objectives
Fast process response time Good throughput Avoidance of process starvation Different process priorities according to various needs Etc
Process Classification
Traditional process classification:
I/O Bound CPU Bound
Alternative classification:
Interactive Batch Real time
10
Example
Process 1 CPU Bound:
CPU CPU CPU CPU
0 1 2 3 4
I/O
2 3
CPU
4 5
( 20 nice ) / 4 + 1
11
Example
priority
mode
12
Example
priority
mode
13
Example
nice Process 1 Process 2 4 0 counter 5 6 priority 21 26 mode ready ready
14
Example
nice Process 1 Process 2 4 0 counter 5 6 priority 21 26 mode ready ready
schedule process 2
15
Example
nice Process 1 Process 2 4 0 counter 5 5 priority 21 25 mode ready waiting
schedule process 1
2 1
16
Example
nice Process 1 Process 2 4 0 counter 4 5 priority 20 25 mode ready waiting
schedule process 1
2 1 1
17
Example
nice Process 1 Process 2 4 0 counter 3 5 priority 19 25 mode ready ready
schedule process 2
2 1 1 2
18
Example
nice Process 1 Process 2 4 0 counter 3 4 priority 19 24 mode ready ready
schedule process 2
2 1 1 2 2
19
Example
nice Process 1 Process 2 4 0 counter 3 3 priority 19 23 mode ready waiting
schedule process 1
2 1 1 22 1
20
Example
nice Process 1 Process 2 4 0 counter 2 3 priority 18 23 mode ready waiting
schedule process 1
2 1 1 22 1 1
21
Example
nice Process 1 Process 2 4 0 counter 1 3 priority 17 23 mode ready ready
schedule process 2
2 1 1 22 1 1 2
22
Example
nice Process 1 Process 2 4 0 counter 1 2 priority 17 22 mode ready ready
schedule process 2
2 1 1 22 1 1 2 2
23
Example
nice Process 1 Process 2 4 0 counter 1 1 priority 17 21 mode ready waiting
schedule process 1
2 1 1 22 1 1 2 2 1
24
Example
nice Process 1 Process 2 4 0 counter 0 1 priority 0* 21 mode ready waiting
2 1 1 22 1 1 2 2 1
25
Example
nice Process 1 Process 2 4 0 counter 0 1 priority 0 21 mode ready waiting
All runnable processes have exhausted their quantum The epoch ends
2 1 1 22 1 1 2 2 1
26
Example
New epoch begins restarts the quantum of all processes:
counter / 2 + ( 20 nice ) / 4 + 1*
Note:
Each time I/O bound process was ready, it was scheduled Favors I/O bound process longer quantum in next epoch * Base time quantum is assigned if the process has exhausted its quantum in the previous epoch
27
Performance Pitfalls
Does not scale well: (i.e. large no. of processes)
Inefficient to recompute all dynamic priorities at once
(but it is not frequent once in each epoch)
28
Performance Pitfalls
I/O bound process boosting strategy is not optimal
Interactive processes are not different from (non interactive) I/O bound processes.
29
getpriority() / setpriority()
Same as nice() Act on a base priorities of all processes in a given group.
30