Wk 2 – Scheduling 1 CS502 Spring 2006 Scheduling The art and science of allocating the CPU and other resources to processes.
Published byModified over 5 years ago
Presentation on theme: "Wk 2 – Scheduling 1 CS502 Spring 2006 Scheduling The art and science of allocating the CPU and other resources to processes."— Presentation transcript:
Wk 2 – Scheduling 1 CS502 Spring 2006 Scheduling The art and science of allocating the CPU and other resources to processes
Wk 2 – Scheduling 2 CS502 Spring 2006 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?
Wk 2 – Scheduling 3 CS502 Spring 2006 Process Scheduling When to run scheduler 1.Process create 2.Process exit 3.Process blocks 4.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)
Wk 2 – Scheduling 4 CS502 Spring 2006 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
Wk 2 – Scheduling 5 CS502 Spring 2006 Process Scheduling – System Needs
Wk 2 – Scheduling 6 CS502 Spring 2006 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
Wk 2 – Scheduling 7 CS502 Spring 2006 Batch System Scheduling Note: Number of Processes in Memory determines the degree of multiprogramming
Wk 2 – Scheduling 8 CS502 Spring 2006 Scheduling Policies - FCFS First Come, First Served (FCFS) –Easy to implement –Non-preemptive –Minimizes context switch overhead –Favors compute bound jobs –Short jobs penalized
Wk 2 – Scheduling 9 CS502 Spring 2006 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
Wk 2 – Scheduling 10 CS502 Spring 2006 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
Wk 2 – Scheduling 11 CS502 Spring 2006 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
Wk 2 – Scheduling 12 CS502 Spring 2006 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??
Wk 2 – Scheduling 13 CS502 Spring 2006 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
Wk 2 – Scheduling 14 CS502 Spring 2006 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
Wk 2 – Scheduling 15 CS502 Spring 2006 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
Wk 2 – Scheduling 16 CS502 Spring 2006 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
Wk 2 – Scheduling 17 CS502 Spring 2006 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
Wk 2 – Scheduling 18 CS502 Spring 2006 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