Deadlocks (cont ) Deadlocks (cont.) Suppose that two pp processes - - PDF document

deadlocks cont deadlocks cont
SMART_READER_LITE
LIVE PREVIEW

Deadlocks (cont ) Deadlocks (cont.) Suppose that two pp processes - - PDF document

OPERATING SYSTEMS OPERATING SYSTEMS Design and Implementation Instructor: Hadi Salimi Hadi Salimi Computer Engineering Department IRAN University of Science and Technology hsalimi@iust ac ir hsalimi@iust.ac.ir Deadlocks (cont ) Deadlocks


slide-1
SLIDE 1

OPERATING SYSTEMS OPERATING SYSTEMS

Design and Implementation Instructor:

Hadi Salimi Hadi Salimi Computer Engineering Department IRAN University of Science and Technology hsalimi@iust ac ir hsalimi@iust.ac.ir

Deadlocks (cont ) Deadlocks (cont.)

Suppose that two

pp processes have gained access to two resources.

P2 P1

If they request for the other

resource and the resources

P2 P1

resource and the resources could not be shared, then the deadlock occurs.

r2 r1

the deadlock occurs.

This situation can also be

  • ccurred in software (DB)

Operating Systems - By: Hadi Salimi - IUST-CE 2 5/29/2009

  • ccurred in software. (DB)
slide-2
SLIDE 2

Resources Resources

A resource is anything that can be used by

y g y a process, like disks, printers, files and so

  • n.

Resources can be preemptable or non-

preemptable. preemptable.

Memory is an example of a preemptable

resource but printer is a non-preemptable resource, but printer is a non-preemptable

  • ne.

Operating Systems - By: Hadi Salimi - IUST-CE 3 5/29/2009

Resources Resources

The sequence of events required to use a

q q resource is given below in an abstract form.

Request the resource. Use the resource. Release the resource.

Operating Systems - By: Hadi Salimi - IUST-CE 4 5/29/2009

slide-3
SLIDE 3

Deadlock Deadlock

Deadlock can be defined formally as

y follows:

A set of processes is deadlocked if each

p process in the set is waiting for an event that

  • nly another process in the set can cause.

For this model, we assume that processes

have only a single thread and that there y g are no interrupts possible to wake up a blocked process.

Operating Systems - By: Hadi Salimi - IUST-CE 5 5/29/2009

Deadlock Conditions Deadlock Conditions

Mutual exclusion condition. Each resource is either

currently assigned to exactly one process or is available currently assigned to exactly one process or is available.

Hold and wait condition. Processes currently holding

resources that were granted earlier can request new resources that were granted earlier can request new resources.

No preemption condition. Resources previously granted

p p p y g cannot be forcibly taken away from a process. They must be explicitly released by the process holding them.

Circular wait condition. There must be a circular chain of

two or more processes, each of which is waiting for a resource held by the next member of the chain.

Operating Systems - By: Hadi Salimi - IUST-CE 6 5/29/2009

slide-4
SLIDE 4

Deadlock Conditions Deadlock Conditions

All four of these conditions must be

present for a deadlock.

If one or more of these conditions is If one or more of these conditions is

absent, no deadlock is possible.

Operating Systems - By: Hadi Salimi - IUST-CE 7 5/29/2009

Deadlock Modeling Deadlock Modeling

Resource R assigned to process A Process B is requesting/waiting for resource S

q g g

Process C and D are in deadlock over resources

T and U

Operating Systems - By: Hadi Salimi - IUST-CE 8 5/29/2009

slide-5
SLIDE 5

Some Questions Some Questions

Is it possible for a batch system to go to

p y g any deadlocks?

What if all schedulers act like this? What if non of the processes do any I/O at all?

Operating Systems - By: Hadi Salimi - IUST-CE 9 5/29/2009

Deadlock Modeling Deadlock Modeling

Operating Systems - By: Hadi Salimi - IUST-CE 10 5/29/2009

slide-6
SLIDE 6

Deadlock Modeling Deadlock Modeling

Operating Systems - By: Hadi Salimi - IUST-CE 11 5/29/2009

Strategies Strategies

Just Ignore the problem.

g p

Detection and recovery Prevention by negating one of the four Prevention, by negating one of the four

