Silberschatz and Galvin

Similar documents
Objectives. Chapter 5: Process Scheduling. Chapter 5: Process Scheduling. 5.1 Basic Concepts. To introduce CPU scheduling

ICS Principles of Operating Systems

Announcements. Basic Concepts. Histogram of Typical CPU- Burst Times. Dispatcher. CPU Scheduler. Burst Cycle. Reading

Objectives. Chapter 5: CPU Scheduling. CPU Scheduler. Non-preemptive and preemptive. Dispatcher. Alternating Sequence of CPU And I/O Bursts

/ Operating Systems I. Process Scheduling. Warren R. Carithers Rob Duncan

CPU Scheduling. CPU Scheduling

Chapter 5 Process Scheduling

CPU Scheduling. Basic Concepts. Basic Concepts (2) Basic Concepts Scheduling Criteria Scheduling Algorithms Batch systems Interactive systems

OPERATING SYSTEMS SCHEDULING

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

CPU Scheduling Outline

W4118 Operating Systems. Instructor: Junfeng Yang

Chapter 5: CPU Scheduling. Operating System Concepts 8 th Edition

CPU Scheduling. Core Definitions

Scheduling. Scheduling. Scheduling levels. Decision to switch the running process can take place under the following circumstances:

Comp 204: Computer Systems and Their Implementation. Lecture 12: Scheduling Algorithms cont d

2. is the number of processes that are completed per time unit. A) CPU utilization B) Response time C) Turnaround time D) Throughput

Operating Systems. III. Scheduling.

Process Scheduling CS 241. February 24, Copyright University of Illinois CS 241 Staff

Operating System: Scheduling

Processor Scheduling. Queues Recall OS maintains various queues

Road Map. Scheduling. Types of Scheduling. Scheduling. CPU Scheduling. Job Scheduling. Dickinson College Computer Science 354 Spring 2010.

Main Points. Scheduling policy: what to do next, when there are multiple threads ready to run. Definitions. Uniprocessor policies

Scheduling 0 : Levels. High level scheduling: Medium level scheduling: Low level scheduling

Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum

Process Scheduling. Process Scheduler. Chapter 7. Context Switch. Scheduler. Selection Strategies

Introduction. Scheduling. Types of scheduling. The basics

Job Scheduling Model

PROCESS SCHEDULING ALGORITHMS: A REVIEW

CPU Scheduling. Multitasking operating systems come in two flavours: cooperative multitasking and preemptive multitasking.

A Comparative Study of CPU Scheduling Algorithms

OS OBJECTIVE QUESTIONS

CPU SCHEDULING (CONT D) NESTED SCHEDULING FUNCTIONS

CPU Scheduling. CSC 256/456 - Operating Systems Fall TA: Mohammad Hedayati

Analysis and Comparison of CPU Scheduling Algorithms

Operating Systems Lecture #6: Process Management

Real-Time Scheduling 1 / 39

Operating Systems Concepts: Chapter 7: Scheduling Strategies

Overview of Presentation. (Greek to English dictionary) Different systems have different goals. What should CPU scheduling optimize?

Scheduling Algorithms

A Group based Time Quantum Round Robin Algorithm using Min-Max Spread Measure

REDUCING TIME: SCHEDULING JOB. Nisha Yadav, Nikita Chhillar, Neha jaiswal

A Review on Load Balancing In Cloud Computing 1

Lecture Outline Overview of real-time scheduling algorithms Outline relative strengths, weaknesses

CPU Scheduling 101. The CPU scheduler makes a sequence of moves that determines the interleaving of threads.

Linux Process Scheduling Policy

Readings for this topic: Silberschatz/Galvin/Gagne Chapter 5

Operating Systems, 6 th ed. Test Bank Chapter 7

Syllabus MCA-404 Operating System - II

4. Fixed-Priority Scheduling

Konzepte von Betriebssystem-Komponenten. Linux Scheduler. Valderine Kom Kenmegne Proseminar KVBK Linux Scheduler Valderine Kom

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6

Operating System Tutorial

CS Fall 2008 Homework 2 Solution Due September 23, 11:59PM

Analysis of Job Scheduling Algorithms in Cloud Computing

A Priority based Round Robin CPU Scheduling Algorithm for Real Time Systems

W4118 Operating Systems. Instructor: Junfeng Yang

A LECTURE NOTE ON CSC 322 OPERATING SYSTEM I DR. S. A. SODIYA

Chapter 19: Real-Time Systems. Overview of Real-Time Systems. Objectives. System Characteristics. Features of Real-Time Systems

This tutorial will take you through step by step approach while learning Operating System concepts.

