deadlock chapter 3 thursday, february 22, 2007. today’s schedule assignment #4 from chapter 3...

29
Deadlock Chapter 3 Thursday, February 22, 2007

Upload: philomena-osborne

Post on 30-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Deadlock

Chapter 3

Thursday, February 22, 2007

Today’s Schedule Assignment #4 from Chapter 3 posted Deadlock - Chapter 3

Skip multiple resources (3.4.2 & 3.5.4)

Today’s Objectives

You will be able to describe: Several causes of system deadlock The difference between preventing and

avoiding deadlocks How to detect and recover from deadlocks How to prevent deadlock

Overview A lack of process synchronization results in

deadlock or starvationDeadlock:

A system-wide tangle of resource requests that begins when two or more jobs are put on hold

Each job waiting for a vital resource to become available The jobs come to a standstill Resolved via external intervention

Starvation: Infinite postponement of a job

Starvation

Which of the following scheduling algorithms could result in starvation? If so, how?

First-come, First-served Shortest job first Round robin Priority

Deadlock

Affects more than one job, hence more serious than starvation

System (not just a few programs) is affected as resources are being tied upe.g., Traffic jam

Deadlock in Spooling Virtual device: Sharable device—e.g., a printer

transformed by installing a high-speed device, a disk, between it and the CPU

Spooling: Disk accepts output from several users and acts as a temporary storage area for all output until printer is ready to accept it

Deadlock in spooling: If printer needs all of a job's output before it will begin printing, but spooling system fills available disk space with only partially completed output

Deadlock Defined

From our more playful days … I’ve got the ball and want the batYou’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.”

Modeling DeadlocksResource Allocation Graphs

Process P1 holds Resource R1

Process P1 requests Resource R1

A B CHow deadlock occurs

Cycle formed!!

How deadlock can be avoided

(o) (p) (q)

Conditions Required for Deadlock

1. Mutual exclusion conditioneach resource assigned to 1 process or is available

2. Hold and wait conditionprocess holding resources can request additional

3. No preemption conditionpreviously granted resources cannot forcibly taken away

4. Circular wait conditionmust be a circular chain of 2 or more processeseach is waiting for resource held by next member of the chain

Dealing with Deadlock

Ostrich Algorithm Ignore deadlock possibility!

Detection & Recovery Dynamic Avoidance

careful resource allocation Prevention

negating one of the four necessary conditions

Ostrich Algorithm

Stick your head in the sand and pretend there is no problem at all

Reasonable if deadlocks occur very rarely cost of prevention is high

UNIX and Windows takes this approach Trade off between

convenience correctness

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?

Detecting Deadlock – Find Cycle

Note the resource ownership and requests A cycle can be found within the graph, denoting

deadlock

How to Recover from Deadlock?

Recovery through preemption take a resource from some other process depends on nature of the resource

Recovery through rollback checkpoint a process periodically use this saved state restart the process if it is found deadlocked

Recovery through killing processes crudest but simplest way to break a deadlock kill one of the processes in the deadlock cycle

Avoid Deadlock Resource Trajectories Show

I1 I2 I3 I5I4

I6

I8

I7

I9

PrinterPlotter

Printer

Plotter

p q

sr

t u

A

BImpossible

Unsafe

Safe/Unsafe States

Safe State Not in deadlock There is some scheduling order with which all

processes can finish

Unsafe State Not necessarily deadlock Doesn’t guarantee deadlock But can’t guarantee deadlock will be avoided

Avoid Deadlock

Safe State

Unsafe Statedeadlock

Banker’s Algorithm – Avoid Deadlock

Regulate resource allocationNo loan exceeding bank’s total capitalCustomers have a pre-set maximum creditMay not borrow over the limitTotal of all loans may not exceed bank’s

capital

Avoidance (continued)

The bank started with $10,000 and has remaining capital of $4,000 after these loans

Safe state: Bank still has enough money left after loans to satisfy the maximum requests of C1, C2, or C3

Avoidance (continued)

Table 5.5: The bank has remaining capital of only $1,000 after these loans and therefore is in an “unsafe state”

Unsafe state: Bank does not have enough money left after loans to satisfy the maximum requests of C1, C2, or C3

Avoidance (continued)

Table 5.6: A safe state: six devices are allocated and four units are still available

Same banking principles can be applied to an operating system

Avoidance (continued)

An unsafe state: only one unit is available but every job requires at least two to complete its execution

Deadlock Avoidance

To avoid deadlock, OS must make sure:Never satisfy a request that moves it from a

safe state to an unsafe oneMust identify the job with the smallest number

of remaining resourcesNumber of available resources is always

equal to, or greater than, the number needed for the selected job to run to completion

Attack Deadlock Conditions Attack Mutual Exclusion Attack Hold and Wait

Require all process to request all resources before starting execution

Resource must temporarily release all the resources it currently holds

Attack No preemption Just take away resource, does not work

Attack Circular Wait condition Process is entitled to single resource at any moment Use of global numbering

All requests made in numerical order

Summary

Resources can be preemptable & nonpreemptable

Deadlock can cause processes to halt (stop making progress)

We can detect deadlock RAGs are quite useful to detect deadlock Ostrich algorithm quite popular

Summary (cont) Trajectories can help in process scheduling to

avoid deadlock Avoid unsafe states Prevent Deadlock by attack one of four

necessary conditions Ordering resources avoids circular wait Keep processes from starving – all processes

must make some progress

Tuesday, Feb 27, Memory

Complete Assignment #4 Begin reading Chapter 4 –

Memory Management