 2004 Deitel & Associates, Inc. All rights reserved. Chapter 8 – Processor Scheduling Outline 8.1 Introduction 8.2Scheduling Levels 8.3Preemptive vs.

Slides:



Advertisements
Similar presentations
CPU Scheduling Questions answered in this lecture: What is scheduling vs. allocation? What is preemptive vs. non-preemptive scheduling? What are FCFS,
Advertisements

1 Uniprocessor Scheduling Types of scheduling –The aim of processor scheduling is to assign processes to be executed by the processor so as to optimize.
Chapter 5 CPU Scheduling. CPU Scheduling Topics: Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling.
Ceng Operating Systems Chapter 2.2 : Process Scheduling Process concept  Process scheduling Interprocess communication Deadlocks Threads.
Day 25 Uniprocessor scheduling. Algorithm: Selection function Selection function – which process among ready processes to select. w – time spent in system,
Chapter 3: CPU Scheduling
02/06/2008CSCI 315 Operating Systems Design1 CPU Scheduling Algorithms Notice: The slides for this lecture have been largely based on those accompanying.
Chapter 8 – Processor Scheduling Outline 8.1 Introduction 8.2Scheduling Levels 8.3Preemptive vs. Nonpreemptive Scheduling 8.4Priorities 8.5Scheduling Objectives.
Scheduling in Batch Systems
Project 2 – solution code
Chapter 6: CPU Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 2, 2005 Chapter 6: CPU Scheduling Basic.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Cs238 CPU Scheduling Dr. Alan R. Davis. CPU Scheduling The objective of multiprogramming is to have some process running at all times, to maximize CPU.
5: CPU-Scheduling1 Jerry Breecher OPERATING SYSTEMS SCHEDULING.
Chapter 5: CPU Scheduling
Wk 2 – Scheduling 1 CS502 Spring 2006 Scheduling The art and science of allocating the CPU and other resources to processes.
02/11/2004CSCI 315 Operating Systems Design1 CPU Scheduling Algorithms Notice: The slides for this lecture have been largely based on those accompanying.
 2004 Deitel & Associates, Inc. All rights reserved. Chapter 8 – Processor Scheduling Outline 8.1 Introduction 8.2Scheduling Levels 8.3Preemptive vs.
1Chapter 05, Fall 2008 CPU Scheduling The CPU scheduler (sometimes called the dispatcher or short-term scheduler): Selects a process from the ready queue.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Chapter 6: CPU Scheduling
 2004 Deitel & Associates, Inc. All rights reserved. 1 Chapter 8 – Processor Scheduling Outline 8.1 Introduction 8.2Scheduling Levels 8.3Preemptive vs.