Module 6. Embedded System Software. Version 2 EE IIT, Kharagpur 1

Types Of Operating Systems

Real-Time Scheduling (Part 1) (Working Draft) Real-Time System Example

I/O Management. General Computer Architecture. Goals for I/O. Levels of I/O. Naming. I/O Management. COMP755 Advanced Operating Systems 1

Weight-based Starvation-free Improvised Round-Robin (WSIRR) CPU Scheduling Algorithm

ò Paper reading assigned for next Thursday ò Lab 2 due next Friday ò What is cooperative multitasking? ò What is preemptive multitasking?

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings

Real-Time Software. Basic Scheduling and Response-Time Analysis. René Rydhof Hansen. 21. september 2010

Final Report. Cluster Scheduling. Submitted by: Priti Lohani

Scheduling. Monday, November 22, 2004

Efficiency of Batch Operating Systems

Overview and History of Operating Systems

3. Scheduling issues. Common approaches /1. Common approaches /2. Common approaches / /13 UniPD / T. Vardanega 23/01/2013. Real-Time Systems 1

Performance Comparison of RTOS

Commonly Used Approaches to Real-Time Scheduling

Efficient Parallel Processing on Public Cloud Servers Using Load Balancing

Linux scheduler history. We will be talking about the O(1) scheduler

Scheduling policy. ULK3e 7.1. Operating Systems: Scheduling in Linux p. 1

Lecture 3 Theoretical Foundations of RTOS

The International Journal Of Science & Technoledge (ISSN X)

Load Balancing Scheduling with Shortest Load First

Devices and Device Controllers

Project No. 2: Process Scheduling in Linux Submission due: April 28, 2014, 11:59pm

CS414 SP 2007 Assignment 1

Real- Time Scheduling

Load Balancing in Distributed System. Prof. Ananthanarayana V.S. Dept. Of Information Technology N.I.T.K., Surathkal

UNIVERSITY OF WISCONSIN-MADISON Computer Sciences Department A. Arpaci-Dusseau

Convenience: An OS makes a computer more convenient to use. Efficiency: An OS allows the computer system resources to be used in an efficient manner.

Predictable response times in event-driven real-time systems

Linux Block I/O Scheduling. Aaron Carroll December 22, 2007

Completely Fair Scheduler and its tuning 1

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Tasks Schedule Analysis in RTAI/Linux-GPL

LECTURE - 1 INTRODUCTION TO QUEUING SYSTEM

Operating System Aspects. Real-Time Systems. Resource Management Tasks

Chapter 2: OS Overview

Design and performance evaluation of Advanced Priority Based Dynamic Round Robin Scheduling Algorithm (APBDRR)

CHAPTER 15: Operating Systems: An Overview

Comparison between scheduling algorithms in RTLinux and VxWorks

Transcription:

Silberschatz and Galvin Chapter 5 CPU Scheduling CPSC 410--Richard Furuta 01/19/99 1 Topics covered Basic concepts/scheduling criteria Non-preemptive and Preemptive scheduling Scheduling algorithms Algorithm evaluation CPSC 410--Richard Furuta 01/19/99 2 1

medium-term scheduler Process State Diagram new long-term scheduler terminated suspended ready ready running suspended waiting waiting short-term scheduler CPSC 410--Richard Furuta 01/19/99 3 Short-term Scheduling Runs frequently--efficiency very important Critical to systemõs performance--effectiveness Extensively studied--many interesting comparisons, theoretically-valid results Terminology: Ð preemptive scheduling: processes that are logically runnable can be temporarily suspended Ð nonpreemptive scheduling: processes permitted to run to completion or until they block CPSC 410--Richard Furuta 01/19/99 4 2

Short-term Scheduling Algorithms Nonpreemptive Ð First-Come First Serve (FCFS) Ð Shortest Job First (SJF) Preemptive Ð Shortest remaining time first (SRTF) Ð Round Robin Scheduling (RR) Ð Multilevel Queue Scheduling Ð Multilevel Feedback Queue Scheduling (MLF) CPSC 410--Richard Furuta 01/19/99 5 Why does Scheduling Work? Process behavior: CPU--I/O Burst Cycle Ð processes alternate between CPU execution and I/O waits Ð Lengths of CPU bursts exhibit predictable distribution Ð Large number of short CPU bursts Ð Small number of long CPU bursts Ð I/O bound--many very short CPU bursts Ð CPU bound--few very long CPU bursts CPSC 410--Richard Furuta 01/19/99 6 3

