CPU Scheduling Questions answered in this lecture: What is scheduling vs. allocation? What is preemptive vs. non-preemptive scheduling? What are FCFS,

Slides:



Advertisements
Similar presentations
CPU Scheduling CPU Scheduler Performance metrics for CPU scheduling
Advertisements

Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials – 2 nd Edition Chapter 6a: CPU Scheduling.
 Basic Concepts  Scheduling Criteria  Scheduling Algorithms.
Chap 5 Process Scheduling. Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU–I/O Burst Cycle – Process execution consists of a.
Chapter 5 CPU Scheduling. CPU Scheduling Topics: Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling.
Operating Systems CPU Scheduling. Agenda for Today What is Scheduler and its types Short-term scheduler Dispatcher Reasons for invoking scheduler Optimization.
CPU Scheduling Algorithms
Chapter 3: CPU Scheduling
Operating Systems 1 K. Salah Module 2.1: CPU Scheduling Scheduling Types Scheduling Criteria Scheduling Algorithms Performance Evaluation.
CS 311 – Lecture 23 Outline Kernel – Process subsystem Process scheduling Scheduling algorithms User mode and kernel mode Lecture 231CS Operating.
02/06/2008CSCI 315 Operating Systems Design1 CPU Scheduling Algorithms Notice: The slides for this lecture have been largely based on those accompanying.
Scheduling in Batch Systems
02/04/2008CSCI 315 Operating Systems Design1 CPU Scheduling Algorithms Notice: The slides for this lecture have been largely based on those accompanying.
CS 104 Introduction to Computer Science and Graphics Problems Operating Systems (2) Process Management 10/03/2008 Yang Song (Prepared by Yang Song and.
Chapter 5-CPU Scheduling
Job scheduling Queue discipline.
A. Frank - P. Weisberg Operating Systems CPU Scheduling.
7/12/2015Page 1 Process Scheduling B.Ramamurthy. 7/12/2015Page 2 Introduction An important aspect of multiprogramming is scheduling. The resources that.
02/11/2004CSCI 315 Operating Systems Design1 CPU Scheduling Algorithms Notice: The slides for this lecture have been largely based on those accompanying.
1Chapter 05, Fall 2008 CPU Scheduling The CPU scheduler (sometimes called the dispatcher or short-term scheduler): Selects a process from the ready queue.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
CPU-Scheduling Whenever the CPU becomes idle, the operating system must select one of the processes in the ready queue to be executed. The short term scheduler.
CPU Scheduling Chapter 6 Chapter 6.
Chapter 6: CPU Scheduling
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-3 CPU Scheduling Department of Computer Science and Software Engineering.
CS212: OPERATING SYSTEM Lecture 3: Process Scheduling 1.
Chapter 6 CPU SCHEDULING.
1 Scheduling Processes. 2 Processes Each process has state, that includes its text and data, procedure call stack, etc. This state resides in memory.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Scheduling. Alternating Sequence of CPU And I/O Bursts.
CPU Scheduling CSCI 444/544 Operating Systems Fall 2008.
Silberschatz and Galvin  Operating System Concepts Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor.
1 Our focus  scheduling a single CPU among all the processes in the system  Key Criteria: Maximize CPU utilization Maximize throughput Minimize waiting.
Alternating Sequence of CPU And I/O Bursts. Histogram of CPU-burst Times.
CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Operating Systems Examples Algorithm.
Chapter 5 CPU Scheduling Bernard Chen Spring 2007.
Process A program in execution. But, What does it mean to be “in execution”?
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 15 Scheduling Read Ch.
Lecture 7: Scheduling preemptive/non-preemptive scheduler CPU bursts
Chapter 5: Process Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Basic Concepts Maximum CPU utilization can be obtained.
Operating Systems 1 K. Salah Module 2.2: CPU Scheduling Scheduling Types Scheduling Criteria Scheduling Algorithms Performance Evaluation.
1 11/29/2015 Chapter 6: CPU Scheduling l Basic Concepts l Scheduling Criteria l Scheduling Algorithms l Multiple-Processor Scheduling l Real-Time Scheduling.
Silberschatz and Galvin  Operating System Concepts Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 5 CPU Scheduling Slide 1 Chapter 5 CPU Scheduling.
Lecture Topics: 11/15 CPU scheduling: –Scheduling goals and algorithms.
1 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling.
Introduction to Operating System Created by : Zahid Javed CPU Scheduling Fifth Lecture.
Operating Systems Scheduling. Scheduling Short term scheduler (CPU Scheduler) –Whenever the CPU becomes idle, a process must be selected for execution.
1 Uniprocessor Scheduling Chapter 3. 2 Alternating Sequence of CPU And I/O Bursts.
Chapter 4 CPU Scheduling. 2 Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation.
Lecture 4 CPU scheduling. Basic Concepts Single Process  one process at a time Maximum CPU utilization obtained with multiprogramming CPU idle :waiting.
CPU Scheduling CS Introduction to Operating Systems.
CPU Scheduling G.Anuradha Reference : Galvin. CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time.
Process Scheduling. Scheduling Strategies Scheduling strategies can broadly fall into two categories  Co-operative scheduling is where the currently.
CPU scheduling.  Single Process  one process at a time  Maximum CPU utilization obtained with multiprogramming  CPU idle :waiting time is wasted 2.
1 Module 5: Scheduling CPU Scheduling Scheduling Algorithms Reading: Chapter
Basic Concepts Maximum CPU utilization obtained with multiprogramming
3. CPU Scheduling. CPU Scheduling Process execution – a cycle of CPU execution and I/O wait – figure Preemptive Non-Preemptive.
1 Lecture 5: CPU Scheduling Operating System Fall 2006.
Lecturer 5: Process Scheduling Process Scheduling  Criteria & Objectives Types of Scheduling  Long term  Medium term  Short term CPU Scheduling Algorithms.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 5: CPU Scheduling.
Scheduling.
1 Chapter 5: CPU Scheduling. 2 Basic Concepts Scheduling Criteria Scheduling Algorithms.
CPU Scheduling Andy Wang Operating Systems COP 4610 / CGS 5765.
Scheduling (Priority Based)
CPU Scheduling G.Anuradha
Chapter 6: CPU Scheduling
Chapter 5: CPU Scheduling
Scheduling Adapted from:
CPU SCHEDULING CPU SCHEDULING.
Presentation transcript:

CPU Scheduling Questions answered in this lecture: What is scheduling vs. allocation? What is preemptive vs. non-preemptive scheduling? What are FCFS, SJF, STCF, RR and priority-based scheduling policies? What are their advantages and disadvantages? UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 537 Introduction to Operating Systems Andrea C. Arpaci-Dusseau Remzi H. Arpaci-Dusseau

Types of Resources Resources can be classified into one of two groups Type of resource determines how the OS manages it 1) Non-preemptible resources Once given resource, cannot be reused until voluntarily relinquished Resource has complex or costly state associated with it Need many instances of this resource Example: Blocks on disk OS management: allocation –Decide which process gets which resource 2) Preemptible resources Can take resource away, give it back later Resource has little state associated with it May only have one of this resource Example: CPU OS management: scheduling –Decide order in which requests are serviced –Decide how long process keeps resource

