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

Similar documents
Module 5: CPU Scheduling

Chapter 6: CPU Scheduling

CHAPTER 5 - PROCESS SCHEDULING

CPU scheduling. CPU Scheduling

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

2/5/07 CSE 30341: Operating Systems Principles

CPU Scheduling. CPU Scheduler

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

CPU SCHEDULING RONG ZHENG

CS 550 Operating Systems Spring CPU scheduling I

CSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song

Last class: Today: Threads. CPU Scheduling

CPU Scheduling. Heechul Yun

CSE 380 Computer Operating Systems

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

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

CPU Scheduling Exercises

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

Simulation of Process Scheduling Algorithms

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

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

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

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

Improvising Round Robin Process Scheduling through Dynamic Time Quantum Estimation

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

LSN 15 Processor Scheduling

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

Journal of Global Research in Computer Science

Revamped Round Robin Scheduling Algorithm

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

Dynamic Time Quantum based Round Robin CPU Scheduling Algorithm

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

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

Real-Time Systems. Event-Driven Scheduling

Season Finale: Which one is better?

Half Life Variable Quantum Time Round Robin (HLVQTRR)

CIS 4930/6930: Principles of Cyber-Physical Systems

February 2011 Page 23 of 93 ISSN

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

Networked Embedded Systems WS 2016/17

Andrew Morton University of Waterloo Canada

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

Aperiodic Task Scheduling

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

Real-Time Systems. Event-Driven Scheduling

Journal of Global Research in Computer Science

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

Lecture 6. Real-Time Systems. Dynamic Priority Scheduling

Embedded Systems 14. Overview of embedded systems design

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

How to deal with uncertainties and dynamicity?

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

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

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

EXTRA THRESHOLD IN ROUND ROBIN ALGORITHM IN MULTIPROCESSOR SYSTEM

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

Clock-driven scheduling

PBS: A Unified Priority-Based CPU Scheduler

A NEW PROPOSED DYNAMIC DUAL PROCESSOR BASED CPU SCHEDULING ALGORITHM

Embedded Systems Development

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

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

Task Models and Scheduling

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

Real-Time and Embedded Systems (M) Lecture 5

There are three priority driven approaches that we will look at

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

Scheduling IoT on to the Cloud : A New Algorithm

EDF Feasibility and Hardware Accelerators

CEC 450 Real-Time Systems

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

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

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

On-line scheduling of periodic tasks in RT OS

Divisible Load Scheduling

Energy-efficient Mapping of Big Data Workflows under Deadline Constraints

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

Fast and Accurate Transaction-Level Model of a Wormhole Network-on-Chip with Priority Preemptive Virtual Channel Arbitration

Announcements. Project #1 grades were returned on Monday. Midterm #1. Project #2. Requests for re-grades due by Tuesday

Scheduling Algorithms for Multiprogramming in a Hard Realtime Environment

Real-Time Systems. Lecture 4. Scheduling basics. Task scheduling - basic taxonomy Basic scheduling techniques Static cyclic scheduling

Proportional Share Resource Allocation Outline. Proportional Share Resource Allocation Concept

ENHANCED ROUND ROBIN ALGORITHM FOR PROCESS SCHEDULING USING VARYING QUANTUM PRECISION

Rate Monotonic Analysis (RMA)

A Dynamic Real-time Scheduling Algorithm for Reduced Energy Consumption

Analysis and Implementation of Global Preemptive Fixed-Priority Scheduling with Dynamic Cache Allocation*

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

CS418 Operating Systems

Advanced Computer Networks Lecture 3. Models of Queuing

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

Administrivia. Course Objectives. Overview. Lecture Notes Week markem/cs333/ 2. Staff. 3. Prerequisites. 4. Grading. 1. Theory and application

International Journal of Advanced Research in Computer Science and Software Engineering

Task Reweighting under Global Scheduling on Multiprocessors

Real-Time Systems. Lecture #14. Risat Pathan. Department of Computer Science and Engineering Chalmers University of Technology

