Presentation is loading. Please wait.

Presentation is loading. Please wait.

What we will cover…  CPU Scheduling  Basic Concepts  Scheduling Criteria  Scheduling Algorithms  Evaluations 1-1 Lecture 4.

Similar presentations


Presentation on theme: "What we will cover…  CPU Scheduling  Basic Concepts  Scheduling Criteria  Scheduling Algorithms  Evaluations 1-1 Lecture 4."— Presentation transcript:

1 What we will cover…  CPU Scheduling  Basic Concepts  Scheduling Criteria  Scheduling Algorithms  Evaluations 1-1 Lecture 4

2 CPU Scheduling  Why do we need CPU scheduling?  CPU scheduling - basis for multiprogrammed operating systems  Need some process running at all times maximizing CPU utilization  Multiple processes ready to run…  CPU can run only one process at a time  Which process to select?

3 Basic Concepts  Process execution consists of a cycle of CPU execution and I/O wait  CPU–I/O Burst Cycle  Alternating Sequence of CPU And I/O Bursts

4 Basic Concepts (contd.)  CPU burst distribution  Duration of these bursts studied with great care  Over many processes  CPU burst follows exponential or hyper-exponential curve  Shown in next slide

5 Histogram of CPU-burst Times  Many short CPU bursts + few long CPU bursts  I/O bound process – more short CPU bursts  CPU bound process – more long CPU bursts

6 CPU Scheduler  Selects from among the processes in memory that are ready to execute, 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

7 CPU Scheduler (contd.)  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

8 Scheduling Criteria  CPU-scheduling algorithms have different properties and may favor one class of processes over another  How to compare and choose? 1. CPU utilization – keep the CPU as busy as possible (realistically, 40% - 90% desired) – User’s perspective 2. Throughput – # of processes that complete their execution per time unit – batch programmer’s perspective 3. Turnaround time – amount of time to execute a particular process – A particular process perspective 1.(waiting in ready queue + executing + doing I/O etc.) 4. Waiting time – amount of time a process has been waiting in the ready queue (sum of periods waiting in ready queue) 5. Response time – amount of time it takes from when a request was submitted until the first response is produced, not output (for interactive / time-sharing environment)

9 Scheduling Algorithm Optimization Criteria  Max CPU utilization  Max throughput  Min turnaround time  Min waiting time  Min response time

10 Scheduling Algorithms  CPU scheduling deals with the problem of deciding which process to select from the ready Q  Let’s study some of the most famous scheduling algo.  For purpose of example, let’s evaluate the algo. with respect to average waiting time

11 First-Come, First-Served (FCFS) Scheduling ProcessBurst Time P 1 24 P 2 3 P 3 3  Suppose that the processes arrive in the order: P 1, P 2, P 3 The Gantt Chart for the schedule is:  Waiting time for P 1 = 0; P 2 = 24; P 3 = 27  Average waiting time: (0 + 24 + 27)/3 = 17 P1P1 P2P2 P3P3 2427300  Simplest CPU-scheduling algo.  Processes are served in the order they appear  Implemented with FIFO Queue

12 FCFS Scheduling (Contd.) Suppose that the processes arrive in the order P 2, P 3, P 1  The Gantt chart for the schedule is:  Waiting time for P 1 = 6; P 2 = 0 ; P 3 = 3  Average waiting time: (6 + 0 + 3)/3 = 3  Much better than previous case  FCFS scheduling algo is nonpreemptive  Disadv.  Convoy effect - short process behind long process P1P1 P3P3 P2P2 63300

13 Shortest-Job-First (SJF)  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 – gives minimum average waiting time for a given set of processes

14 Example of SJF ProcessBurst Time P16 P16 P 2 8 P37 P37 P43 P43  SJF scheduling chart  Average waiting time = (3 + 16 + 9 + 0) / 4 = 7 P4P4 P3P3 P1P1 3 16 0 9 P2P2 24

15 Determining Length of Next CPU Burst  The difficulty of SJF is knowing the length of the next CPU request  Can only estimate the length  done by using the length of previous CPU bursts, using exponential averaging Controls relative weight of recent and past history

16 Examples of Exponential Averaging   =0   n+1 =  n  Recent history does not count   =1   n+1 = t n  Only the actual last CPU burst counts  If we expand the formula, we get:  n+1 =  t n +(1 -  )  t n -1 + … +(1 -  ) j  t n -j + … +(1 -  ) n +1  0  Since both  and (1 -  ) are less than or equal to 1, each successive term has less weight than its predecessor More commonly,  assumed as 0.5

17 Shortest-remaining-time-first  SJF may be either nonpreemptive or preemptive  Preemptive  => Shortest-remaining-time-first  What happens when a new process arrives at the ready queue while a previous process is executing?

18 Let’s solve this example in-class! ProcessArrival TimeBurst Time P 1 08 P 2 14 P 3 29 P 4 35  Show the scheduling chart and average waiting time for this example.

19 Priority 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  Priority  Internally set Many factors, e.g., memory requirements, no. of open files, ratio of average I/O burst and CPU burst etc.  Externally set Importance of the process, often political factors  SJF is a priority scheduling where priority is the predicted next CPU burst time

20 Priority Scheduling  Problem  Starvation  low priority processes may never execute  Solution  Aging  as time progresses increase the priority of the process

21 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  FIFO  q small  q must be large with respect to context switch, otherwise overhead is too high

22 Example of RR with Time Quantum = 4 ProcessBurst Time P 1 24 P 2 3 P33 P33  The Gantt chart is:  Average waiting time  ((10-4) + 4 + 7)/3 = 17/3 = 5.66 P1P1 P2P2 P3P3 P1P1 P1P1 P1P1 P1P1 P1P1 0 47 101418222630

23 Example of RR with Time Quantum = 1 ProcessBurst Time P 1 24 P 2 3 P33 P33  The Gantt chart is:  Average waiting time  (((3-1)+(6-4)+(9-7))+(1+(4-2)+(7-5))+(2+(5- 3)+(8-6)))/3 = 17/3 P1P1 P2P2 P3P3 P1P1 P2P2 P3P3 P1P1 P2P2 0 12 345678 P3P3 P1P1 9 What is the difference? Low response time Good for interactive process

24 Time Quantum and Context Switch Time

25 Multilevel Queue  Ready queue is partitioned into separate queues:  foreground (interactive)  background (batch)  Each queue has its own scheduling algorithm  foreground – RR  background – FCFS  Scheduling must 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

26 Multilevel Queue Scheduling

27 Multilevel Feedback Queue  A process can move between the various queues; aging can be implemented this way  Multilevel-feedback-queue scheduler defined by the following parameters:  number of queues  scheduling algorithms for each 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

28 Example of Multilevel Feedback Queue  Three queues:  Q 0 – RR with time quantum 8 milliseconds  Q 1 – RR time quantum 16 milliseconds  Q 2 – FCFS  Scheduling  A new job enters queue Q 0 which is served FCFS. When it gains CPU, job receives 8 milliseconds. If it does not finish in 8 milliseconds, job is moved to queue Q 1.  At Q 1 job is again served FCFS and receives 16 additional milliseconds. If it still does not complete, it is preempted and moved to queue Q 2.

29 Multilevel Feedback Queues


Download ppt "What we will cover…  CPU Scheduling  Basic Concepts  Scheduling Criteria  Scheduling Algorithms  Evaluations 1-1 Lecture 4."

Similar presentations


Ads by Google