Operating Systems. Scheduling

Similar documents
Operating Systems. Lecture Process Scheduling. Golestan University. Hossein Momeni

CPU Scheduling. CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections )

Last Class: Processes

Announcements. Program #1. Program #0. Reading. Is due at 9:00 AM on Thursday. Re-grade requests are due by Monday at 11:59:59 PM.

8: Scheduling. Scheduling. Mark Handley

Chapter 5: CPU Scheduling

Lecture Topics. Announcements. Today: Uniprocessor Scheduling (Stallings, chapter ) Next: Advanced Scheduling (Stallings, chapter

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Scheduling

Scheduling of processes

Course Syllabus. Operating Systems

Scheduling Bits & Pieces

1.1 CPU I/O Burst Cycle

Properties of Processes

OPERATING SYSTEMS CS3502 Spring Processor Scheduling. Chapter 5

CISC 7310X. C05: CPU Scheduling. Hui Chen Department of Computer & Information Science CUNY Brooklyn College. 3/1/2018 CUNY Brooklyn College

CPU Scheduling Algorithms

Lecture 5 / Chapter 6 (CPU Scheduling) Basic Concepts. Scheduling Criteria Scheduling Algorithms

Preview. Process Scheduler. Process Scheduling Algorithms for Batch System. Process Scheduling Algorithms for Interactive System

Operating Systems: Quiz2 December 15, Class: No. Name:

COSC243 Part 2: Operating Systems

CPU Scheduling. Daniel Mosse. (Most slides are from Sherif Khattab and Silberschatz, Galvin and Gagne 2013)

Interactive Scheduling

Two Level Scheduling. Interactive Scheduling. Our Earlier Example. Round Robin Scheduling. Round Robin Schedule. Round Robin Schedule

Process Scheduling. Copyright : University of Illinois CS 241 Staff

Scheduling. The Basics

Operating Systems ECE344. Ding Yuan

CPU Scheduling. Schedulers. CPSC 313: Intro to Computer Systems. Intro to Scheduling. Schedulers in the OS

Ch 4 : CPU scheduling

Operating System Concepts Ch. 5: Scheduling

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University

CPU Scheduling. Rab Nawaz Jadoon. Assistant Professor DCS. Pakistan. COMSATS, Lahore. Department of Computer Science

Unit 3 : Process Management

Chapter 6: CPU Scheduling

Last class: Today: CPU Scheduling. CPU Scheduling Algorithms and Systems

Practice Exercises 305

Review. Preview. Three Level Scheduler. Scheduler. Process behavior. Effective CPU Scheduler is essential. Process Scheduling

OPERATING SYSTEMS. After A.S.Tanenbaum, Modern Operating Systems, 3rd edition. Uses content with permission from Assoc. Prof. Florin Fortis, PhD

CS3733: Operating Systems

CS370 Operating Systems

CPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University

Announcements. Program #1. Reading. Due 2/15 at 5:00 pm. Finish scheduling Process Synchronization: Chapter 6 (8 th Ed) or Chapter 7 (6 th Ed)

CS370 Operating Systems

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition

Scheduling in the Supermarket

Chapter 9. Uniprocessor Scheduling

Scheduling. CSC400 - Operating Systems. 7: Scheduling. J. Sumey. one of the main tasks of an OS. the scheduler / dispatcher

Chapter 9 Uniprocessor Scheduling

Scheduling. Scheduling. Scheduling. Scheduling Criteria. Priorities. Scheduling

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s)

Chapter 5: CPU Scheduling

Scheduling. Today. Next Time Process interaction & communication

CS 326: Operating Systems. CPU Scheduling. Lecture 6

Learning Outcomes. Scheduling. Is scheduling important? What is Scheduling? Application Behaviour. Is scheduling important?

Frequently asked questions from the previous class survey

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

LECTURE 3:CPU SCHEDULING

Chap 7, 8: Scheduling. Dongkun Shin, SKKU

Operating Systems. Process scheduling. Thomas Ropars.

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

CS 318 Principles of Operating Systems

Computer Systems Laboratory Sungkyunkwan University

Uniprocessor Scheduling

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s)

CPU Scheduling: Objectives

Operating Systems Unit 3

Uniprocessor Scheduling. Chapter 9

SIMULATION-BASED COMPARISON OF SCHEDULING TECHNIQUES IN MULTIPROGRAMMING OPERATING SYSTEMS ON SINGLE AND MULTI-CORE PROCESSORS *

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

CPU Scheduling. Basic Concepts. Histogram of CPU-burst Times. Dispatcher. CPU Scheduler. Alternating Sequence of CPU and I/O Bursts

CSCI-GA Operating Systems Lecture 3: Processes and Threads -Part 2 Scheduling Hubertus Franke

Chapter 5: CPU Scheduling

