390 likes | 613 Views
Finish Scheduling & Intro to Deadlock. Ch 2.5 and Ch 3 Tuesday, February 20, 2007. Today’s Schedule. Review & Complete Scheduling CPU Ch & Sec 2.5 Deadlock - Chapter 3 Skip multiple resources (3.4.2 & 3.5.4). Objectives – You can name …. Scheduling CPU
E N D
Finish Scheduling &Intro to Deadlock Ch 2.5 and Ch 3 Tuesday, February 20, 2007
Today’s Schedule • Review & Complete Scheduling CPU Ch & Sec 2.5 • Deadlock - Chapter 3 • Skip multiple resources (3.4.2 & 3.5.4)
Objectives – You can name … • Scheduling CPU • The advantages and disadvantages of process scheduling algorithms that are preemptive versus those that are nonpreemptive • The goals of process scheduling policies • Up to six different process scheduling algorithms • Deadlock • Several causes of system deadlock • The difference between preventing and avoiding deadlocks
Types of Scheduling Policies • Preemptive scheduling policy: • Interrupts processing of a job and transfers the CPU to another job • Nonpreemptive scheduling policy: • Functions without external interrupts
Process Scheduling Algorithms • Types of Process Scheduling Algorithms: • First Come, First Served (FCFS) • Shortest Job Next (SJN) • Shortest Remaining Time (SRT) • Three Level Scheduler (Batch) • Round Robin • Multiple Level Queues
Ex. First-Come, First-Served • Jobs arrival sequence: A, B, C • Job A has a CPU cycle of 15 milliseconds • • Job B has a CPU cycle of 2 milliseconds • • Job C has a CPU cycle of 1 millisecond Average turnaround time: 16.67 s Timeline for job sequence A, B, C using theFCFSalgorithm
First-Come, First-Served • Nonpreemptive • Handles jobs according to their arrival time: the earlier they arrive, the sooner they’re served • Simple algorithm to implement: uses a FIFO queue • Good for batch systems; unacceptable for interactive systems • Turnaround time is unpredictable
Ex #2: First-Come, First-Served • Jobs arrival sequence: C, B, A • Job A has a CPU cycle of 15 milliseconds • • Job B has a CPU cycle of 2 milliseconds • • Job C has a CPU cycle of 1 millisecond Average turnaround time: 7.3 s Timeline for job sequence C, B, A using the FCFSalgorithm
Shortest Job Next (SJN) • Nonpreemptive • Handles jobs based on length of their CPU cycle time • Easiest to implement in batch environments • Doesn’t work in interactive systems • Optimal only when all jobs are available at same timeand the CPU estimates are available and accurate
Ex. Shortest Job Next (SJN) Four batch jobs A, B, C, D, all in the READY queue Job: A B C D CPU cycle: 5 2 6 4 Average turnaround time: 9 s Timeline for job sequence B, D, A, C using the SJN algorithm
Ex: Shortest Remaining Time Arrival time: 0 1 2 3 Job: A B C D CPU cycle: 6 3 1 4 Job: A B C D Turnaround: 14 4 1 6 Average Turnaround: 6.25s Timeline for job sequenceA, B, C, D using the preemptiveSRT algorithm
Shortest Remaining Time • Preemptive version of the SJN algorithm • Processor allocated to job closest to completion • Current job can be preempted if newer job in READYqueue has shorter time to completion • Cannot be implemented in interactive system • Requires advance knowledge of the CPU time required to finish each job • SRT involves more overhead than SJN • OS monitors CPU time for all jobs in READY queueand performs context switching
Scheduling in Batch Systems Three level scheduling
Schedulers • Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue. • Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU.
Schedulers (Cont.) • Short-term scheduler is invoked very frequently (milliseconds) (must be fast). • Long-term scheduler is invoked very infrequently (seconds, minutes) (may be slow). • controls the degree of multiprogramming. • Processes can be described as either: • I/O-bound process – spends more time doing I/O than computations, many short CPU bursts. • CPU-bound process – spends more time doing computations; few very long CPU bursts.
Context Switch • When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process. • Context-switch time is overhead; the system does no useful work while switching. • Time dependent on hardware support.
Round Robin • Preemptive • Used extensively in interactive systems • Based on a predeterminedslice of time (time quantum) that’s given to each job • Size of time quantum crucial to system performance • Usually varies from 100 ms to 1-2 s • Ensures CPU is equally shared among all activeprocesses and is not monopolized by any one job
Ex: Round Robin Arrival time: 0 1 2 3 Job: A B C D CPU cycle: 8 4 9 5 Job: A B C D Turnaround: 20 7 24 22 Average Turnaround: 18.25 s Time slice: 4ms Timeline for job sequenceA, B, C, D using the preemptive round robin algorithm
Round Robin (continued) • If Job’s CPU cycle > time quantum • Job is preempted and put at the end of the READY queue and its information is saved in its PCB • If Job’s CPU cycle < time quantum • If job is finished, all resourcesallocated to it are released & completed job is returned touser • If interrupted by I/O request, then infois saved in PCB & it is linked at end of theappropriate I/O queue • Once I/O request is satisfied, job returns to end of READY queue to await allocation of CPU
Round Robin (continued) • Efficiency depends on the size of time quantum in relation tothe average CPU cycle • If the quantum is too large - larger than most CPUcycles • Algorithm reduces to the FCFS scheme • If the quantum is too small • Amount of context switching slows down the execution of the jobs • Amount of overhead is dramatically increased
Round Robin (continued) • General rules of thumb for selecting the proper time quantum: • Should be long enough to allow 80% of CPU cycles to run tocompletion • Should be at least 100 times longer than the time required to performone context switch • These rules are flexible and depend on the system
Scheduling in Interactive Systems A scheduling algorithm with four priority classes
Multiple-Level Queues • Work in conjunction with several other schemes • Found in systems with jobs that can be grouped according to a common characteristic • Priority-based system with different queues for each priority level • System with all CPU-bound jobs in one queue and all I/O-bound jobs inanother • Hybrid system with batch jobs in background queue and interactive jobs in aforeground queue
Multiple-Level Queues (continued) • Four primary methods to the movement of jobs: • No Movement Between Queues • Movement Between Queues • Variable Time Quantum Per Queue • Aging
Multiple-Level Queues • No Movement Between Queues: • The processor is allocated to the jobs in the high-priority queue in FCFS fashion • Allocated to jobs in lower priority queues only when the high priority queues are empty • Movement Between Queues • Adjusts the priorities assigned to each job • A job may also have its priority increased • Good in interactive systems
Multiple-Level Queues • Variable Time Quantum Per Queue: • Each of the queues is given a time quantum twice as long as the previousqueue • CPU-bound job can execute forlonger and longer periods of time, thus improving its chances of finishing faster • Aging: • System moves the old job to the next highest queue, and so on until it reaches the top queue • Ensures that jobs in the lower-level queues will eventually completetheir execution
Scheduling in Real-Time Systems • Schedulable? • If the sum of the ratios CPU Time to Period time is less than one • Sum(CPU/Period) <= 1
Policy versus Mechanism • Separate what is allowed to be done with how it is done • a process knows which of its children threads are important and need priority • Scheduling algorithm parameterized • mechanism in the kernel • Parameters filled in by user processes • policy set by user process
Thread Scheduling Possible scheduling of user-level threads • 50-msec process quantum • threads run 5 msec/CPU burst
Kernel-level Thread Scheduling Possible scheduling of kernel-level threads • 50-msec process quantum • threads run 5 msec/CPU burst
Deadlocking over Resources • An object granted • Hardware (disk, cpu) • Piece of Information (memory, record in DB) • Preemptable & non-preemptable • Memory vs. Writing CD-ROM
Utilizing a Resource • Protect “Critical Region” • Request resource • Use Resource • Release resource • Use a semaphore/mutex to get/release lock on resource
Deadlock Defined • From our more playful days … • I’ve got the ball and want the bat • You’ve got the bat and want the ball • “A set of processes is deadlocked if each process in the set is waiting for an event that only another process in the set can cause.”
D A S T U R B C Process Aholdingresource R Process Brequestingresource S Circularity = Deadlock Resource Allocation Graphs Which are ball and bat? Which are the two players?
Conditions for Deadlock • Mutual exclusion of resource • Hold and Wait (processes with a resource can request other resources) • Non-preemptable resources • Circular wait (chain of processes in wait) • See RAGs (previous slide)
Dealing with Deadlock • Ostrich Algorithm • Detection & Recovery • Dynamic Avoidance • Prevention
Ostrich Algorithm • Stick your head in the sand and pretend there is no problem at all • What is the typical use of the system? • What is the probability of deadlock? • Do the costs associated with dealing w/ deadlock outweigh the benefits?
Summary • Scheduler responsible for many goals • Use algorithm to meet goals of the system/users • Scheduling algorithms complex • Know your arithmetic! • Every operating system must dynamically allocate a limited number of resources while avoiding the two extremes of deadlock and starvation • Several methods of dealing with deadlocks include prevention, avoidance, and detection and recovery
Thurs, Feb 22, Complete Deadlock • Resources & Deadlock • Ostrich Algorithm • Deadlock Detection (skip 3.4.2 Multiple Resources) • Deadlock Recovery (3.4.3) • Deadlock Avoidance (skip 3.5.4 Mult-Resource) • Deadlock Prevention