CPU-burst times histogram f r e q u e n c y 180 160 140 120 100 80 60 40 20 0 0 10 20 30 40 50 burst duration (milliseconds) CPU bursts CPSC 410--Richard Furuta 01/19/99 7 CPU Scheduler Job: select from among the processes in memory that are ready to execute, and allocate the CPU to one of them CPU scheduling decisions can take place when a process Ð Switches from running to waiting state (nonpreemptive) Ð Switches from running to ready (preemptive) Ð Switches from waiting to ready (preemptive) Ð Terminates (nonpreemptive) CPSC 410--Richard Furuta 01/19/99 8 4

Dispatcher Dispatcher gives control of CPU to the selected process. 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. CPSC 410--Richard Furuta 01/19/99 9 Possible scheduling criteria CPU use: keep the CPU as busy as possible Throughput: number of processes that complete their execution per time unit Turnaround time: amount of time to execute a particular 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 (not the time it takes to output that response as it is possible that output overlaps subsequent computation) CPSC 410--Richard Furuta 01/19/99 10 5

Scheduling criteria Maximize CPU use and throughput; minimize turnaround time, waiting time, and response time Perhaps minimize the average; but it may be desirable to optimize the minimum or maximum times rather than the average (e.g., good response time in an interactive system) Interactive systems may prefer predictable output times (i.e., limit the variance), but little work has been done on this CPSC 410--Richard Furuta 01/19/99 11 First-Come, First-Served Scheduling (FCFS) First process needing CPU gets it allocated (FIFO queue) Nonpreemptive Example: p1 (burst time 24); p2 (3); p3 (3)/arrive at t=0 in order Gantt chart P1 P2 P3 0 24 27 30 average turnaround time = (24+27+30)/3 = 27 average wait time = (0+24+27)/3 = 17 CPSC 410--Richard Furuta 01/19/99 12 6

First-Come, First-Served Scheduling (FCFS) Example: p1 (burst time 4); p2 (3); p3 (15)/arrive at t=0 P1 P2 P3 0 4 7 22 average turnaround time = (4+7+22)/3 = 11 average wait time = (0+4+7)/3 = 3 2/3 What happens if we reverse the order of arrival? CPSC 410--Richard Furuta 01/19/99 13 First-Come, First-Served Scheduling (FCFS) Example: p3 (burst time 15); p2 (3); p1 (4)/arrive at t=0 P3 P2 P1 0 15 18 22 average turnaround time = (15+18+22)/3 = 18 1/3 average wait time = (0+15+18)/3 = 11 average turnaround time was 11 is 18 1/3 average wait time was 3 2/3 is 11 CPSC 410--Richard Furuta 01/19/99 14 7

FCFS Scheduling Very simple to implement. Very quick to execute. Average wait time can be quite long and subject to variation depending on arrival time. Wait time not necessarily minimal (as seen by reordering processes). Convoy effect: short I/O bound processes wait behind CPU-bound process then execute quickly. CPU idle. Better device use possible with mix (e.g., shorter processes first). Nonpreemptive algorithm, so problematic for timesharing system (CPU bound holds up others) CPSC 410--Richard Furuta 01/19/99 15 Shortest Job First Scheduling (SJF) Give the CPU to the process with the smallest next CPU burst FCFS breaks ties Example: as before, p1(4); p2(3); p3(15) P2 P1 P3 0 3 7 22 average turnaround time = (3+7+22)/3 = 10 2/3 average wait time = (0+3+7)/3 = 3 1/3 CPSC 410--Richard Furuta 01/19/99 16 8

Shortest Remaining Time First A preemptive version of SJF scheduling If a new process arrives with CPU burst length less than the remaining time of the current executing process, preempt the current executing process. CPSC 410--Richard Furuta 01/19/99 17 SJF/SRTF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF Average waiting time = (0 + 6 + 3 + 7)/4 = 4 SRTF Average waiting time = (9 + 1 + 0 + 2)/4 = 3 CPSC 410--Richard Furuta 01/19/99 18 9

SJF Scheduling SJF can be proven to be optimal! Minimizes average waiting time for a given set of processes. Ð proof sketch: each process contributes to overall average waiting time so putting the one that contributes the least first decreases the average. But it requires that you know the future Ð cannot ÒknowÓ the length of the next CPU burst Ð must predict future behavior (see following) Ð prediction on behavior will be wrong when process behaves inconsistently CPSC 410--Richard Furuta 01/19/99 19 Predicting the length of the next CPU burst Estimation based on previous behavior using exponential averaging. Let Ðtn = actual length of nth CPU burst Ð tn+1 = predicted value for the next CPU burst Ð a, 0 a 1 Ð Define tn+1 = a tn + ( 1 - a ) tn CPSC 410--Richard Furuta 01/19/99 20 10

