Category: Education

Presentation Description

No description available.


Presentation Transcript

CPU Scheduling : 

Fred Kuhns () CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Scheduling in BSD UNIX

Basic Concepts : 

Fred Kuhns () Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU–I/O Burst Cycle – Process execution consists of a cycle of CPU execution and I/O wait. CPU burst distribution

Alternating CPU And I/O Bursts : 

Fred Kuhns () Alternating CPU And I/O Bursts

Histogram of CPU-burst Times : 

Fred Kuhns () Histogram of CPU-burst Times

CPU Scheduler : 

Fred Kuhns () CPU Scheduler Selects from the Ready processes in memory CPU scheduling decisions occur when 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.

Dispatcher : 

Fred Kuhns () Dispatcher 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.

Scheduling Criteria : 

Fred Kuhns () Scheduling Criteria CPU utilization – Percent time CPU busy Throughput – # of processes that complete their execution per time unit Turnaround time –time to execute a process: from start to completion. Waiting time –time in 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)

Optimization Criteria : 

Fred Kuhns () Optimization Criteria Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time

First-Come, First-Served (FCFS) : 

Fred Kuhns () First-Come, First-Served (FCFS) Example: Process Burst Time P1 24 P2 3 P3 3 Assume processes arrive as: P1 , P2 , P3 The Gantt Chart for the schedule is: Waiting time for P1 = 0; P2 = 24; P3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17

FCFS Scheduling (Cont.) : 

Fred Kuhns () FCFS Scheduling (Cont.) Suppose processes arrive as: 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. Convoy effect or head-of-line blocking short process behind long process

Shortest-Job-First (SJR) Scheduling : 

Fred Kuhns () Shortest-Job-First (SJR) Scheduling Process declares its CPU burst length Two schemes: non-preemptive – once CPU assigned, process not preempted until its CPU burst completes. Preemptive – if a new process with CPU burst less than remaining time of current, preempt. Shortest-Remaining-Time-First (SRTF). SJF is optimal – gives minimum average waiting time for a given set of processes.

Example of Non-Preemptive SJF : 

Fred Kuhns () Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (non-preemptive) Average waiting time = (0 + 6 + 3 + 7)/4 - 4 Example of Non-Preemptive SJF

Example of Preemptive SJF : 

Fred Kuhns () Example of Preemptive SJF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (preemptive) Average waiting time = (9 + 1 + 0 +2)/4 - 3

Determining Next CPU Burst : 

Fred Kuhns () Determining Next CPU Burst Can only estimate the length. Can be done by using the length of previous CPU bursts, using exponential averaging.

Examples of Exponential Averaging : 

Fred Kuhns () Examples of Exponential Averaging  =0 n+1 = n Recent history does not count.  =1 n+1 = tn Only the actual last CPU burst counts. If we expand the formula, we get: n+1 =  tn+(1 - )  tn -1 + … +(1 -  ) j  tn -1 + … +(1 -  ) n=1 tn 0  and (1 - ) are <= 1, so each successive term has less weight than its predecessor.

Priority Scheduling : 

Fred Kuhns () Priority Scheduling Priority associated with each process CPU allocated to process with highest priority Preemptive or non-preemptive Example - SJF: priority scheduling where priority is predicted next CPU burst time. Problem: Starvation low priority processes may never execute. Solution: Aging as time progresses increase the priority of the process.

Round Robin (RR) : 

Fred Kuhns () Round Robin (RR) Each process assigned a time quantum, usually 10-100 milliseconds. After this process moved to end of the Ready Q n processes in ready queue, time quantum = 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  FIFO q small  q must be large with respect to context switch, otherwise overhead too high.

Example: RR, Quantum = 20 : 

Fred Kuhns () Example: RR, Quantum = 20 Process Burst Time P1 53 P2 17 P3 68 P4 24 The Gantt chart is: Typically, higher average turnaround than SJF, but better response.

Small Quantum : 

Fred Kuhns () Small Quantum Increased Context Switches

Turnaround Time Versus Quantum : 

Fred Kuhns () Turnaround Time Versus Quantum

Multilevel Queue : 

Fred Kuhns () Multilevel Queue Ready queue partitioned into separate queues: foreground (interactive) and background (batch) Each queue has its own scheduling algorithm, foreground – RR, background – FCFS Scheduling between queues. Fixed priority scheduling; Possible starvation. Time slice: i.e., 80% to foreground in RR, 20% to background in FCFS

Multilevel Queue Scheduling : 

Fred Kuhns () Multilevel Queue Scheduling

Multilevel Feedback Queue : 

Fred Kuhns () Multilevel Feedback Queue A process can move between the various queues; aging can be implemented this way. Multilevel-feedback-queue scheduler defined by: number of queues scheduling algorithms for each queue method used to select when upgrade process method used to select when demote process method used to determine which queue a process will enter when that process needs service

Multilevel Feedback Queues : 

Fred Kuhns () Multilevel Feedback Queues

Example: Multilevel Feedback Queue : 

Fred Kuhns () Example: Multilevel Feedback Queue Three queues: Q0 – time quantum 8 milliseconds Q1 – time quantum 16 milliseconds Q2 – FCFS Scheduling A new job enters queue Q0 served by FCFS. Then job receives 8 milliseconds. If not finished in 8 milliseconds, moved to Q1. At Q1 job served by FCFS. Then receives 16 milliseconds. If not complete, preempted and moved to Q2.

authorStream Live Help