180 likes | 310 Views
Operating Systems Lecture 16 Scheduling II. Recall Scheduling Criteria. CPU utilization –fraction of time the CPU is busy. CPU efficiency – fraction of time the CPU is executing user code. Throughput – # of processes completed per unit time
E N D
Operating SystemsLecture 16 Scheduling II Operating System Concepts
Recall Scheduling Criteria • CPU utilization –fraction of time the CPU is busy. • CPU efficiency – fraction of time the CPU is executing user code. • Throughput – # of processes completed per unit time • Average Turnaround time – average delay between job submission and job completion. • Normalized turnaround time – Ratio of turnaround time to service time per process. Indicates the relative delay experienced by a 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. Operating System Concepts
Example: Computing Criteria Suppose two processes arrive at time zero. ti = service time for process i to complete. P1: t1 = 7 P2: t2 = 11 Assume 1 unit of time for dispatch of process. Assume non-preemptive scheduling. Draw the Gantt diagram for these processes. Operating System Concepts
Example: Computing Criteria (continued) Suppose two processes arrive at time zero. P1: t1 = 7 P2: t2 = 11 Assume 1 unit of time for dispatch of process. Assume non-preemptive scheduling. b) Compute the following: Avg. service time: Throughput: CPU utilization: CPU efficiency: Avg. Turnaround: Avg. Wait time: (Note: Avg wait time = avg. turnaround - avg service - avg dispatch) Normalized turnaround for P1 : Normalized turnaround for P2 : c) Suppose P2 arrives at time 4. What statistics change? What are their new values? Operating System Concepts
Assumptions in next examples • Assume dispatch time = 0 (unless otherwise noted) • CPU efficiency = CPU utilization • Assume each process has one and only one CPU burst (unless otherwise noted). • Variable definitions: • w = time spent in system (wait time, blocked time, execution time). • e = time spent in execution thus far. • s = total service time required, including e. Operating System Concepts
Example with FCFS scheduling FCFS (first come first served) selection function: max(w) Example: P1 : t1 = 60 (arrival at 0 - e) P2 : t2 = 10 (arrival at 0) P3 : t3 = 30 (arrival at 0 + e) P4 : t4 = 20 (arrival at 0 + 2*e) e = an extremely small unit of time. Draw the Gantt diagram. Operating System Concepts
Example with FCFS continued • Example: • P1 : t1 = 60 (arrival at 0 - e) • P2 : t2 = 10 (arrival at 0) • P3 : t3 = 30 (arrival at 0 + e) • P4 : t4 = 20 (arrival at 0 + 2*e) • e = an extremely small unit of time. b) Compute the following quantities: Avg. service time: Throughput: CPU utilization: CPU efficiency: Avg turnaround time: Avg wait time: Normalized turnaroundtime for each process: Operating System Concepts
Example with FCFS continued Suppose order changes to: P2 P3 P4 P1 Example: P1 : t1 = 60 (arrival at 0 + 2*e) P2 : t2 = 10 (arrival at 0- e) P3 : t3 = 30 (arrival at 0 ) P4 : t4 = 20 (arrival at 0 + e) e = an extremely small unit of time. Draw the Gantt diagram. b) What values change? What are the new values? Operating System Concepts
Notes on FCFS • FCFS is unfair to processes with short CPU bursts. (They may have long wait times compared to their service requirements). • Question: Is starvation possible with FCFS? • FCFS is generally used only with batch systems. (May be used as part of another system). Operating System Concepts
Example of Non-Preemptive SJF P1 P3 P2 P4 0 3 7 8 12 16 Process Arrival TimeBurst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • SJF (non-preemptive) Selection criterion: min(s) • Average waiting time = (0 + 3 + 6 + 7)/4 = 4 • Avg service time = • Throughput = • Avg turnaround = • Check consistency. Wait = (Turnaround - Service - Dispatch) Operating System Concepts
Notes on SJF • SJF is a priority algorithm • Priority is based on the predicted next CPU burst • Question: Is starvation possible with SJF? Operating System Concepts
Example of Preemptive SJF P1 P2 P3 P2 P4 P1 11 16 0 2 4 5 7 Process Arrival TimeBurst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • SJF (preemptive) Selection criterion: min(s - e) • Average waiting time = (9 + 1 + 0 + 2)/4 = 3 • What statistics are different from non-preemptive SJF? What are the values of these stats? Operating System Concepts
Determining Length of Next CPU Burst • Can be done by using the length of previous CPU bursts, using exponential averaging. If we expand the formula, we get: n+1 = tn+(1 - ) tn-1+ … +(1 - )j tn-j+ … +(1 - )n+1 0 Operating System Concepts
Priority Scheduling • A priority number (integer) is associated with each process. • The CPU is allocated to the process with the highest priority • Some systems have a high number represent high priority. • Other systems have a low number represent high priority. • Text uses a low number to represent high priority. • Priority scheduling may be preemptive or nonpreemptive. Operating System Concepts
Assigning Priorities • SJF is a priority scheduling where priority is the predicted next CPU burst time. • Other bases for assigning priority: • Memory requirements • Number of open files • Avg I/O burst / Avg CPU burst • External requirements (amount of money paid, political factors, etc). • Problem: Starvation -- low priority processes may never execute. • Solution: Aging -- as time progresses increase the priority of the process. Operating System Concepts
Round Robin Scheduling • Each process gets a small unit of CPU time (time quantum). • A time quantum is 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. Operating System Concepts
Example of RR, time quantum = 20 P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162 ProcessBurst Time P1 53 P2 17 P3 68 P4 24 • The Gantt chart is: • Compute: Avg service time, Throughput, avg turnaround, avg wait: • Typically, higher average turnaround than SJF, but better response. • Suppose P1 arrives at 0, P2 at 19, P3 at 23 and P4 at 25. What changes? What are the new values? Operating System Concepts
RR Performance • Performance varies with the size of the time slice, but not in a simple way. • Short time slice leads to faster interactive response. • Problem: Adds lots of context switches. High Overhead. • Longer time slice leads to better system throughput (lower overhead), but response time is worse. • If time slice is too long, RR becomes just like FCFS. • Time slice vs process switch time: • If time slice = 20 msec and process switch time = 5 msec, then 5/25 = 20% of CPU time spent on overhead. • If time slice = 500 msec, then only 1% of CPU used for overhead. • The time slice should be large compared to the process switch time. • A typical time slice is 1 sec (4.3 BSD UNIX) • RR makes the implicit assumption that all processes are equally important. • Cannot use RR is you want different processes to have different priorities. Operating System Concepts