Module 5: CPU Scheduling

Similar documents
Chapter 6: CPU Scheduling

CPU scheduling. CPU Scheduling

TDDI04, K. Arvidsson, IDA, Linköpings universitet CPU Scheduling. Overview: CPU Scheduling. [SGG7] Chapter 5. Basic Concepts.

CPU Scheduling. CPU Scheduler

2/5/07 CSE 30341: Operating Systems Principles

CS 550 Operating Systems Spring CPU scheduling I

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

TDDB68 Concurrent programming and operating systems. Lecture: CPU Scheduling II

CSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song

CHAPTER 5 - PROCESS SCHEDULING

Last class: Today: Threads. CPU Scheduling

CPU SCHEDULING RONG ZHENG

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

CPU Scheduling Exercises

CPU Scheduling. Heechul Yun

Scheduling I. Today Introduction to scheduling Classical algorithms. Next Time Advanced topics on scheduling

Process Scheduling. Process Scheduling. CPU and I/O Bursts. CPU - I/O Burst Cycle. Variations in Bursts. Histogram of CPU Burst Times

Scheduling I. Today. Next Time. ! Introduction to scheduling! Classical algorithms. ! Advanced topics on scheduling

Simulation of Process Scheduling Algorithms

CSE 380 Computer Operating Systems

Scheduling. Uwe R. Zimmer & Alistair Rendell The Australian National University

Real-time operating systems course. 6 Definitions Non real-time scheduling algorithms Real-time scheduling algorithm

Dynamic Time Quantum based Round Robin CPU Scheduling Algorithm

CS 370. FCFS, SJF and Round Robin. Yashwanth Virupaksha and Abhishek Yeluri

UC Santa Barbara. Operating Systems. Christopher Kruegel Department of Computer Science UC Santa Barbara

Design and Performance Evaluation of a New Proposed Shortest Remaining Burst Round Robin (SRBRR) Scheduling Algorithm

Improvising Round Robin Process Scheduling through Dynamic Time Quantum Estimation

ENHANCING CPU PERFORMANCE USING SUBCONTRARY MEAN DYNAMIC ROUND ROBIN (SMDRR) SCHEDULING ALGORITHM

DETERMINING THE VARIABLE QUANTUM TIME (VQT) IN ROUND ROBIN AND IT S IMPORTANCE OVER AVERAGE QUANTUM TIME METHOD

Journal of Global Research in Computer Science

Season Finale: Which one is better?

Revamped Round Robin Scheduling Algorithm

ODSA: A Novel Ordering Divisional Scheduling Algorithm for Modern Operating Systems

LSN 15 Processor Scheduling

Half Life Variable Quantum Time Round Robin (HLVQTRR)

COMPARATIVE PERFORMANCE ANALYSIS OF MULTI-DYNAMIC TIME QUANTUM ROUND ROBIN (MDTQRR) ALGORITHM WITH ARRIVAL TIME

EXTRA THRESHOLD IN ROUND ROBIN ALGORITHM IN MULTIPROCESSOR SYSTEM

An Improved Round Robin Approach using Dynamic Time Quantum for Improving Average Waiting Time

February 2011 Page 23 of 93 ISSN

Journal of Global Research in Computer Science

ENHANCING THE CPU PERFORMANCE USING A MODIFIED MEAN- DEVIATION ROUND ROBIN SCHEDULING ALGORITHM FOR REAL TIME SYSTEMS.

A new Hybridized Multilevel Feedback Queue Scheduling with Intelligent Time Slice and its Performance Analysis

Determining the Optimum Time Quantum Value in Round Robin Process Scheduling Method

Networked Embedded Systems WS 2016/17

Efficient Dual Nature Round Robin CPU Scheduling Algorithm: A Comparative Analysis

Real-Time Systems. Event-Driven Scheduling

Scheduling IoT on to the Cloud : A New Algorithm