Advanced Operating Systems (CS 202) Scheduling (1)

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

Announcements. Reading. Project #1 due in 1 week at 5:00 pm Scheduling Chapter 6 (6 th ed) or Chapter 5 (8 th ed) CMSC 412 S14 (lect 5)

CSE 120. Summer, Inter-Process Communication (IPC) Day 3. Inter-Process Communication (IPC) Scheduling Deadlock. Instructor: Neil Rhodes

CS 4284 Systems Capstone. Resource Allocation & Scheduling Godmar Back

Chapter 5 CPU scheduling

ALL the assignments (A1, A2, A3) and Projects (P0, P1, P2) we have done so far.

Uniprocessor Scheduling. Aim of Scheduling

Uniprocessor Scheduling. Aim of Scheduling. Types of Scheduling. Long-Term Scheduling. Chapter 9. Response time Throughput Processor efficiency

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s)

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Start of Lecture: February 10, Chapter 6: Scheduling

But this will not be complete (no book covers 100%) So consider it a rough approximation Last lecture OSPP Sections 3.1 and 4.1

Subject Name: OPERATING SYSTEMS. Subject Code: 10EC65. Prepared By: Kala H S and Remya R. Department: ECE. Date:

CHAPTER 2: PROCESS MANAGEMENT

Frequently asked questions from the previous class survey

Uniprocessor Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms. Three level scheduling

Announcements/Reminders

Chapter 5 Scheduling

Process- Concept &Process Scheduling OPERATING SYSTEMS

Scheduling II. Today. Next Time. ! Proportional-share scheduling! Multilevel-feedback queue! Multiprocessor scheduling. !

Operating System Review Part

CS307: Operating Systems

CS370 Operating Systems

CSC Operating Systems Spring Lecture - XII Midterm Review. Tevfik Ko!ar. Louisiana State University. March 4 th, 2008.

by Maria Lima Term Paper for Professor Barrymore Warren Mercy College Division of Mathematics and Computer Information Science

Starting the Threads

Recap. Run to completion in order of arrival Pros: simple, low overhead, good for batch jobs Cons: short jobs can stuck behind the long ones

Transcription:

Operating Systems Scheduling

Process States Blocking operation Running Exit Terminated (initiate I/O, down on semaphore, etc.) Waiting Preempted Picked by scheduler Event arrived (I/O complete, semaphore signaled, etc.) Ready Enable New New: the process is being created Ready: runnable and waiting for processor Running: executing on a processor Waiting/Blocked: waiting for an event Terminated: process is being deleted If multiple processes are ready, which one should be run? 2

Goals of Scheduling Algorithms Ensure fairness Comparable processes should get comparable services Avoid indefinite postponement No process should starve Enforce policy E.g., priorities Maximize resource utilisation CPU, I/O devices Minimize overhead From context switches, scheduling decisions 3

Goals of Scheduling Algorithms Batch systems: Throughput Jobs per unit of time Turnaround time Time between job submission and termination Interactive systems: Response time crucial Time between request issued and first response Real-time systems: Meeting deadlines Soft deadlines: e.g., leads to degraded video quality Hard deadline: e.g., leads to plane crash 4

Preemptive vs. Non-Preemptive Scheduling Non-preemptive Let process run until it blocks or voluntarily releases the CPU Preemptive: Let process run for a maximum amount of fixed time Requires clock interrupt 5

CPU-bound vs. I/O-bound Processes CPU-bound processes Spend most of their time using the CPU I/O-bound processes Spend most of their time waiting for I/O Tend to only use CPU briefly before issuing I/O request 6

First-Come First-Served (FCFS) (non-preemptive) Blocking operation Waiting processes Running process Event arrived Terminated Schedule Runnable process added to the end of ready queue Non-preemptive Ready queue New process 7

FCFS Advantages No indefinite postponement All processes are eventually scheduled Really easy to implement 8

FCFS Disadvantages What happens if a long job is followed by many short jobs? E.g., 1h, 1s, 1s, 1s, with jobs 2-4 submitted just after job 1 3600s 1s 1s 1s Throughput? Average turnaround time? 1s 1s 1s 3600s Throughput? Average turnaround time? 9

Round-Robin Scheduling (RR) Blocking operation Waiting processes Running process Preempted Event arrived Terminated Schedule Ready queue Process runs until it blocks or time quantum exceeded New process 10

Round-Robin Fairness Ready jobs get equal share of the CPU Response time Good for small number of jobs Average turnaround time: Low when run-times differ Poor for similar run-times 11

RR Quantum (Time Slice) RR Overhead: 4ms quantum, 1ms context switch time: 20% of time à overhead 1s quantum, 1ms context switch time: only 0.1% of time à overhead Large quantum: Smaller overhead Worse response time Quantum = à FCFS Small quantum: Larger overhead Better response time 12

