1 / 18

Scheduling

Scheduling. The art and science of allocating the CPU and other resources to processes. Bursts of CPU usage alternate with periods of I/O wait a CPU-bound process an I/O bound process Which process should have higher CPU priority? Which process should have higher I/O or disk priority?.

milly
Download Presentation

Scheduling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Scheduling The art and science of allocating the CPU and other resources to processes CS502 Spring 2006

  2. Bursts of CPU usage alternate with periods of I/O wait • a CPU-bound process • an I/O bound process • Which process should have higher CPU priority? • Which process should have higher I/O or disk priority? CS502 Spring 2006

  3. Process Scheduling • When to run scheduler • Process create • Process exit • Process blocks • System interrupt • Non-preemptive – process runs until it blocks or gives up CPU (1,2,3) • Preemptive – process runs for some time unit, then scheduler selects a process to run (1-4) CS502 Spring 2006

  4. Scheduling - Policies • Issues • Fairness – don’t starve process • Priorities – most important first • Deadlines – task X must be done by time t • Optimization – e.g. throughput, response time • Reality - No universal scheduling policy • Many models • Determine what to optimize - metrics • Select an appropriate one and adjust based on experience CS502 Spring 2006

  5. Process Scheduling – System Needs CS502 Spring 2006

  6. Scheduling - Metrics • Simplicity – easy to implement • Job latency – time from start to completion • Interactive latency – time from action start to expected system response • Throughput – number of jobs completed • Utilization – keep processor and subset of I/O devices busy • Determinism – insure that jobs get done before some time or event • Fairness – every job makes progress CS502 Spring 2006

  7. Batch System Scheduling Note: Number of Processes in Memory determines the degree of multiprogramming CS502 Spring 2006

  8. Scheduling Policies - FCFS • First Come, First Served (FCFS) • Easy to implement • Non-preemptive • Minimizes context switch overhead • Favors compute bound jobs • Short jobs penalized CS502 Spring 2006

  9. Scheduling Policies – Round Robin • Round Robin (RR) • Preemptive • Ready processes given a quantum of time when scheduled • Process runs until it blocks or quantum expires • Suitable for interactive (timesharing) systems • Setting quantum is critical for efficiency CS502 Spring 2006

  10. Scheduling Policies - Comparison • 10 jobs each take 100 seconds - look at when jobs complete • FCFS – job 1: 100s, job 2: 200s … job 10:1000s • RR • 1 sec quantum • Job 1: 991s, job 2 : 992s … • RR good for short jobs – worse for long jobs CS502 Spring 2006

  11. Scheduling Policies – RR example • Utilization • A and B compute bound jobs - 100 ms @ 100% CPU • C – 1 ms CPU and 10 ms disk I/O • Quantum – 100 ms • CPU utilization = (100 + 100 +1)/210 = 95.7 % • Quantum – 1 ms (assume 0 overhead) • ABCAB(C-I/O)ABABAB ….AB • CPU utilization = 100% • Smaller quantum can improve utilization – but consider overhead CS502 Spring 2006

  12. Scheduling Policies - STCF • STCF – shortest time to completion first (or shortest job first) • Can be preemptive • Good for throughput • Example • jobs A – 100, B – 1, C – 2 • Done B – 1, C – 3 , A – 103 • Ave = 35, (for RR (1) about 37) • Reality – knowledge of job runtime?? CS502 Spring 2006

  13. Scheduling Policies - Priority • Priority Scheduling • Preemptive • Process are given priorities and ranked • Maybe done with multiple queues - multilevel • Highest priority runs next • With multilevel queues • Select from highest queue • Round robin within queue • Recalculate priority – many algorithms • E.g. increase priority of I/O intensive jobs • E.g. favor processes in memory • Must still meet system goals – e.g. response time CS502 Spring 2006

  14. Scheduling Policy - Problems • Priority inversion • A has high priority, B has lower priority and B acquires a resources that A needs to progress • A attempts to get resources, fails and busy waits; B never runs • A attempts to get resources, fails and blocks; C (medium) enters system; B never runs • Priority scheduling can’t be naive CS502 Spring 2006

  15. Scheduling Policies - Realtime • Real Time System – processes have deadlines • Deadlines known • (usually) preemptive • Static algorithm – periodic process behavior • Rate Monotonic Scheduling (RMS) – priority = 1/period • Dynamic – aperiodic • Earliest Deadline First (EDF) – select process that must complete the soonest CS502 Spring 2006

  16. Scheduling - Examples • Unix – multilevel - many policies and many policy changes over time • Linux – multilevel – 3 major levels • Realtime FIFO • Realtime round robin • Timesharing • Win/NT - multilevel • Threads scheduled – fibers not visible to scheduler • Jobs – groups of processes are given quotas that contribute to priorities CS502 Spring 2006

  17. Scheduling • Until now: focus on processes. Going forward: system resources – memory, storage, I/O • Space sharing • How can resources be split up? – e.g. disk, memory • Time sharing • What gets to use something and for how long? • Whenever there are more requests than can be granted • Typically resource can not be divided – CPU, I/O port, … • Interesting when can be cheaply preempted CS502 Spring 2006

  18. Scheduling • General theme – what is the “best way” to run n processes on k cpu? ( k < n) • Conflicting Objectives – no one “best way” • Latency vs. throughput • Speed vs. fairness • Incomplete knowledge • E.g. – does user know how long a job will take • Real world limitations • E.g. context switching takes CPU time • Job loads are unpredictable • Bottom line – scheduling is hard • Know the models • Adjust based upon experience CS502 Spring 2006

More Related