CPU Scheduling. Dr. Yingwu Zhu

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

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

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

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

CPU Scheduling. CPU Scheduling

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

CPU Scheduling Outline

Chapter 5 Process Scheduling

ICS Principles of Operating Systems

W4118 Operating Systems. Instructor: Junfeng Yang

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

OPERATING SYSTEMS SCHEDULING

Processor Scheduling. Queues Recall OS maintains various queues

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

Operating System: Scheduling

CPU SCHEDULING (CONT D) NESTED SCHEDULING FUNCTIONS

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

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

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

Introduction. Scheduling. Types of scheduling. The basics

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

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

OS OBJECTIVE QUESTIONS

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

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

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

PROCESS SCHEDULING ALGORITHMS: A REVIEW

Operating Systems Lecture #6: Process Management

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

CPU Scheduling. Core Definitions

Operating Systems. III. Scheduling.

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

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

Operating Systems Concepts: Chapter 7: Scheduling Strategies

Analysis and Comparison of CPU Scheduling Algorithms

Job Scheduling Model

A Comparative Study of CPU Scheduling Algorithms

Scheduling Algorithms

Operating Systems, 6 th ed. Test Bank Chapter 7

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

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

Linux Process Scheduling Policy

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

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

Threads Scheduling on Linux Operating Systems

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

Syllabus MCA-404 Operating System - II

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6

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

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

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

CS414 SP 2007 Assignment 1

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

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

A Review on Load Balancing In Cloud Computing 1

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

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

Performance Comparison of RTOS

Real-Time Scheduling 1 / 39

218 Chapter 5 CPU Scheduling

W4118 Operating Systems. Instructor: Junfeng Yang

Efficiency of Batch Operating Systems

Operating System Tutorial

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

Analysis of Job Scheduling Algorithms in Cloud Computing

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

Tasks Schedule Analysis in RTAI/Linux-GPL

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

Linux O(1) CPU Scheduler. Amit Gud amit (dot) gud (at) veritas (dot) com

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

Chapter 2: OS Overview

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

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Comparison between scheduling algorithms in RTLinux and VxWorks

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

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.

Today. Intro to real-time scheduling Cyclic executives. Scheduling tables Frames Frame size constraints. Non-independent tasks Pros and cons

Process Scheduling II

Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1

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

CPUInheritance Scheduling. UniversityofUtah

Process definition Concurrency Process status Process attributes PROCESES 1.3

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.

Completely Fair Scheduler and its tuning 1

Task Attribute-Based Scheduling - Extending Ada s Support for Scheduling

Chapter 1 13 Essay Question Review

Far-western University Central Office, Mahendranagar Operating System

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

CHAPTER 15: Operating Systems: An Overview

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Shared Address Space Computing: Programming

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Chapter 1 8 Essay Question Review

Chapter 1 FUNDAMENTALS OF OPERATING SYSTEM

Scheduling. Monday, November 22, 2004

REAL TIME OPERATING SYSTEMS. Lesson-10:

LAB 5: Scheduling Algorithms for Embedded Systems

Process Scheduling in Linux

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

Transcription:

CPU Scheduling Dr. Yingwu Zhu

Overview In discussing process/threads management and synchronization, we talked about context switching among processes/threads on the ready queue But we have not glossed over the details of exactly which thread is chosen from the ready queue Making this decision is called scheduling In this lecture, we ll look at: The goals of scheduling Starvation Various well-known scheduling algorithms Standard Unix scheduling algorithm

Multiprogramming In a multiprogramming system, we try to increase CPU utilization and job throughput by overlapping I/O and CPU activities Doing this requires a combination of mechanisms and policy We have covered the mechanisms Context switching, how and when it happens Process queues and process states Now we ll look at the policies Which process (thread) to run, for how long, etc. We ll refer to schedulable entities as jobs (standard usage) could be processes, threads, etc.

Basic Concepts Maximize CPU utilization by multiprogramming CPU I/O Burst Cycle Process execution consists of a cycle of CPU execution and I/O wait CPU burst distribution

Alternating Sequence of CPU And I/O Bursts

Histogram of CPU-burst Times 1. A large number of short CPU bursts 2. A small number of long CPU bursts

CPU Scheduler Selects from among the processes in the ready queue, 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 (interrupt a running process)

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

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 (from the time of submission to the time of completion) Waiting time amount of time a process has been waiting in the ready queue CPU scheduling does not affect the amount of time during which a process executes or does I/O 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/interactive systems)

Optimization Criteria Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time Question: Is average good? In some cases, minimizing the maximum response time is better

Starvation Starvation is a scheduling non-goal : Starvation is a situation where a process is prevented from making progress because some other process has the resource it requires Resource could be the CPU, or a lock (in readers/writers) Starvation usually a side effect of the scheduling algorithm A high priority process always prevents a low priority process from running on the CPU One thread always beats another when acquiring a lock Starvation can be a side effect of synchronization