RR Quantum Choosing a quantum value: Should be much larger than context switch cost But provide decent response time Typical values: 10-200ms Some example values for standard processes (values vary depending on process type and behaviour, priority, etc.): Linux: 100ms Windows client: 20ms Windows server: 180ms 13

Shortest Job First (SJF) Non-preemptive scheduling with run-times known in advance Pick the shortest job first Process with shortest CPU burst FCFS turnaround time: SJF turnaround time: Provably optimal when all jobs are available simultaneously 14

Shortest Remaining Time (SRT) Preemptive version of shortest job first Again, runtimes have to be known in advance Choose process whose remaining time is shortest When new process arrives with execution time less than the remaining time for the running process, run it Allows new short jobs to get good service Example: 3 jobs: J 1 = 6s, J 2 = 4s, J 3 = 1s arrives after 2s SJF: J 3 J 2 J 1 4s 1s 6s SRT: J 2 J 3 J 2 J 1 2s 1s 2s 6s 15

Shortest Remaining Time (SRT) What if a running process is almost complete and a shorter job arrives? Might want to disallow preemption when remaining run-time reaches a low threshold to avoid indefinite postponement What if context switch overhead is greater than the difference in remaining run-times for the two jobs? 16

Knowing Run-times in Advance Run-times are usually not available in advance Compute CPU burst estimates based on various heuristics? E.g., based on previous history Not always applicable User-supplied estimates? Need to counteract cheating to get higher priority E.g., terminate or penalise processes after they exceed their estimated run-time 17

Fair-Share Scheduling Users are assigned some fraction of the CPU Scheduler takes into account who owns a process before scheduling it E.g., two users each with 50% CPU share User 1 has 4 processes: A, B, C, D User 2 has 2 processes: E, F What does a fair-share RR scheduler do? A, E, B, F, C, E, D, F, A, E, B, F 18

Priority Scheduling Jobs are run based on their priority Always run the job with the highest priority Priorities can be externally defined (e.g., by user) or based on some process-specific metrics (e.g., their expected CPU burst) Priorities can be static (i.e. they don t change) or dynamic (they may change during execution) Example: consider three processes arriving at essentially the same time with externally defined static priorities A = 4, B = 7, C = 1, where a higher value means higher priority. Processes are run to completion in the order B, A, C. 19

General-Purpose Scheduling Favour short and I/O-bound jobs Get good resource utilisation And short response times Quickly determine the nature of the job and adapt to changes Processes have periods when they are I/O-bound and periods when they are CPU-bound 20

Multilevel Feedback Queues A form of priority scheduling Shortest remaining time also a form of priority scheduling! Implemented by many OSs: Windows Vista, Windows 7 Mac OS X Linux 2.6-2.6.23 Pintos! 21

Multilevel Feedback Queues One queue for each priority level Run job on highest non-empty priority queue Each queue can use different scheduling algorithm Usually round-robin 22

Multilevel Feedback Queues Need to determine current nature of job I/O-bound? CPU-bound? Need to worry about starvation of lower-priority jobs Feedback mechanism: Job priorities recomputed periodically, e.g., based on how much CPU they have recently used Exponentially-weighted moving average Aging: increase job s priority as it waits 23

Multilevel Feedback Queues Not very flexible Applications basically have no control Priorities make no guarantees What does priority 15 mean? Does not react quickly to changes Often needs warm-up period Running system for a while to get better results Problem for real-time systems, multimedia apps Cheating is a concern Add meaningless I/O to boost priority? Can t donate priority 24

Lottery Scheduling [Waldspurger and Weihl 1994] Jobs receive lottery tickets for various resources E.g., CPU time At each scheduling decision, one ticket is chosen at random and the job holding that ticket wins Example: 100 lottery tickets for CPU time, P1 has 20 tickets Chance of P1 running during the next CPU quantum: 20% In the long run, P1 gets 20% of the CPU time 25

Lottery Scheduling Number of lottery tickets meaningful Job holding p% of tickets, gets p% of resource Unlike priorities Highly responsive: New job given p% of tickets has the p% chance to get the resource at the next scheduling decision No starvation Jobs can exchange tickets Allows for priority donation Allows cooperating jobs to achieve certain goals Adding/removing jobs affect remaining jobs proportionally Unpredictable response time What if interactive process is unlucky for a few lotteries? 26

Summary Scheduling algorithms often need to balance conflicting goals E.g., ensure fairness, enforce policy, maximize resource utilisation Different scheduling algorithms appropriate in different contexts E.g., batch systems vs interactive systems vs real-time systems Well-studied scheduling algorithms include First-Come First-Served FCFS, Round Robin, Shortest Job First (SJF), Shortest Remaining Time (SRT), Multilevel Feedback Queues and Lottery Scheduling 27