chapter 5: process scheduling

Download Chapter 5:  Process Scheduling

If you can't read please download the document

Upload: edena

Post on 05-Jan-2016

37 views

Category:

Documents


3 download

DESCRIPTION

Chapter 5: Process Scheduling. Objectives. To introduce CPU scheduling To describe various CPU-scheduling algorithms To discuss evaluation criteria for selecting the CPU-scheduling algorithm for a particular system. Chapter 5: Process Scheduling. Basic Concepts Scheduling Criteria - PowerPoint PPT Presentation

TRANSCRIPT

  • Chapter 5: Process Scheduling

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    ObjectivesTo introduce CPU scheduling

    To describe various CPU-scheduling algorithms

    To discuss evaluation criteria for selecting the CPU-scheduling algorithm for a particular system

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Chapter 5: Process SchedulingBasic ConceptsScheduling Criteria Scheduling AlgorithmsMultiple-Processor SchedulingOperating Systems Examples (Linux)Algorithm EvaluationSkip: 5.4, 5.5.4 - 5.6.2

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.1 Basic ConceptsMaximum CPU utilization obtained with multiprogrammingCPUI/O Burst Cycle Process execution consists of a cycle of CPU execution and I/O wait

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Histogram of CPU-burst TimesCPU burst distribution

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    CPU SchedulerSelects from among the processes in memory that are ready to execute, and allocates the CPU to one of themCPU scheduling decisions may take place when a process:1.Switches from running to waiting state2.Switches from running to ready state3.Switches from waiting to ready4.TerminatesScheduling only under 1 and 4 is nonpreemptiveAll other scheduling is preemptive

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    DispatcherDispatcher module gives control of the CPU to the process selected by the short-term scheduler; this involves:switching contextswitching to user modejumping to the proper location in the user program to restart that programDispatch latency time it takes for the dispatcher to stop one process and start another running

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.2 Scheduling CriteriaCPU utilization keep the CPU as busy as possibleThroughput # of processes that complete their execution per time unitTurnaround time amount of time to execute a particular processWaiting time amount of time a process has been waiting in the ready queueResponse time amount of time it takes from when a request was submitted until the first response is produced, not output (for time-sharing environment)The response time is generally limited by the speed of the output devicecorrect p.188

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Optimization CriteriaMax average CPU utilizationMax average throughputMin average turnaround time Min average waiting time Min average response time

    Under some circumstancesOptimize the max or min values, rather than the average. Like minimize the max response time minimize the variance for predictable outcome

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.3.1 First-Come, First-Served (FCFS) SchedulingProcessBurst TimeP124 P2 3 P3 3 Suppose that the processes arrive in the order: P1 , P2 , P3 . The Gantt Chart for the schedule is:

    Waiting time for P1 = 0; P2 = 24; P3 = 27Average waiting time: (0 + 24 + 27)/3 = 17In the following consider only one CPU burst5.3 Scheduling Algorithms

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    FCFS Scheduling (Cont.)Suppose that the processes arrive in the order P2 , P3 , P1 The Gantt chart for the schedule is:

    Waiting time for P1 = 6; P2 = 0; P3 = 3Average waiting time: (6 + 0 + 3)/3 = 3Much better than previous caseConvoy effect short process behind long processNonpreemptive

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.3.2 Shortest-Job-First (SJR) SchedulingAssociate with each process the length of its next CPU burst. Use these lengths to schedule the process with the shortest timeTwo schemes: nonpreemptive once CPU given to the process it cannot be preempted until completes its CPU burstpreemptive 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

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Example of Non-Preemptive SJFProcessArrival TimeBurst TimeP10.07 P22.04 P34.01 P45.04SJF (non-preemptive)

    Average waiting time = (0 + 6 + 3 + 7)/4 = 4

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Example of Preemptive SJFProcessArrival TimeBurst TimeP10.07 P22.04 P34.01 P45.04SJF (preemptive)

    Average waiting time = (9 + 1 + 0 +2)/4 = 3

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Determining Length of Next CPU BurstCan only estimate the lengthEstimation can be done by using the length of previous CPU bursts, using exponential averaging

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Prediction of the Length of the Next CPU Burstshift p.191

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Examples of Exponential Averaging =0n+1 = nRecent history does not count =1 n+1 = tnOnly the actual last CPU burst countsIf we expand the formula, we get:n+1 = tn+(1 - ) tn -1 + +(1 - )j tn -j + +(1 - )n +1 0 Since both and (1 - ) are less than or equal to 1, each successive term has less weight than its predecessor

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.3.3 Priority SchedulingA priority number (integer) is associated with each processThe CPU is allocated to the process with the highest priority (smallest integer means highest priority)PreemptivenonpreemptiveSJF is a priority scheduling where priority is the inverse of the predicted next CPU burst timePriority could be defined internally or externallyProblem of Starvation low priority processes may never executeSolution: Aging as time progresses increase the priority of the process

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.3.4 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 in chunks of at most q time units at once. No process waits more than (n-1)*q time units.Performanceq large FIFOq small q must be large with respect to context switch, otherwise overhead is too high

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Example of RR with Time Quantum = 20ProcessBurst TimeP124 P2 3 P3 3The Gantt chart is: Average waiting time = (6+4+7)/3P1P2P3P1P1P1P1P1047101418222630

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Another Example of RR with Time Quantum = 20ProcessBurst TimeP153 P2 17 P368 P4 24The Gantt chart is: Average waiting time = (57+24+20+37+40+17+57+40)/4Typically, higher average turnaround than SJF, but better response

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Time Quantum and Context Switch TimeTypically, most OS have time quanta from 10 to 100 milliseconds, andhave context switch time less than 10 microseconds

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Turnaround Time Varies With The Time Quantum The average turnaround time does not necessary improve as the time-quantum size increases

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.3.5 Multilevel QueueReady queue is partitioned into separate queues For example: foreground (interactive) and background (batch)Each queue has its own scheduling algorithmforeground RRbackground FCFSScheduling must be done between the queuesFixed 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; For example, 80% to foreground in RR, and 20% to background in FCFS

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Multilevel Queue Scheduling

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.3.6 Multilevel Feedback QueueA process can move between the various queues; aging can be implemented this wayMultilevel-feedback-queue scheduler defined by the following parameters:number of queuesscheduling algorithms for each queuemethod used to determine when to upgrade a processmethod used to determine when to demote a processmethod used to determine which queue a process will enter when that process needs service

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Example of Multilevel Feedback QueueThree queues: Q0 RR with time quantum 8 millisecondsQ1 RR time quantum 16 millisecondsQ2 FCFSSchedulingA new job enters queue Q0 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 Q1.At Q1 job is again served FCFS and receives 16 additional milliseconds. If it still does not complete, it is preempted and moved to queue Q2.

    Skip 5.4

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.5 Multiple-Processor SchedulingCPU scheduling more complex when multiple CPUs are availableHomogeneous processors within a multiprocessorWe can use any available processor to run any processLoad sharing ApproachesAsymmetric multiprocessing only one processor accesses the system data structures, alleviating the need for data sharingSymmetric multiprocessing (SMP) each processor is self-scheduling

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Load BalancingCache memory concernsIf a process migrates from one processor to another, then the content of cache memory must be invalidated in the first processor and re-populated in the second processorProcessor affinity: a process tends to stay in the same processor on which it is currently runningProcessor AffinityKeep the workload evenly distributed across all processorsApproachesPush migrationPull migrationSkip 5.5.4 5.6.2

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.6.3 Operating System Examples (Linux)SMP support since Linux 2.5The Linux scheduler is preemptive and priority-based Two priority ranges: real-time (0-99) and nice (100-140)Linux assigns higher-priority tasks longer time quanta

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    List of Tasks Indexed According to Prorities Each runqueue contains two priority arrays: active and expiredreal-time tasks are assigned static priorities nice tasks have dynamic priorities. Interactive tasks tend to have adjustments close to -5.The recalculation of dynamic priorities occurs when the task is moved to the expired array

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    5.7 Algorithm EvaluationDeterministic modeling takes a particular predetermined workload and defines the performance of each algorithm for that workloadUseful for cases where the same program runs over and overQueueing models mathematical formula to describe the distribution of CPU and I/O bursts, the process arrival timeLittles formula: In a steady state, the number of processes leaving the system is equal to the number of processes arriving the system avearge number of leavingarrivingrateaveragewait time

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    Simulation

    5.*Silberschatz, Galvin and Gagne 2005Operating System Principles

    ImplementationThe only complete accurate way to evaluate a scheduling algorithm. Difficulties:High cost: coding and user reactionChanging environment: users will find out and switchMost flexible scheduling Fine tunable for specific applicationsProvide a command (like dispadmin in Solaris) to allow system administrators to modify the scheduling parametersProvide API to modify the priority of a process