Improved Deadline Monotonic Scheduling With Dynamic and Intelligent Time Slice for Real-time Systems

ENHANCED ROUND ROBIN ALGORITHM FOR PROCESS SCHEDULING USING VARYING QUANTUM PRECISION

Task Models and Scheduling

A NEW PROPOSED DYNAMIC DUAL PROCESSOR BASED CPU SCHEDULING ALGORITHM

ENHANCING THE CPU PERFORMANCE USING A MODIFIED MEAN- DEVIATION ROUND ROBIN SCHEDULING ALGORITHM FOR REAL TIME SYSTEMS

Aperiodic Task Scheduling

CIS 4930/6930: Principles of Cyber-Physical Systems

Andrew Morton University of Waterloo Canada

Analysis of Software Artifacts

3. Scheduling issues. Common approaches 3. Common approaches 1. Preemption vs. non preemption. Common approaches 2. Further definitions

Lecture Note #6: More on Task Scheduling EECS 571 Principles of Real-Time Embedded Systems Kang G. Shin EECS Department University of Michigan

International Journal of Advanced Research in Computer Science and Software Engineering

Convolution Algorithm

Non-Preemptive and Limited Preemptive Scheduling. LS 12, TU Dortmund

Real-Time and Embedded Systems (M) Lecture 5

Lecture 6. Real-Time Systems. Dynamic Priority Scheduling

Embedded Systems 14. Overview of embedded systems design

COMP9334: Capacity Planning of Computer Systems and Networks

How to deal with uncertainties and dynamicity?

NATCOR: Stochastic Modelling

Research Article Designing of Vague Logic Based 2-Layered Framework for CPU Scheduler

Introduction to Queueing Theory

Lecture 13. Real-Time Scheduling. Daniel Kästner AbsInt GmbH 2013

Advanced Computer Networks Lecture 3. Models of Queuing

Proportional Share Resource Allocation Outline. Proportional Share Resource Allocation Concept

PBS: A Unified Priority-Based CPU Scheduler

Operational Laws Raj Jain

CS418 Operating Systems

Queueing systems. Renato Lo Cigno. Simulation and Performance Evaluation Queueing systems - Renato Lo Cigno 1

Real-Time Systems. Event-Driven Scheduling

CPSC 531: System Modeling and Simulation. Carey Williamson Department of Computer Science University of Calgary Fall 2017

Embedded Systems 15. REVIEW: Aperiodic scheduling. C i J i 0 a i s i f i d i

Introduction to Queueing Theory

Computing the Signal Duration to Minimize Average Waiting Time using Round Robin Algorithm

Real-Time Scheduling. Real Time Operating Systems and Middleware. Luca Abeni

Paper Presentation. Amo Guangmo Tong. University of Taxes at Dallas January 24, 2014

M/G/1 and Priority Queueing

Introduction to Queueing Theory

Embedded Systems Development

Chapter 10. Queuing Systems. D (Queuing Theory) Queuing theory is the branch of operations research concerned with waiting lines.

D Praveen Kumar et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (5), 2014,

Analysis of Round-Robin Implementations of Processor Sharing, Including Overhead

process arrival time CPU burst time priority p1 0ms 25ms 3 p2 1ms 9ms 1 p3 20ms 14ms 4 p4 32ms 4ms 2

CEC 450 Real-Time Systems

CEC 450 Real-Time Systems

EDF Scheduling. Giuseppe Lipari CRIStAL - Université de Lille 1. October 4, 2015

Process Scheduling for RTS. RTS Scheduling Approach. Cyclic Executive Approach

Multiprocessor Scheduling I: Partitioned Scheduling. LS 12, TU Dortmund

EDF Scheduling. Giuseppe Lipari May 11, Scuola Superiore Sant Anna Pisa

An Energy-efficient Task Scheduler for Multi-core Platforms with per-core DVFS Based on Task Characteristics

Intro to Queueing Theory