Levels of CPU Management Dispatcher Low-level mechanism Performs context-switch –Save execution state of old process in PCB –Add PCB to appropriate queue (ready or blocked) –Load state of next process from PCB to registers –Switch from kernel to user mode –Jump to instruction in user process Scheduler Policy to determine which process gets CPU when Allocator Policy to determine which processes compete for which CPU Needed for multiprocessor, parallel, and distributed systems

CPU Workload Model Workload contains collection of jobs (processes) Job model Job alternates between CPU and I/O bursts (i.e., moves between ready and blocked queues) CPU-bound job: Long CPU bursts I/O-bound job: Short CPU bursts Do not know type of job before it executes Do not know duration of CPU or I/O burst Need job scheduling for each ready job Schedule each CPU burst

Scheduling Performance Metrics Minimize waiting time Do not want to spend much time in Ready queue Minimize turnaround time Do not want to wait long for job to complete Maximize throughput Want many jobs to complete per unit of time Minimize response time Schedule interactive jobs promptly so users see output quickly Maximize resource utilization Keep expensive devices busy Minimize overhead Reduce number of context switches Maximize fairness All jobs get same amount of CPU over some time interval

When may Scheduler switch? Non-preemptive scheduler Process remains scheduled until voluntarily relinquishes CPU Scheduler may switch in two cases: – Preemptive scheduler Process may be descheduled at any time Additional cases: –