Exponential averaging a = 0 Ð tn+1 = tn tn+1 = a tn + ( 1 - a ) tn Ð Recent history does not count a = 1 Ð tn+1 = tn Ð Only the actual last CPU burst counts Common case: a = 0.5 (Two cases for ÒflakyÓ CPU behavior) CPSC 410--Richard Furuta 01/19/99 21 Exponential averaging tn+1 = a tn + ( 1 - a ) tn When we expand the formula we see that each successive term has less weight than its predecessor since a and ( 1 - a ) are both between 0 and 1 tn+1 = a tn + ( 1 - a ) a tn-1 + É + ( 1 - a )^j a tn-j + É + ( 1 - a )^(n+1) a t0 CPSC 410--Richard Furuta 01/19/99 22 11

Priority Scheduling (a general concept) The concept Ð Priority associated with each process Ð CPU allocation goes to the process with the highest priority can be either preemptive or nonpreemptive SJF is an example of (nonpreemptive) priority scheduling where the priority is based on the length of the next CPU burst CPSC 410--Richard Furuta 01/19/99 23 Priority Scheduling Preemptive priority scheduling: newly arriving process will preempt CPU if held by lower priority process Possible strategy to insure interactive response: process has higher priority after returning from I/O interrupt (can be abused in interactive environment--how?) One problems with priority scheduling is the possibility of starvation (indefinite blocking) Ð process waiting and ready to run that never gets CPU because of continuing stream of arriving higher-priority processes Ð aging might be one possible solution (increase priority with time) Ð Unix nice decreases priority as CPU use increases CPSC 410--Richard Furuta 01/19/99 24 12

Round Robin Scheduling (preemptive) For timesharing systems Define a time quantum (time slice): small unit of time, generally from 10 to 100 milliseconds Scheduling scheme Ð treat ready queue as FIFO queue Ð new processes added to tail Ð scheduler dispatches first process from head Ð if process releases CPU voluntarily, continue down queue, resetting quantum timer Ð at expiration of quantum, preempt process and return it to tail of ready queue CPSC 410--Richard Furuta 01/19/99 25 Round Robin Scheduling Example: p1 (burst time 15) ; p2 (3); p3 (5) quantum: 4 P1 P2 P3 P1 P3 P1 P1 0 4 7 11 15 16 20 23 p1 waits 0+7+1 p2 waits 4 p3 waits 7+4 average wait = 7 2/3 p1 ends at 23 p2 ends at 7 p3 ends at 16 average turnaround = 15 1/3 CPSC 410--Richard Furuta 01/19/99 26 13

Round Robin Scheduling Interactive response good: if quantum q and n processes, a process must wait no longer than (n-1)*q time units for CPU Average waiting time is quite long because of preemptions Performance depends heavily on size of quantum Ð If quantum infinite, same as FCFS (FCFS is special case of RR) Ð If quantum very small, appears (in theory) to users that there are n virtual processors, each running at 1/n the speed of the actual processor (given n processes) Ð But in reality the effects of context switching affects the performance of RR scheduling--context switch overhead CPSC 410--Richard Furuta 01/19/99 27 Round Robin Scheduling Quantum Size Time quantum should be large with respect to the context switch time to reduce effects of context switch overhead Smaller time quantum results in more context switches Time quantum too large, degenerates to FCFS case Metric from the text--80% of CPU bursts shorter than time quantum CPSC 410--Richard Furuta 01/19/99 28 14

Multilevel Queue Scheduling General class of algorithms involving multiple ready queues Appropriate for situations where processes are easily classified into different groups (e.g., foreground and background) Processes permanently assigned to one ready queue depending on some property of process (e.g., memory size, process priority, process type) Each queue has own scheduling algorithm (e.g., foreground could be RR while background could be FCFS) Scheduling as well between the queues--often a fixed-priority preemptive scheduling. For example, foreground queue could have absolute priority over background queue. (New foreground jobs displace running background jobs; no background until foreground queue empty). CPSC 410--Richard Furuta 01/19/99 29 Multilevel Queue Scheduling Example: five queues (highest to lowest) Ð system processes Ð interactive processes Ð interactive editing processes Ð batch processes Ð student processes One possibility for scheduling between the queues: each queue has absolute priority over lower-priority queues Another possibility: Each queue gets certain percentage of CPU time: e.g., foreground gets 80% and background gets 20% CPSC 410--Richard Furuta 01/19/99 30 15