A 2-Approximation Algorithm for Scheduling Parallel and Time-Sensitive Applications to Maximize Total Accrued Utility Value

Operating Systems. VII. Synchronization

Energy-Efficient Real-Time Task Scheduling in Multiprocessor DVS Systems

Real-Time Scheduling and Resource Management

Introduction to Queueing Theory

Lab Course: distributed data analytics

Transcription:

Che-Wei Chang chewei@mail.cgu.edu.tw Department of Computer Science and Information Engineering, Chang Gung University

} 2017/11/15 Midterm } 2017/11/22 Final Project Announcement 2

1. Introduction 2. System Structures 3. Process Concept 4. Multithreaded Programming 5. Process Scheduling 6. Synchronization 7. Deadlocks 8. Memory-Management Strategies 9. Virtual-Memory Management 10. File System 11. Implementing File Systems 12. Secondary-Storage Systems 3

} To introduce CPU scheduling, which is the basis for multi-programmed operating systems } To describe various CPU-scheduling algorithms } To discuss evaluation criteria for selecting a CPU scheduling algorithm for a particular system } To examine the scheduling algorithms of several operating systems 5

} CPU I/O Burst Cycle Process execution consists of a cycle of CPU execution and I/O waiting } Process Execution CPU-bound programs tend to have a few very long CPU bursts IO-bound programs tend to have many very short CPU bursts load store add store read from file wait for I/O store increment index write to file wait for I/O load store add store read from file wait for I/O CPU burst I/O burst CPU burst I/O burst CPU burst I/O burst 6

} The distribution can help in selecting an appropriate CPU scheduling algorithms 7

} Short-term scheduler selects a process among the processes in the ready queue, and allocates the CPU to the selected process Queue may be ordered in various ways } 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

} Dispatcher module gives control of the CPU to the process selected by the short-term scheduler switching context switching to user mode jumping to the proper location in the user program to resume that process } Dispatch latency the time it takes for the dispatcher to stop one process and start another running 9

} Why? Different scheduling algorithms may favor one class of processes over another } Criteria CPU Utilization Throughput Turnaround Time: (Completion Time) (Start Time) Waiting Time: Waiting in the Ready Queue Response Time: First Response Time 10

} First-Come, First-Served Scheduling (FIFO) } Shortest-Job-First Scheduling (SJF) } Priority Scheduling } Round-Robin Scheduling (RR) } Multilevel Queue Scheduling } Multilevel Feedback Queue Scheduling } Multiple-Processor Scheduling 11

} The process which requests the CPU first is allocated the CPU } Properties: Non-preemptive scheduling CPU might be hold for an extended period CPU request A FIFO ready queue Dispatched process 12

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 P 1 P 2 P 3 0 24 27 30 } Waiting time for P 1 = 0; P 2 = 24; P 3 = 27 } Average waiting time: (0 + 24 + 27)/3 = 17 13

} Suppose that the processes arrive in the order: P2, P3, P1 } 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 } Convoy effect short processes behind long a process 14

Processrriva Burst Time P 1 0.0 6 P 2 2.0 8 P 3 4.0 7 P 4 5.0 3 } SJF scheduling chart P 4 P 3 P 1 P 2 0 3 9 16 24 } Average waiting time = (3 + 16 + 9 + 0) / 4 = 7 15

} Non-preemptive SJF scheduling is optimal when processes are all ready at time 0 The minimum average waiting time } It is difficult to know the length of the next CPU request Prediction of the next CPU burst time using exponential averaging 1. 2. 3. 4. t n = actual length of n t n+ 1 a, 0 a 1 Define : CPU burst = predicted value for the next CPU th t - ( a) n n = 1 = a t n + 1 t burst 16

} Preemptive or Non-preemptive? Criteria such as AWT (Average Waiting Time) or 0 10 1 10 11 Non-preemptive AWT = (0+(10-1))/2 = 9/2 = 4.5 0 1 2 11 Preemptive AWT = ((2-1)+0) = 0.5 Shortest-Remaining-Time-First Scheduling 17

} A priority number (integer) is associated with each process } The CPU is allocated to the process with the highest priority } Priority Assignment Internally defined use some measurable quantity, such as the number of open files, Average CPU Burst Average I/O Burst Externally defined set by criteria external to the OS, such as the criticality levels of jobs 18