Gantt Chart Illustrates how jobs are scheduled over time on CPU Example: ABC Time

First-Come-First-Served (FCFS) Job ArrivalCPU burst A010 B12 C24 ABC Time Average wait time: (0 + (10-1) + (12-2))/3=6.33 Average turnaround time: (10 + (12-1) + (16-2))/3=11.67 Idea: Maintain FIFO list of jobs as they arrive Non-preemptive policy Allocate CPU to job at head of list

FCFS Discussion Advantage: Very simple implementation Disadvantage Waiting time depends on arrival order Potentially long wait for jobs that arrive later Convoy effect: Short jobs stuck waiting for long jobs –Hurts waiting time of short jobs –Reduces utilization of I/O devices –Example: 1 mostly CPU-bound job, 3 mostly I/O-bound jobs CBD A CBD A CBD Idle A CBDA CPU Disk Time

Shortest-Job-First (SJF) Idea: Minimize average wait time by running shortest CPU-burst next Non-preemptive Use FCFS if jobs are of same length Job ArrivalCPU burst A010 B02 C04 ABC Time 16 0 Average wait: Average turnaround: 26

SJF Discussion Advantages Provably optimal for minimizing average wait time (with no preemption) –Moving shorter job before longer job improves waiting time of short job more than it harms waiting time of long job Helps keep I/O devices busy Disadvantages Not practical: Cannot predict future CPU burst time –OS solution: Use past behavior to predict future behavior Starvation: Long jobs may never be scheduled

Shortest-Time-to-Completion-First (STCF or SCTF) Idea: Add preemption to SJF Schedule newly ready job if shorter than remaining burst for running job JobArrivalCPU burst A08 B14 C29 D35 Time SJF Average wait: STCF Average wait: ABCDABDAC

Round-Robin (RR) Idea: Run each job for a time-slice and then move to back of FIFO queue Preempt job if still running at end of time-slice Job ArrivalCPU burst A010 B12 C24 ABCABCACACA Average wait: Time

RR Discussion Advantages Jobs get fair share of CPU Shortest jobs finish relatively quickly Disadvantages Poor average waiting time with similar job lengths –Example: 10 jobs each requiring 10 time slices –RR: All complete after about 100 time slices –FCFS performs better! Performance depends on length of time-slice –If time-slice too short, pay overhead of context switch –If time-slice too long, degenerate to FCFS

RR Time-Slice IF time-slice too long, degenerate to FCFS Example: –Job A w/ 1 ms compute and 10ms I/O –Job B always computes –Time-slice is 50 ms BABA CP U Disk A Idle A Goal: Adjust length of time-slice to match CPU burst Time

Priority-Based Idea: Each job is assigned a priority Schedule highest priority ready job May be preemptive or non-preemptive Priority may be static or dynamic Advantages Static priorities work well for real time systems Dynamic priorities work well for general workloads Disadvantages Low priority jobs can starve How to choose priority of each job? Goal: Adjust priority of job to match CPU burst Approximate SCTF by giving short jobs high priority