CS 3013 & CS 502 Summer 2006 Scheduling1 The art and science of allocating the CPU and other resources to processes.
Published byModified over 5 years ago
Presentation on theme: "CS 3013 & CS 502 Summer 2006 Scheduling1 The art and science of allocating the CPU and other resources to processes."— Presentation transcript:
CS 3013 & CS 502 Summer 2006 Scheduling1 The art and science of allocating the CPU and other resources to processes
CS 3013 & CS 502 Summer 2006 Scheduling2 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?
CS 3013 & CS 502 Summer 2006 Scheduling3 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 or until some asynchronous action interrupts, then scheduler selects a process to run (1-4)
CS 3013 & CS 502 Summer 2006 Scheduling4 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
CS 3013 & CS 502 Summer 2006 Scheduling5 Process Scheduling – System Needs
CS 3013 & CS 502 Summer 2006 Scheduling6 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/or subset of I/O devices busy Determinism – insure that jobs get done before some time or event Fairness – every job makes progress
CS 3013 & CS 502 Summer 2006 Scheduling7 Batch System Scheduling Note: Number of Processes in Memory determines the degree of multiprogramming
CS 3013 & CS 502 Summer 2006 Scheduling8 Interactive System Scheduling First-Come, First-Served (FCFS) Round Robin (RR) Shortest Completion Time First (SCTF) Priority
CS 3013 & CS 502 Summer 2006 Scheduling9 Scheduling Policies – FCFS First Come, First Served (FCFS) –Easy to implement –Non-preemptive –Minimizes context switch overhead –Favors compute bound jobs –Short jobs penalized I.e., once a longer job gets the CPU, it gets in the way of a bunch of shorter jobs
CS 3013 & CS 502 Summer 2006 Scheduling10 Scheduling Policies – Round Robin Round Robin (RR) –Preemptive –Ready processes given a quantum of time when scheduled –Process runs until quantum expires or until it blocks (whichever comes first) –Suitable for interactive (timesharing) systems –Setting quantum is critical for efficiency
CS 3013 & CS 502 Summer 2006 Scheduling11 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
CS 3013 & CS 502 Summer 2006 Scheduling12 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 of context switches
CS 3013 & CS 502 Summer 2006 Scheduling13 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 msec Done B @ 1, C @ 3, A @ 103 Ave = 35, (for RR (1) about 37) –Reality – knowledge of job runtime??
CS 3013 & CS 502 Summer 2006 Scheduling14 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
CS 3013 & CS 502 Summer 2006 Scheduling15 Scheduling Policy Problem Priority inversion –A has high priority, B has medium priority, C has lowest priority –C acquires a resource that A needs to progress –A attempts to get resource, fails and busy waits C never runs to release resource! or –A attempts to get resources, fails and blocks B (medium priority) enters system & hogs CPU C never runs! Priority scheduling can’t be naive
CS 3013 & CS 502 Summer 2006 Scheduling16 Solution Some systems increase the priority of a process/task/job to Match level of resource or Match level of waiting process
CS 3013 & CS 502 Summer 2006 Scheduling17 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 More about this subject later in the term
CS 3013 & CS 502 Summer 2006 Scheduling18 Scheduling – Examples Unix – multilevel - many policies and many policy changes over time Linux – multilevel with 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
CS 3013 & CS 502 Summer 2006 Scheduling19 Scheduling Until now:– focus on processes and CPU Going forward:– focus on system resources memory, storage, I/O devices, web resources, … 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 – I/O port, device, …
CS 3013 & CS 502 Summer 2006 Scheduling20 Scheduling General theme – what is the “best way” to run n processes on k resources? ( 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
CS 3013 & CS 502 Summer 2006 Scheduling21 Scheduling (continued) Bottom line – scheduling is hard! –Know the models –Adjust based upon experience