Process P1 P2 P3 P4 P5 Gantt Graph CPU Burst Time 10 1 2 1 5 Priority 3 1 3 4 2 P 5 P 1 P 2 P 3 P 4 0 1 6 16 18 19 Average waiting time = (6+0+16+18+1)/5 = 8.2 19

} Problem: Starvation low priority processes may never execute } Solution: Aging as time progresses increase the priority of the process } A Special Case: SJF is priority scheduling where priority is the inverse of predicted next CPU burst time 20

} Each process gets a small unit of CPU time (time quantum) } 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 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 21

Process P1 P2 P3 CPU Burst Time 24 3 3 Time slice = 4 P 1 P 2 P 3 P 1 P 1 P 1 P 1 P 1 0 4 7 10 14 18 22 26 30 AWT = ((10-4) + (4-0) + (7-0))/3 = 17/3 = 5.66 22

23

} Time quantum too large à FIFO } Time quantum too small à Time quantum must be large with respect to context switch time, otherwise overhead is too high Time quantum usually 10 ms to 100ms Context switch < 10 µs } A rule of thumb is that 80 percent of the CPU bursts should be shorter than the time quantum 24

process (10ms) quantum = 10 quantum = 1 P1 P2 P3 0 10 10 20 20 30 Average Turnaround Time = (10+20+30)/3 = 20 0 10 20 30 0 10 20 30 0 10 20 30 ATT = (28+29+30)/3 = 29 => 80% CPU Burst < time slice 25

} Partition the ready queue into several separate queues è Processes can be classified into different groups and permanently assigned to one queue 26

} Intra-queue scheduling Independent choice of scheduling algorithms e. g., foreground RR, and background FCFS } Inter-queue scheduling Fixed-priority preemptive scheduling e.g., foreground queues always have absolute priority over the background queues Time slice between queues e.g., 80% CPU is given to foreground processes, and 20% CPU to background processes 27

} 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 The method to determine which queue a newly ready process will enter 28

} Three queues: Q 0 RR with time quantum 8 milliseconds Q 1 RR time quantum 16 milliseconds Q 2 FCFS } Scheduling Do jobs in Q 0 first and then Q 1 and then Q 2 A new job enters queue Q 0 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 each job receives 16 additional milliseconds If it still does not complete, it is preempted and moved to queue Q 2 29

} To run on a CPU, user threads must be mapped to an associated kernel thread } Local Scheduling Contention Scope: Process-Contention Scope (PCS) How the threads library decides which thread to put onto an available kernel thread } Global Scheduling Contention Scope: System-Contention Scope (SCS) How the kernel decides which kernel thread to run on CPU next 30

} CPU scheduling in a system with multiple CPUs } A Homogeneous System Processors are identical in terms of their functionality } A Heterogeneous System Programs must be compiled for instructions on proper processors 31

} Asymmetric multiprocessing only one processor accesses the system data structures, alleviating the need for data sharing } Symmetric multiprocessing (SMP) each processor is self-scheduling, all processes in common ready queue, or each processor has its own private queue of ready processes 32

} A process might prefer to run on specific processors Hard affinity: sched_setaffinity() Soft affinity: non-uniform memory access CPU CPU fast access slow access fast access memory memory computer 33

} Attempt to keep the workload evenly distributed across all processors in an SMP system } Push migration A specific task periodically checks the load on each processor and evenly distributes the load by moving processes from overloaded to idle or less-busy processors } Pull migration An idle processor pulls a waiting task from a busy processor 34

} Multicore Processor: A physical chip with multiple processor cores. } Scheduling Issues: Memory Stall Coarse-Grained Multithreading Thread execution until a long latency Fine-Grained Multithreading Better architecture design for switching à Multiple Hardware Threads 35

