Title: Scheduling
1Scheduling
2Alternating Sequence of CPU And I/O Bursts
3Simple Categories of Processes
- CPU-bound process is one that has more and larger
CPU bursts (spends most of its time computing). - An I/O-bound process spends most of its time
waiting for I/O.
4Histogram of CPU-burst Times
5Computing Environments
- Batch
- E.g., supercomputing centers, mainframes/workstati
ons for business computing.
6Job Owner Job Name Queue State Nds Time Used Time Max Time
427130 kensong A3i dque ON HOLD 24 0 240000
427226 kensong A3i dque ON HOLD 24 0 240000
460157 jmehring SCEC_CyberShake_PAS_2 dque Queued 144 0 240000
460233 stolbov cocuphGgga long RUNNING 8 024253 3 960000
460234 stolbov cocuphGgga long ON HOLD 8 0 960000
462375 stolbov cocuphMgga long ON HOLD 8 0 960000
462376 stolbov cocuphMgga long ON HOLD 8 0 960000
464535 zhaol SCEC_LAB_TOMO dque RUNNING 256 020507 9 240000
470342 yujiewu q192a_1 dque RUNNING 64 024306 11 240000
7- Interactive Systems (e.g., Gandalf).
- Real-Time systems.
8CPU Scheduler
- Selects from among the processes in memory (on
ready queue), 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 nonpreemptive.
- All other scheduling is preemptive.
9Dispatcher
- 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.
10Possible Scheduling Goals
- 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
11Possible Scheduling Goals (continued)
- Waiting time amount of time a process has been
waiting in the ready queue - Response time amount of time it takes from
issuing a command and getting response
(interactive systems, PCs).
12Optimization Criteria
- Max CPU utilization
- Max throughput
- Min turnaround time
- Min waiting time
- Min response time
13Optimization Criteria Conflicting
- Maximize throughput
- Execute all shortest jobs first.
- Minimize turnaround time
- Turnaround time is increased significantly if
long jobs are never executed.
14Goals of Scheduling Algorithms
- All systems
- Fairness
- Balance (keep all parts of the system busy).
- Batch Systems
- Maximize throughput.
- Minimize turnaround time
- CPU utilization.
- Interactive systems
- Response time.
15- Real-time systems
- Meeting deadlines
16First-Come, First-Served (FCFS) Scheduling
- Allocate CPU to processes based on arrival order.
- Non-preemptive. Process executes until completes
or blocks on I/O or other system resource. - Not a good idea for a timesharing system!
17First-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
18- The Gantt Chart for the schedule is
- Waiting time for P1 0 P2 24 P3 27
- Average waiting time (0 24 27)/3 17
19FCFS Scheduling (Cont.)
- Suppose that the processes arrive in the order
- P2 , P3 , P1 .
- The Gantt chart for the schedule is
- Waiting time for P1 6 P2 0 P3 3
- Average waiting time (6 0 3)/3 3
- Much better than previous case.
20- One problem with FCFS is that average waiting
time can be quite large. - Another problem is the Convoy effect.
- Consider
- 4 processes
- 1 CPU-bound with CPU burst of 20 units followed
by an I/O request requiring 10 units. - 3 I/O bound processes with 1 unit of CPU burst
followed by 10 units of I/O.
210 19 20 21 22
P0 P1 P2 P3
220 19 20 21 22
P0 P1 P2 P3
I/O 1 I/O 2 I/O 3
I/O 4
P0 7 P1 8 P2 9 P3 10
23 I/O Devices Idle CPU Idle
0 19 20 21 22 29
P0 P1 P2 P3
P0
I/O 1 I/O 2 I/O 3
I/O 4
P1 1 P2 2 P3 3
24 I/O Devices Idle CPU Idle
I/O Devices Idle
0 19 20 21 22
29 32 49
P0 P1 P2 P3
P0
I/O 1 I/O 2 I/O 3
I/O 4
25FCFS Scheduling (Cont.)
- Convoy effect short I/O bound processes behind
long CPU-bound process. - CPU-bound process executes, I/O processes wait in
Ready Queue. - CPU-bound process completes execution burst and
waits on I/O device. - IO-Bound processes quickly complete CPU burst and
block on I/O device. - CPU is idle until I/O completed for CPU-bound
process. - CPU-bound process resumes, I/O-bound processes
complete I/O request and move to RQ. - I/O devices idle while CPU-bound process
monopolizes CPU.
26Shortest-Job-First (SJR) 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
- nonpreemptive once CPU given to the process it
cannot be preempted until completes its CPU burst.
27Shortest-Job-First (SJR) Scheduling
- 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.
28Example 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
29Example of Non-Preemptive SJF
-
- Average waiting time (0 6 3 7)/4 4
30Preemptive Shortest Job First
- If a job arrives at the queue with a burst time
less than that of the running process, the
running process is preempted. - Decision only made when a new process enters the
queue.
31Preemptive SJF
-
- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
32-
- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
33- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
-
- P2 Remainder 4.
- P1 Remainder 5.
- Result P1 preempted at time 2.
34- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P1 5
- P2 2 P2 Preempted. P3 completes at time 5.
- P3 1
-
-
35- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
- P4 5.0 4
- P1 5
- P2 2
- P4 4
36P2 Completes at time 7. P1 Remaining time of
5. P4 Remaining time of 4.
37- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
P1 Waits from time 2 to time 11 9 P2 Waits
from time 4 to time 5 1 P3 No waiting
0 P4 Waits from time 5 to time 7
2 Average wait 12/4 3.
38Determining Length of Next CPU Burst
- Can only estimate the length.
- Estimate made based on some sort of statistic of
historical behavior. - Assume BL2 BL1 (Next same as last).
- Take mean of last n burst lengths.
- Exponential average of previous bursts.
39Homework 2
- Please answer the following question from Chapter
5. - 5.2, 5.4, 5.5, 5.6, 5.7, 5.8, 5.10, and 5.13. For
problem 5.8, it should read as follows. - ... Implementing a multi-level feedback queue
........
40Scheduling in Batch Systems
41Memory Scheduler
- Decisions based on for example
- Time since swapped out.
- Amount of CPU time allocated so far.
- How large.
- How important.
42Admission Scheduler
- Based on degree of multiprogramming
- Process mix.
43Priority 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.
44Priority Scheduling
- Solution ? Aging as time progresses increase
the priority of the process. - Unix has mechanism for user to lower their
priority through the nice system call.
45Scheduling for Interactive Systems 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.
46Scheduling for Interactive Systems Round Robin
(RR)
- Performance
- q large ? FIFO
- q small ? High overhead Must be large with
respect to context switch, otherwise overhead is
too high.
47Scheduling in Interactive Systems
- Round Robin Scheduling
- a) list of runnable processes
- b) list of runnable processes after B uses up its
quantum
48- How long should the quantum be?
- quantum too short
- Assume switch time 5ms and quantum 20ms
- Wasted time 5/(520) 20
- quantum too long
- e.g., switch time 5ms, quantum 200ms
- Wasted time 5/(5200) approx. 2
- but if have 100 processes, response time for
200th is pretty bad. This is the quantum Linux
uses.
49Time Quantum and Context Switch Time
50Multilevel Queue Scheduling
51Multilevel Queue
- Ready queue is partitioned into separate queues
(e.g.,) - foreground (interactive)
- background (batch)
- Each queue has its own scheduling algorithm,
foreground RRbackground FCFS - Processes do not change queues
52Multilevel Queue
- Scheduling must also 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
53Multilevel Feedback Queue
- A process can move between the various queues
aging can be implemented this way. - Higher priority queues can preempt lower priority
queues. - Multilevel-feedback-queue scheduler defined by
the following parameters - number of queues
- scheduling algorithms for each queue
54Multilevel Feedback 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
55Example of Multilevel Feedback Queue
- Three queues
- Q0 time quantum 8 milliseconds
- Q1 time quantum 16 milliseconds
- Q2 FCFS
56Example of Multilevel Feedback Queue
- Scheduling
- A new job enters queue Q0 which is served RR.
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 RR and receives 16
additional milliseconds. If it still does not
complete, it is preempted and moved to queue Q2.
57Multilevel Feedback Queues