Transcript lec4

Operating Systems
CMPSC 473
Processes (contd.)
September 01, 2010 - Lecture 4
Instructor: Bhuvan Urgaonkar
Process Switch
• Suspend the current process and resume a
previously suspended process
– Also called context switch or task switch
Process Switch
Process 0
Involuntary/Voluntary
Process 1
Context_switch() {
A1
A2
B1
B2
}
B3
B4
Process Switch
• What does the kernel need to save when suspending a
process?
– Hint: The entire address space is already saved (either in memory or
on swap space). What else would the process need when it has to be
resumed?
– CPU registers
• This is called the hardware context of the process
• Execution context, PC, pointers to elements within address
space, page table, etc.
Context_switch() {
push R0, R1, …
PCB[curr].SP = SP
PCB[curr].PT = PT
next = schedule()
// save regs on its stack
// save stack pointer
// save ptr(s) to address space
// find next process to run
PT = PCB[next].PT
SP = PCB[next].SP
pop Rn, … R0
return
}
// NOTE: Ctrl returns to another process
Overheads of Process Switch
• Direct
– The time spent switching context
• Indirect
– Cache pollution
– TLB flush
CPU Scheduling
Process Scheduling
Hmm .. Who should
I pick to run?
Running
OS (scheduler)
Ready
Lock
Waiting
Disk
When is the scheduler
invoked?
• 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 only under 1 and 4: nonpreemptive scheduling
– E.g., FCFS and SJF
• All other scheduling is preemptive
First-Come, First-Served Scheduling
(FCFS)
Process
Run 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
0
P2
24
• Waiting time for P1 = 0; P2 = 24; P3 = 27
• Average waiting time: (0 + 24 + 27)/3 = 17
P3
27
30
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order
P2 , P3 , P1
• The Gantt chart for the schedule is:
P2
0
•
•
•
•
P3
3
P1
6
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
30
Choosing the Right Scheduling
Algorithm/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)
• Fairness
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 for avg. waiting time – gives minimum
average waiting time for a given set of processes
– In class: Compute average waiting time for the previous example
with SJF
– Exercise: Prove the optimality claimed above
Why Pre-emption is
Necessary
• To improve CPU utilization
– Most processes are not ready at all times during their lifetimes
– E.g., think of a text editor waiting for input from the keyboard
– Also improves I/O utilization
• To improve responsiveness
– Many processes would prefer “slow but steady progress” over “long wait
followed by fast process”
• Most modern CPU schedulers are pre-emptive
SJF: Variations on the
• Non-preemptive: once CPU given to the process it cannot theme
be
preempted until completes its CPU burst - the SJF we already saw
• Preemptive: if a new process arrives with CPU length less
than remaining time of current executing process, preempt.
This scheme is know as Shortest-Remaining-Time-First (SRTF)
 Also called Shortest Remaining Processing Time (SRPT)
• Why SJF/SRTF may not be practical
 CPU requirement of a process rarely known in advance
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 => FCFS
– q small => q must be large with respect to context
switch, otherwise overhead is too high
Example of RR with Time
Quantum = 20
Process
P1
P2
P3
P4
CPU Time
53
17
68
24
• The Gantt chart is:
P1
0
P2
20
37
P3
P4
57
P1
77
P3
97 117
P4
P1
P3
P3
121 134 154 162
• Typically, higher average turnaround than SJF, but better response
Time Quantum and Context Switch
Time
Turnaround Time Varies With Time Quantum
Proportional-Share
A generalization of round robin
Schedulers
Process P given a CPU weight w > 0
•
•
i
i
• The scheduler needs to ensure the following
– forall i, j, |Ti(t1, t2)/Tj(t1,t2) - wi/wj| ≤ e
– Given Pi and Pj were backlogged during [t1,t2]
• Who chooses the weights and how?
• Application modeling problem: non-trivial
• Many PS schedulers developed in the 90s
– E.g., Start-time Fair Queueing (Qlinux UT-Austin/Umass-Amherst)
Lottery Scheduling
[Carl Waldspurger, MIT, ~1995]
•
•
Perhaps the simplest proportional-share scheduler
Create lottery tickets equal to the sum of the weights of all processes
– What if the weights are non-integral?
•
Draw a lottery ticket and schedule the process that owns that ticket
– What if the process is not ready?
• Draw tickets only for ready processes
– Exercise: Calculate the time/space complexity of the operations Lottery scheduling will
involve
Lottery Scheduling Example
P1=6
P2=9
1
4
7
10
13
2
5
8
11
14
3
6
9
12
15
9
Schedule P2
Lottery Scheduling Example
P1=6
P2=9
1
4
7
10
13
2
5
8
11
14
3
6
9
12
15
3
Schedule P1
Lottery Scheduling Example
P1=6
P2=9
1
4
7
10
13
2
5
8
11
14
3
6
9
12
15
11
•
•
•
As t
∞, processes will get their share (unless they were blocked a lot)
Problem with Lottery scheduling: Only probabilistic guarantee
What does the scheduler have to do
–
–
When a new process arrives?
When a process terminates?
Schedule P2