36

} Each task (process) has to be completed before its deadline } Soft real-time systems try to serve a real-time task by its deadline } Hard real-time systems a real-time task must be served by its deadline } Two types of latencies affect performance 1.Interrupt latency time from arrival of interrupt to start of routine that serves the interrupt 2.Dispatch latency time for schedule to take current process off CPU and switch to another 37

38

} Completely Fair Scheduler (CFS) CFS scheduler maintains per task virtual run time in variable vruntime Associated with decay factor based on priority of task: lower priority è higher decay rate Normal default priority yields virtual run time = actual run time To decide next task to run, scheduler picks task with lowest virtual run time } Nice Value From -20 to +19 Lower value is higher priority 39

} A red-back tree is used to maintain the virtual run times of tasks 40

} Real-time scheduling according to POSIX Real-time tasks have static priorities } Real-time plus normal map into global priority scheme } Nice value of -20 maps to global priority 100 } Nice value of +19 maps to priority 139 41

Timecritical Realtime High Above normal Normal A Typical Class Below normal 31 15 15 15 15 15 Highest 26 15 12 10 8 6 Idle priority Base Priority Above normal 25 14 11 9 7 5 Normal 24 13 10 8 6 4 Below normal 23 12 9 7 5 3 Lowest 22 11 8 6 4 2 Idle 16 1 1 1 1 1 Real-Time Class Variable Class (1..15) 42

} Priority-Based Preemptive Scheduling Priority Range: from 0 to 31 Variable class uses 1-15 Real-time class uses 16-31 Dispatcher: A process runs until It is preempted by a higher-priority process It terminates Its time quantum ends It calls a blocking system call Idle thread } A Queue per Priority Level 43

} Each thread has a base priority that represents a value in the priority range of its class } Priority Changing Increased after some waiting Different amount for different I/O devices Decreased after some computation The priority is never lowered below the base priority } Favor foreground processes Each foreground task is given more time quantum (typically 3 times longer) 44

} A General Procedure Select criteria that may include several measures, e.g., maximize CPU utilization while confining the maximum response time to 1 second Evaluate various algorithms } Evaluation Methods: Deterministic modeling Queuing models Simulation Implementation 45

} A Typical Type of Analytic Evaluation Take a particular predetermined workload and defines the performance of each algorithm for that workload } Properties Simple and fast Through excessive executions of a number of examples, trends might be identified But it needs exact numbers for inputs, and its answers only apply to those cases Being too specific and requires too exact knowledge to be useful 46

process P1 P2 P3 P4 P5 CPU Burst time 10 29 3 7 12 FCFS P1 P2 P3 P4 P5 0 10 39 42 49 61 Average Waiting Time (AWT)=(0+10+39+42+49)/5=28 Nonpreemptive Shortest Job First P3 P4 P1 P5 P2 0 3 10 20 32 61 AWT=(10+32+0+3+20)/5=13 Round Robin (quantum =10) P1 P2 P3 P4 P5 P2 P5 P2 0 10 2023 30 40 50 52 61 AWT=(0+(10+20+2)+20+23+(30+10))/5=23 47

} Motivation: Workloads vary, and there is no static set of processes } Models (~ Queuing-Network Analysis) Workload: Arrival rate: the distribution of times when processes arrive The distributions of CPU & I/O bursts Service rate 48

} Motivation: Get a more accurate evaluation } Procedures: Program a model of the computer system Drive the simulation with various data sets Randomly generated according to some probability distributions è Inaccuracy occurs because of only the occurrence frequency of events. Miss the order & the relationships of events. Trace tapes: monitor the real system & record the sequence of actual events. 49

50

} Motivation: Get more accurate results than a simulation } Procedure: Code scheduling algorithms Put them in the OS Evaluate the real behaviors } Difficulties: Cost in coding algorithms and modifying the OS Reaction of users to a constantly changing the OS The environment in which algorithms are used will change 51