required conditions. D i id b f l

Dynamic avoidance by careful resource

allocation.

Operating Systems - By: Hadi Salimi - IUST-CE 12 5/29/2009

slide-7
SLIDE 7

Ostrich Algorithm Ostrich Algorithm

In some point of view, the best solution is

p to pretend that there is no problem at all.

How often deadlock occurs? Does the How often deadlock occurs? Does the

frequency is greater than the frequency of system crash? system crash?

Whenever a deadlock occurs, just reboot

the system the system.

Linux and MINIX act like this.

Operating Systems - By: Hadi Salimi - IUST-CE 13 5/29/2009

Detection and Recovery Detection and Recovery

The system monitors the

t d th l f request and the release of the resources and updates its graph. its graph.

In the case of any release or

request, the graph is checked to see is there any cycle or not. If yes, kill a process in the cycle process in the cycle.

Any important point about

killing a process?

Operating Systems - By: Hadi Salimi - IUST-CE 14 5/29/2009

g p

slide-8
SLIDE 8

Detection and Recovery Detection and Recovery

A somewhat cruder method is not even

maintain the resource graph.

But the operating system should But the operating system should

periodically check to see if there are any processes that have been continuously processes that have been continuously blocked for more than say, 1 hour.

Such processes are killed Such processes are killed.

Operating Systems - By: Hadi Salimi - IUST-CE 15 5/29/2009

Deadlock Prevention Deadlock Prevention

Put suitable restrictions on processes so

p deadlocks are impossible.

Four deadlock conditions stated by Four deadlock conditions stated by

Coffman, provide a clue for some solutions. solutions.

How to attack these 4 conditions?

Operating Systems - By: Hadi Salimi - IUST-CE 16 5/29/2009

slide-9
SLIDE 9

Attack to Mutual Exclusion Attack to Mutual Exclusion

If no resource was assigned exclusively to

g y a single process, we would never have deadlocks.

But how a resource like a printer can be

used non-exclusively? used non exclusively?

Answer:

By spooling printer output several processes By spooling printer output, several processes

can generate output at the same time.

Only the printer daemon is using the printer Only the printer daemon is using the printer.

Operating Systems - By: Hadi Salimi - IUST-CE 17 5/29/2009

Attack to Hold and Wait Attack to Hold and Wait

One way to achieve this goal is to require

y g q all processes to request all their resources before starting execution. g

Defects:

Many processes do not know which resources Many processes do not know which resources

they need.

Resources will not be used optimally. Resources will not be used optimally.

Operating Systems - By: Hadi Salimi - IUST-CE 18 5/29/2009

slide-10
SLIDE 10

Attack to no preemption Attack to no preemption

Attacking to this condition is not easy.

g y

If a process has been assigned the printer

and is in the middle of printing, taking and is in the middle of printing, taking away the printer because of a needed plotter is not acceptable. plotter is not acceptable.

Operating Systems - By: Hadi Salimi - IUST-CE 19 5/29/2009

Attack to circular wait Attack to circular wait

A process is allowed to just have one

p j resource at a time.

Is it reasonable?

Another way is to provide a global

numbering for resources and all requests numbering for resources and all requests must be made in numerical order.

Operating Systems - By: Hadi Salimi - IUST-CE 20 5/29/2009

slide-11
SLIDE 11

All Approaches All Approaches

Condition Approach Mutual Exclusion Spool Everything Hold and Wait Request all resources initially No Preemption Take resources away Circular Wait Order resources numerically Circular Wait Order resources numerically Summary of all approaches to deadlock prevention.

Operating Systems - By: Hadi Salimi - IUST-CE 21 5/29/2009

Deadlock Avoidance Deadlock Avoidance

Banker’s Algorithm

g

Bankers’ algorithm: before granting a request, ensure

that a sequence exists that will allow all processes to complete complete.

Operating Systems - By: Hadi Salimi - IUST-CE 22 5/29/2009

slide-12
SLIDE 12

Banker’s Algorithm Banker s Algorithm

E: Existing resources E: Existing resources P: Possessed resources A: Available resources

Example of banker's algorithm with multiple resources

Operating Systems - By: Hadi Salimi - IUST-CE 23 5/29/2009

Example of banker s algorithm with multiple resources