Multilevel Feedback Queue Scheduling (MLF) Processes permitted to move between queues Needs policy about when this movement will take place Separate processes with different CPU burst behaviors. If CPU fails to live up to expectations it gets moved. Example: 3 queues Ð queue 0: quantum=8 (highest priority) Ð queue 1: quantum=16 Ð queue 2: FCFS Ð New jobs enter queue 0. If donõt finish in quantum move to tail of queue 1 and then to tail of queue 2 Ð Higher numbered queue runs only when lower numbered queue is empty Ð Favors processes with CPU burst of 8 milliseconds or less CPSC 410--Richard Furuta 01/19/99 31 Multilevel Feedback Queue Scheduling (MLF) How many different levels? In other words, how many queues? Scheduling algorithm between queues. Scheduling algorithm for each queue. Method used to determine when to upgrade process to higher priority queue. Method used to determine when to demote process to lower priority queue. Method used to determine which queue a new process will enter when that process needs service. CPSC 410--Richard Furuta 01/19/99 32 16

MLF Scheduling Example two (From Bic and Shaw) # priority levels: n+1, numbered 0 to n scheduling policy among levels: higher numbers have higher priority; queue n is highest and 0 lowest. All jobs at higher priority handled before any lower scheduling algorithm within queues: all queues use RR with a global quantum of ÒqÓ process upgrade: none process demotion: each level has associated time T i where T n = mq (m from the specifications; q quantum size) 0 <= i < n, T i = 2 (n-1) * T n T 0 = infinity when process at level i has received T i units of time, it is moved to next lower level New process: enters queue n (the highest level) CPSC 410--Richard Furuta 01/19/99 33 Special situations: Multiple processor scheduling CPU scheduling more complex when multiple CPUs are available Limit consideration to homogeneous processors within a multiprocessor Can achieve load sharing Asymmetric multiprocessing--simpler than symmetric multiprocessing. Only one processor, the master server, handles system activities. Alleviates need for data sharing. CPSC 410--Richard Furuta 01/19/99 34 17

Special situations: Real-time scheduling Hard real-time systems: required to complete a critical task within a guaranteed amount of time Ð Resource reservation: statement of required resources (either accepted or rejected by system) Soft real-time computing: requires that critical processes receive priority over other processes Ð Must keep dispatch latency low, so real-time processes can start running faster Ð So long-running system calls may need to be preemptable. Insert preemption point into calls. CPSC 410--Richard Furuta 01/19/99 35 Algorithm Evaluation Deterministic modeling: takes a particular predetermined workload and defines the performance of each algorithm for that workload Queuing models: determine, and model, distribution of CPU and I/O bursts. Determine/model arrival-time distribution. Can then compute average throughput, utilization, waiting time, etc., for most algorithms. Simulations, perhaps using randomly-generated behaviors or perhaps using trace tapes. Implementation. CPSC 410--Richard Furuta 01/19/99 36 18

VAX/VMS OS Scheduling (a more complex example) (from Bic and Shaw) More complex than the strategies discussed so far but still has similar characteristics CPSC 410--Richard Furuta 01/19/99 37 VAX/VMS Scheduling (a real-world example) 32 priority levels. Divided into 2 groups of 16. Level 31 is highest priority. 31 to 16 Real-time processes 15 to 0 ÒRegularÓ processes Real time process priority fixed for duration of process Regular process priority varies based on recent execution history Ð base priority: assigned to process on creation. Specifies the minimum priority level Ð current priority: varies dynamically with recent execution history CPSC 410--Richard Furuta 01/19/99 38 19

VAX/VMS Scheduling Setting the current priority Ð Each system event has assigned priority increment to reflect the characteristics of the event for example: terminal read > terminal write > disk i/o completion Ð When process is awakened due to one of these events, the priority increment is added to the current process priority with a maximum possible current priority of 15 Ð Process enters appropriate levelõs queue Ð Process preempted after receiving its Òfair shareó of CPU. At this time decrement priority by 1 unless already at base priority. (Fair share is defined for the process, not the level) CPSC 410--Richard Furuta 01/19/99 39 VAX/VMS Scheduling Dispatch by current priority, hence real time processes always have priority over regular processes Preemption Ð real time: when (1) blocks itself., e.g., for I/O; (2) higher priority process arrives Ð regular: when (1), (2), or (3) exceeds time quantum (at which time it is demoted unless it is already at its base level) Compare to MLF Ð VAX/VMS has restriction of priority range between base priority and 15 (for regular processes) Ð Quantum associated with process, not global or with level. Dispatcher can discriminate among individual processes CPSC 410--Richard Furuta 01/19/99 40 20