Scheduling. Objectives – Fairness – Maximize throughput – Maximize the number of users receiving acceptable response times – Minimize overhead – Balance.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-3 CPU Scheduling Department of Computer Science and Software Engineering.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Lecture 5 Operating Systems.
Lecture 11 Processor Scheduling Scheduling Algorithms Worker Threads and the Thread Pool.
Uniprocessor Scheduling
Chapter 6 CPU SCHEDULING.
More Scheduling cs550 Operating Systems David Monismith.
Fair Resource Access & Allocation  OS Scheduling
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Scheduling. Alternating Sequence of CPU And I/O Bursts.
Uniprocessor Scheduling Chapter 9. Aim of Scheduling To improve: Response time: time it takes a system to react to a given input Turnaround Time (TAT)
CPU Scheduling CSCI 444/544 Operating Systems Fall 2008.
Silberschatz and Galvin  Operating System Concepts Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Lecture 7: Scheduling preemptive/non-preemptive scheduler CPU bursts
Chapter 5: CPU Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria.
Chapter 5: Process Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Basic Concepts Maximum CPU utilization can be obtained.
1 11/29/2015 Chapter 6: CPU Scheduling l Basic Concepts l Scheduling Criteria l Scheduling Algorithms l Multiple-Processor Scheduling l Real-Time Scheduling.
Uniprocessor Scheduling Chapter 9. Aim of Scheduling Assign processes to be executed by the processor or processors: –Response time –Throughput –Processor.
Silberschatz and Galvin  Operating System Concepts Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 5 CPU Scheduling Slide 1 Chapter 5 CPU Scheduling.
Lecture Topics: 11/15 CPU scheduling: –Scheduling goals and algorithms.
CS333 Intro to Operating Systems Jonathan Walpole.
1 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling.
Operating Systems Scheduling. Scheduling Short term scheduler (CPU Scheduler) –Whenever the CPU becomes idle, a process must be selected for execution.
1 Uniprocessor Scheduling Chapter 3. 2 Alternating Sequence of CPU And I/O Bursts.
Chapter 4 CPU Scheduling. 2 Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation.
Operating Systems Unit 5: – Processor scheduling – Java – Linux – Windows XP Operating Systems.
CPU scheduling.  Single Process  one process at a time  Maximum CPU utilization obtained with multiprogramming  CPU idle :waiting time is wasted 2.
Basic Concepts Maximum CPU utilization obtained with multiprogramming
CPU Scheduling Scheduling processes (or kernel-level threads) onto the cpu is one of the most important OS functions. The cpu is an expensive resource.
Chapter 2 Scheduling.
Chapter 8 – Processor Scheduling
Operating Systems Processes Scheduling.
Chapter 2.2 : Process Scheduling
Chapter 6: CPU Scheduling
CPU Scheduling G.Anuradha
Chapter 6: CPU Scheduling
Module 5: CPU Scheduling
Chapter 5: CPU Scheduling
Chapter5: CPU Scheduling
Chapter 6: CPU Scheduling
Process Scheduling Decide which process should run and for how long
Chapter 5: CPU Scheduling
Chapter 6: CPU Scheduling
Module 5: CPU Scheduling
Chapter 6: CPU Scheduling
Module 5: CPU Scheduling
Presentation transcript:

 2004 Deitel & Associates, Inc. All rights reserved. Chapter 8 – Processor Scheduling Outline 8.1 Introduction 8.2Scheduling Levels 8.3Preemptive vs. Nonpreemptive Scheduling 8.4Priorities 8.5Scheduling Objectives 8.6Scheduling Criteria 8.7Scheduling Algorithms 8.7.1First-In-First-Out (FIFO) Scheduling 8.7.2Round-Robin (RR) Scheduling 8.7.3Shortest-Process-First (SPF) Scheduling 8.7.4Highest-Response-Ratio-Next (HRRN) Scheduling 8.7.5Shortest-Remaining-Time (SRT) Scheduling 8.7.6Multilevel Feedback Queues 8.7.7Fair Share Scheduling 8.8Deadline Scheduling 8.9Real-Time Scheduling 8.10Java Thread Scheduling

 2004 Deitel & Associates, Inc. All rights reserved. Objectives After reading this chapter, you should understand: –the goals of processor scheduling. –preemptive vs. nonpreemptive scheduling. –the role of priorities in scheduling. –scheduling criteria. –common scheduling algorithms. –the notions of deadline scheduling and real-time scheduling. –Java thread scheduling.

 2004 Deitel & Associates, Inc. All rights reserved. 8.1 Introduction Processor scheduling policy –Decides which process runs at given time –Different schedulers will have different goals Maximize throughput Minimize latency Prevent indefinite postponement Complete process by given deadline Maximize processor utilization

 2004 Deitel & Associates, Inc. All rights reserved. 8.2 Scheduling Levels High-level scheduling –Determines which jobs can compete for resources –Controls number of processes in system at one time Intermediate-level scheduling –Determines which processes can compete for processors –Responds to fluctuations in system load Low-level scheduling –Assigns priorities –Assigns processors to processes

 2004 Deitel & Associates, Inc. All rights reserved. Figure 8.1 Scheduling levels. 8.2 Scheduling Levels

 2004 Deitel & Associates, Inc. All rights reserved. 8.3 Preemptive vs. Nonpreemptive Scheduling Preemptive processes –Can be removed from their current processor –Can lead to improved response times –Important for interactive environments –Preempted processes remain in memory Nonpreemptive processes –Run until completion or until they yield control of a processor –Unimportant processes can block important ones indefinitely

 2004 Deitel & Associates, Inc. All rights reserved. 8.4 Priorities Static priorities –Priority assigned to a process does not change –Easy to implement –Low overhead –Not responsive to changes in environment Dynamic priorities –Responsive to change –Promote smooth interactivity –Incur more overhead than static priorities Justified by increased responsiveness

 2004 Deitel & Associates, Inc. All rights reserved. 8.5 Scheduling Objectives Different objectives depending on system –Maximize throughput –Maximize number of interactive processes receiving acceptable response times –Maximize resource utilization –Avoid indefinite postponement –Enforce priorities –Minimize overhead –Ensure predictability

 2004 Deitel & Associates, Inc. All rights reserved. 8.5 Scheduling Objectives Several goals common to most schedulers –Fairness –Predictability –Scalability –Balance of resource use –Minimize user response time (in time-sharing system) –Avoid starvation –Enforce priorities

 2004 Deitel & Associates, Inc. All rights reserved. 8.6 Scheduling Criteria Processor-bound processes –Use all available processor time I/O-bound –Generates an I/O request quickly and relinquishes processor Batch processes –Contains work to be performed with no user interaction Interactive processes –Requires frequent user input Real-time processes

 2004 Deitel & Associates, Inc. All rights reserved. 8.7 Scheduling Algorithms Scheduling algorithms –Decide when and for how long each process runs –Make choices about Preemptibility Priority Running time Run-time-to-completion (turnaround time) Fairness Urgency

 2004 Deitel & Associates, Inc. All rights reserved First-In-First-Out (FIFO) Scheduling FIFO scheduling –Simplest scheme –Processes dispatched according to arrival time –Nonpreemptible –Rarely used as primary scheduling algorithm, but often used as secondary mechanism

 2004 Deitel & Associates, Inc. All rights reserved. Figure 8.2 First-in-first-out scheduling First-In-First-Out (FIFO) Scheduling

 2004 Deitel & Associates, Inc. All rights reserved. FIFO Process Burst Time Gantt Chart Time Avg wait: ( ) / 5 = 28.0

 2004 Deitel & Associates, Inc. All rights reserved Round-Robin (RR) Scheduling Round-robin scheduling –Based on FIFO –Processes run only for a limited amount of time called a time slice or quantum –Preemptible –Requires the system to maintain several processes in memory to minimize overhead –Often used as part of more complex algorithms

 2004 Deitel & Associates, Inc. All rights reserved. Figure 8.3 Round-robin scheduling Round-Robin (RR) Scheduling

 2004 Deitel & Associates, Inc. All rights reserved. Round Robin (Quantum = 10) Process Burst Time Gantt Chart Time Avg wait: ( ) / 5 = 23.0

 2004 Deitel & Associates, Inc. All rights reserved Round-Robin (RR) Scheduling Selfish round-robin scheduling –Increases priority as process ages –Two queues Active Holding –Holding priority increases at rate a, Active priority at rate b, with b  a –Tuning a and b affects average latency and throughput What happens if 1.b << a ? 2.b = a ? –Favors older processes to avoid unreasonable delays

 2004 Deitel & Associates, Inc. All rights reserved Round-Robin (RR) Scheduling Quantum size –Determines response time to interactive requests –Very large quantum size Processes run for long periods Degenerates to FIFO –Very small quantum size System spends more time context switching than running processes –Middle-ground Long enough for interactive processes to issue I/O request Batch processes still get majority of processor time

 2004 Deitel & Associates, Inc. All rights reserved Shortest-Process-First (SPF) Scheduling Scheduler selects process with smallest time to finish –Lower average wait time than FIFO Reduces the number of waiting processes –Potentially large variance in wait times –Nonpreemptive Results in slow response times to arriving interactive requests –Relies on estimates of time-to-completion Can be inaccurate or falsified –Unsuitable for use in modern interactive systems

 2004 Deitel & Associates, Inc. All rights reserved. SPF Process Burst Time Avg wait: ( ) / 5 = Gantt Chart Time

 2004 Deitel & Associates, Inc. All rights reserved. Average Turnaround PFIFOSPFRR (Q=10) Average

 2004 Deitel & Associates, Inc. All rights reserved. Average Wait PFIFOSPFRR (Q=10) Average281323

 2004 Deitel & Associates, Inc. All rights reserved Highest-Response-Ratio-Next (HRRN) Scheduling HRRN scheduling –Improves upon SPF scheduling –Still nonpreemptive –Considers how long process has been waiting –Prevents indefinite postponement Priority = (time-waiting + service-time) / service-time

 2004 Deitel & Associates, Inc. All rights reserved Shortest-Remaining-Time (SRT) Scheduling SRT scheduling –Preemptive version of SPF –Shorter arriving processes preempt a running process –Very large variance of response times: long processes wait even longer than under SPF –Not always optimal Short incoming process can preempt a running process that is near completion Context-switching overhead can become significant

 2004 Deitel & Associates, Inc. All rights reserved Multilevel Feedback Queues Different processes have different needs –Short I/O-bound interactive processes should generally run before processor-bound batch processes –Behavior patterns not immediately obvious to the scheduler Multilevel feedback queues –Arriving processes enter the highest-level queue and execute with higher priority than processes in lower queues –Long processes repeatedly descend into lower levels Gives short processes and I/O-bound processes higher priority Long processes will run when short and I/O-bound processes terminate –Processes in each queue are serviced using round-robin Process entering a higher-level queue preempt running processes

 2004 Deitel & Associates, Inc. All rights reserved Multilevel Feedback Queues Algorithm must respond to changes in environment –Move processes to different queues as they alternate between interactive and batch behavior Example of an adaptive mechanism –Adaptive mechanisms incur overhead that often is offset by increased sensitivity to process behavior

 2004 Deitel & Associates, Inc. All rights reserved. Figure 8.4 Multilevel feedback queues Multilevel Feedback Queues

 2004 Deitel & Associates, Inc. All rights reserved Fair Share Scheduling FSS controls users’ access to system resources –Some user groups more important than others –Ensures that less important groups cannot monopolize resources –Unused resources distributed according to the proportion of resources each group has been allocated –Groups not meeting resource-utilization goals get higher priority

 2004 Deitel & Associates, Inc. All rights reserved. Figure 8.5 Standard UNIX process scheduler. The scheduler grants the processor to users, each of whom may have many processes. (Property of AT&T Archives. Reprinted with permission of AT&T.) Fair Share Scheduling

 2004 Deitel & Associates, Inc. All rights reserved. Figure 8.6 Fair share scheduler. The fair share scheduler divides system resource capacity into portions, which are then allocated by process schedulers assigned to various fair share groups. (Property of AT&T Archives. Reprinted with permission of AT&T.) Fair Share Scheduling

 2004 Deitel & Associates, Inc. All rights reserved. 8.8 Deadline Scheduling Deadline scheduling –Process must complete by specific time –Used when results would be useless if not delivered on-time –Difficult to implement Must plan resource requirements in advance Incurs significant overhead Service provided to other processes can degrade

 2004 Deitel & Associates, Inc. All rights reserved. 8.9 Real-Time Scheduling Real-time scheduling –Related to deadline scheduling –Processes have timing constraints –Also encompasses tasks that execute periodically Two categories –Soft real-time scheduling Does not guarantee that timing constraints will be met For example, multimedia playback –Hard real-time scheduling Timing constraints will always be met Failure to meet deadline might have catastrophic results For example, air traffic control

 2004 Deitel & Associates, Inc. All rights reserved. 8.9 Real-Time Scheduling Static real-time scheduling –Does not adjust priorities over time –Low overhead –Suitable for systems where conditions rarely change Hard real-time schedulers –Rate-monotonic (RM) scheduling Process priority increases monotonically with the frequency with which it must execute –Deadline RM scheduling Useful for a process that has a deadline that is not equal to its period

 2004 Deitel & Associates, Inc. All rights reserved. 8.9 Real-Time Scheduling Dynamic real-time scheduling –Adjusts priorities in response to changing conditions –Can incur significant overhead, but must ensure that the overhead does not result in increased missed deadlines –Priorities are usually based on processes’ deadlines Earliest-deadline-first (EDF) –Preemptive, always dispatch the process with the earliest deadline Minimum-laxity-first –Similar to EDF, but bases priority on laxity, which is based on the process’s deadline and its remaining run-time-to- completion

 2004 Deitel & Associates, Inc. All rights reserved Java Thread Scheduling Operating systems provide varying thread scheduling support –User-level threads Implemented by each program independently Operating system unaware of threads –Kernel-level threads Implemented at kernel level Scheduler must consider how to allocate processor time to a process’s threads

 2004 Deitel & Associates, Inc. All rights reserved Java Thread Scheduling Java threading scheduler –Uses kernel-level threads if available –User-mode threads implement timeslicing Each thread is allowed to execute for at most one quantum before preemption –Threads can yield to others of equal priority Only necessary on nontimesliced systems Threads waiting to run are called waiting, sleeping or blocked

 2004 Deitel & Associates, Inc. All rights reserved. Figure 8.7 Java thread priority scheduling Java Thread Scheduling