First-Come, First-Served (FCFS) Scheduling Process Burst Time P 1 24 P 2 3 P 3 3 Suppose that the processes arrive at time 0 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 Nonpreemptive sheduling 24 27 30

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 waiting for long process to get off CPU One big CPU-bound process Many I/O-bound processes Lower CPU and device utilization

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 FCFS breaks the tie if two processes have same next CPU burst 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

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

Example of Preemptive SJF: SRTF 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

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

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. No process waits more than (n-1)q time units. Note: If a process has a CPU burst of less than 1 time quantum, the process itself will release the CPU voluntarily. The scheduler will then proceed to the next process in the ready queue Performance q large FCFS q small q must be large with respect to context switch, otherwise overhead is too high

Time Quantum and Context Switch Time

Example of 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

Turnaround Time Varies With The Time Quantum

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

Multilevel Queue Scheduling

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

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

Multilevel Feedback Queues

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

Thread Scheduling Local Scheduling How the threads library decides which thread to put onto an available LWP Global Scheduling How the kernel decides which kernel thread to run next

Pthread Scheduling API #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 int main(int argc, char *argv[]) { int i; pthread_t tid[num_threads]; pthread_attr t attr; /* get the default attributes */ pthread_attr_init(&attr); /* set the scheduling algorithm to PROCESS or SYSTEM */ pthread_attr setscope(&attr, PTHREAD_SCOPE_SYSTEM); /* set the scheduling policy - FIFO, RT, or OTHER */ pthread attr setschedpolicy(&attr, SCHED_OTHER); /* create the threads */ for (i = 0; i < NUM_THREADS; i++) pthread create(&tid[i],&attr,runner,null);

Pthread Scheduling API /* now join on each thread */ for (i = 0; i < NUM_THREADS; i++) pthread join(tid[i], NULL); } /* Each thread will begin control in this function */ void *runner(void *param) { printf("i am a thread\n"); pthread exit(0); }

Operating System Examples Unix scheduling

Unix Scheduling The canonical Unix scheduler uses a MLFQ 3-4 classes spanning ~170 priority levels Timesharing: first 60 priorities System: next 40 priorities Real-time: next 60 priorities Interrupt: next 10 (Solaris) Priority scheduling across queues, RR within a queue The process with the highest priority always runs Processes with the same priority are scheduled RR Processes dynamically change priority Increases over time if process blocks before end of quantum Decreases over time if process uses entire quantum

Motivation of Unix Scheduler The idea behind the Unix scheduler is to reward interactive processes over CPU hogs Interactive processes (shell, editor, etc.) typically run using short CPU bursts They do not finish quantum before waiting for more input Want to minimize response time Time from keystroke (putting process on ready queue) to executing keystroke handler (process running) Don t want editor to wait until CPU hog finishes quantum This policy delays execution of CPU-bound jobs But that s ok

Java Thread Scheduling JVM Uses a Preemptive, Priority-Based Scheduling Algorithm FIFO Queue is Used if There Are Multiple Threads With the Same Priority

Java Thread Scheduling (cont) JVM Schedules a Thread to Run When: 1. The Currently Running Thread Exits the Runnable State 2. A Higher Priority Thread Enters the Runnable State * Note the JVM Does Not Specify Whether Threads are Time-Sliced or Not

Time-Slicing Since the JVM Doesn t Ensure Time-Slicing, the yield() Method May Be Used: while (true) { // perform CPU-intensive task... Thread.yield(); } This Yields Control to Another Thread of Equal Priority

Thread Priorities Priority Thread.MIN_PRIORITY Thread Priority Thread.MAX_PRIORITY Priority Thread.NORM_PRIORITY Comment Minimum Maximum Thread Default Thread Priority Priorities May Be Set Using setpriority() method: setpriority(thread.norm_priority + 2);

In-class Exercise 1 Consider the following set of processes, with the length of the CPU-burst time given in milliseconds: Process Burst Time Priority P1 10 3 P2 1 1 P3 2 3 P4 1 4 P5 5 2 The processes are assumed to have arrived in the order P1, P2, P3, P4, P5, all at time 0. a. Draw four Gantt charts illustrating the execution of these processes using FCFS, SJF, a nonpreemptive priority (a smaller priority number implies a higher priority), and RR (quantum = 1) scheduling. b. What is the turnaround time of each process for each of the scheduling algorithms in part a? c. What is the waiting time of each process for each of the scheduling algorithms in part a? d. Which of the schedules in part a results in the minimal average waiting time (over all processes)?

In-class Exercise 2 Which of the following scheduling algorithms could result in starvation? a. First-come, first-served b. Shortest job first c. Round robin d. Priority

In-class Exercises Consider a system running ten I/O-bound tasks and one CPU-bound task. Assume that the I/O-bound tasks issue an I/O operation once for every millisecond of CPU computing and that each I/O operation takes 10 milliseconds to complete. Also assume that the context switching overhead is 0.1millisecond and that all processes are long-running tasks. What is the CPU utilization for a round-robin scheduler when: a. The time quantum is 1 millisecond b. The time quantum is 10 milliseconds

CPU Scheduling Simulator