End-to-End Scheduling to Meet Deadlines in Distributed Systems

On-line scheduling of periodic tasks in RT OS

Transcription:

Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation 5.1

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 5.2

Alternating Sequence of CPU And I/O Bursts 5.3

Histogram of CPU-burst Times 5.4

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. Scheduling under 1 and 4 is nonpreemptive. All other scheduling is preemptive. 5.5

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. 5.6

Scheduling Criteria CPU utilization keep the CPU as busy as possible Throughput # 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 output (for time-sharing environment) 5.7

Optimization Criteria Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time 5.8

First-Come, First-Served (FCFS) Scheduling Example: Process Burst 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: P 1 P 2 P 3 0 Waiting time for P 1 = 0; P 2 = 24; P 3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17 24 27 30 5.9

FCFS Scheduling (Cont.) Suppose that the processes arrive in the order P 2, P 3, P 1. The Gantt chart for the schedule is: P 2 P 3 P 1 0 3 6 30 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. Convoy effect short process behind long process 5.10

Shortest-Job-First (SJR) Scheduling Associate with each process the length of its next CPU burst. Use these lengths to schedule the process with the shortest time. Two schemes: nonpreemptive once CPU given to the process it cannot be preempted until completes its CPU burst. Preemptive if a new process arrives with CPU burst length less than remaining time of current executing process, preempt. This scheme is know as the Shortest-Remaining-Time-First (SRTF). SJF is optimal gives minimum average waiting time for a given set of processes. 5.11

Example of Non-Preemptive SJF Process Arrival Time Burst Time P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (non-preemptive) P 1 P 3 P 2 P 4 0 3 7 8 12 16 Average waiting time = (0 + 6 + 3 + 7)/4-4 5.12

Example of Preemptive SJF Process Arrival Time Burst Time P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (preemptive) P 1 P 2 P 3 P 2 P 4 P 1 0 2 4 5 7 11 16 Average waiting time = (9 + 1 + 0 +2)/4-3 5.13

Determining Length of Next CPU Burst Can only estimate the length. Can be done by using the length of previous CPU bursts, using exponential averaging. 1. 2. 3. 4. t n = actual lenght of n τ n + 1 = predicted value for the next α, 0 α 1 Define : th τ n= 1 = α tn + 1 CPU burst ( α ) τ. n CPU burst 5.14

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 -1 + +(1 - α ) n=1 t n τ 0 Since both α and (1 - α) are less than or equal to 1, each successive term has less weight than its predecessor. 5.15

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 SJF is a priority scheduling where priority is the predicted next CPU burst time. Problem Starvation low priority processes may never execute. Solution Aging as time progresses increase the priority of the process. 5.16

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. 5.17

Example: RR with Time Quantum = 20 Process Burst Time P 1 53 P 2 17 P 3 68 P 4 24 The Gantt chart is: P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162 Typically, higher average turnaround than SJF, but better response. 5.18

How a Smaller Time Quantum Increases Context Switches 5.19

Turnaround Time Varies With The Time Quantum 5.20

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 5.21

Multilevel Queue Scheduling 5.22

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 5.23

Multilevel Feedback Queues 5.24

Example of Multilevel Feedback Queue Three queues: Q 0 time quantum 8 milliseconds Q 1 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. 5.25

Multiple-Processor Scheduling CPU scheduling more complex when multiple CPUs are available. Homogeneous processors within a multiprocessor. Load sharing Asymmetric multiprocessing only one processor accesses the system data structures, alleviating the need for data sharing. 5.26

Real-Time Scheduling Hard real-time systems required to complete a critical task within a guaranteed amount of time. Soft real-time computing requires that critical processes receive priority over less fortunate ones. 5.27

Dispatch Latency 5.28

Algorithm Evaluation Deterministic modeling takes a particular predetermined workload and defines the performance of each algorithm for that workload. Queuing models Implementation 5.29

Evaluation of CPU Schedulers by Simulation 5.30