Deadlock and Starvation

Size: px
Start display at page:

Download "Deadlock and Starvation"

Transcription

1 Chapter 6 Deadlock and Starvation We now look into two more issues that make concurrent processing so much more difficult: deadlock and starvation. We will look at the problems first, and discuss a few ways to deal with them. Deadlock can be defined as the permanent blocking of a set of processes that either compete for system resources or communicate with each other. There is no efficient solution in the general case. We ran into it a few times when solving the consumer/producer problem. All deadlocks involve conflicting needs for resources by two or more processes. 1

2 An example A common example is the traffic deadlock, as shown in the following situation, where four cars have arrived at a four-way stop intersection at approximately the same time. More specifically, Car traveling north needs quadrants 1 and 2; car traveling west needs quadrants 2 and 3; car traveling south needs quadrants 3 and 4; and car traveling east needs quadrants 4 and 1. 2

3 What will happen? The normal rule of the road is that a car at a four way stop should yield to a car immediately to its right. This will work if there are only two or three cars competing for the quadrants. For example, if only the northbound and westbound cars arrive at the intersection, the northbound car will wait for the westbound car. On the other hand, if all the four cars come at the same time. Either all of them stick to the rule, and no one can proceed(circular wait); or all the four ignore the rule, and proceed. Then, each of them will seize a quadrant, but could not get the other (deadlock). Either way, the four cars will get stuck. 3

4 Another example Assume that there are two processes, P and Q. Process P requests resources in the following pattern: try to get A and then B; Release A, and then release B. Process Q just does the opposite. This situation can be summarized in the following picture. Notice that the shaded areas are no passing zones. (?) 4

5 What could happen? There could be a few situations, as shown in the above picture: 1. Q gets B, and then A; later on, it will release B, then A. When P resumes control, it is able to complete without any problem. 2. Q gets B, and then A. P executes for a while, then blocks on a request for A. Q resumes, and then releases B, and A. When P resumes its execution, it is also able to finish. 3. Q gets B and then P gets A. This will lead to a deadlock.(?) 4. P gets A and then Q gets B. This will also lead to deadlock.(?). 5 and 6 are symmetric to 1 and 2, respectively. 5

6 How to get out of this mess? Apparently, weather or not a deadlock occurs depends on both the dynamics of the execution and on the details of the application. For example, if P does not need both resources at the same time, then it may have the following form:..., Get A,..., Release A,..., Get B,..., Release B. Then, deadlock will not occur. Homework: Problem

7 Resource category Resources can be categorized into reusable and consumable. A reusable resource can be safely used by only one process at a time and is later released so that another resource can use it. Examples of such resources include processor, I/O channels, various memories, and data files. Consider two processes that compete for exclusive access to a disk D and a tape drive T, as shown in the following table. Step Process P Step Process Q p 0 Request(D) q 0 Request(T) P 1 Lock(D) q 1 Lock(T) p 2 Request(T) q 2 Request(D) p 3 Lock(T) q 3 Lock(D) p 4 Execute q 4 Execute p 5 Unlock(D) q 5 Unlock(T) p 6 Unlock(T) q 6 Unlock(D) 7

8 What could happen? It is easy to see that deadlock will occur if each process holds one resource and asks for the other. For example, if a multiprogramming system interleaves the two processes as follows: p 0 p 1 q 0 q 1 p 2 q 2. Although it may seem to be a programming error(why they are interleaved this way, out of a total of 14!/7!7! = 3,432 interleaving patterns?), the cause is buried in the complicated and unpredictable dispatching behavior, which makes detection of such problem difficult, if even possible. One way to deal with it is to impose constraints on the order in which resources are requested so that the above sequence will not occur. 8

9 Another example Assume that we have 200 MB available in the main memory, and two processes have the following requesting sequence. If both processes go through the first request and come to the second, a deadlock will occur.(?) Process P Process Q Request 80 MB Request 70 MB Request 60 MB Request 80 MB The best way to deal with this sort of problems is to use virtual memory. 9

10 Consumable resource A consumable resource can be created and destroyed, and there is no limit on the number of such resources of a particular type. When such a resource is acquired by a process, the resource ceases to exist. Examples include interrupts, signals, messages and information in I/O buffers. An example of deadlock with this sort of resources is shown below. Process P Process Q Receive(Q) Receive(P) Send(Q, M1) Send(P, M2) A design error is the cause of such problems, but such an error is difficult to detect. Question: What do you do when picking up the phone? 10

11 When will a deadlock occur? For a deadlock to occur, the following three conditions must be present simultaneously: 1. Mutual exclusion, namely, only one process may use a resource at a time. 2. Hold and wait, namely, a process may hold some allocated resources while waiting for the others to be assigned. 3. No preemption, namely, no resources can be forcibly removed from a process holding it. 11

12 Why these conditions? In many cases, such conditions are desirable. For example, we have seen in many cases mutual exclusion is necessary to guarantee the integrity and consistency of databases. In a multi-process system, many processes will compete for a limited number of resources, thus, the hold-and-wait also has to occur. Preemption should not be done arbitrarily, particularly, it has to be associated with a rollback mechanism to prevent loss of data. 12

13 The catalyst Although the above three conditions are necessary, their combination is not sufficient. For a deadlock to happen, there has to be another piece: 4. Circular wait, namely, a closed chain of processes exist, such that each process holds at least one resource needed by the next process. Remember that we need two semaphores to lock up the processes. Homework: Problem

14 Deadlock prevention This strategy is to design a system in such a way that no deadlock could possibly happen. More specifically, an indirect method is to prevent any one of the above three necessary conditions from happening; while a direct method is to prevent the fourth, sufficient, condition from happening. Mutual exclusion has to be supported in general. However, some resources, such as data files, can allow multiple accesses for reads, but only exclusive writes. (Two locks in database) Hold and wait can be prevented by requiring that all the resources a process needs have to be acquired at one time, and then gets blocked when all the resources are obtained. This method is inefficient since a process now has to wait for all its resources, although it can get started with only a few. 14

15 The condition of no preemption can be alleviated in a few ways. 1) if a process is denied further requests, it must release the resources it has already acquired. 2) if a process requests a resource that is held by another process, OS can take the resource away from that process and give it to the first one. The circular wait condition can be prevented by enforcing a linear order for resource types: If a process has obtained resource R, it can only request resources of type following R in the order. Assume that R i proceeds R j if i < j. Then two processes, A and B can not be deadlocked because A has acquired R i and requested R j ; while B has got R j and requested R i, which cannot happen because of the rule. Obviously, this may also unnecessarily slow down the whole process. But, compromise is the key. 15

16 Deadlock avoidance Deadlock avoidance allows the three necessary conditions but makes sure that the deadlock point will never be reached. Therefore, this strategy will allow more concurrency than the previous one. With an avoidance policy, a decision is dynamically made if the current resource allocation request will potentially lead to a deadlock, and takes actions accordingly. Thus, this strategy needs knowledge of future process request. We will discuss two approaches under this policy: 1) Don t start a process if its demands might lead to a deadlock. 2) Don t grant a request for a resource to a process if it might lead to deadlock. Homework: Problems 6.2 and

17 Process initiation denial Consider a system of n processes and m different types of resources. Let s define total amount of resources by Resource = (R 1, R 2,..., R m ), total amount of available resource by Available = (V 1, V 2,..., V m ), and maximum need by each process for each resource by maxn eed = and current allocation by Allocation = C 1,1 C 1,2 C 1,m C 2,1 C 2, C 2,m. C n,1 C n,2 C n,m A 1,1 A 1,2 A 1,m A 2,1 A 2, A 2,m. A n,1 A n,2 A n,m. 17

18 For all resource i, Now what? R i = V i + n k=1 A k,i. The total resource equals what s available plus whatever allocated. For all process k, and resource i, C k,i R i. No body asks for more than what we have. For all process k, and resource i, A k,i C k,i. We cannot give out more than what we have. The maxneed matrix shows the maximum need of each process for each resource. The information must be declared beforehand so that an avoidance strategy can work. This is not real... 18

19 To play it safe Now, we can define a deadlock avoidance policy that will deny a new process if its resource request might lead to a deadlock as follows: Start a new process, P n+1, only if, for all resource i R i C n+1,i + n k=1 C k,i. We will start a new process if whatever it needs plus whatever all the others need is no more than what we have. This policy is hardly optimal since it assumes the worst scenario, namely the maximum need. Could we be more generous? Yes, we can. 19

20 Resource allocation denial Assume that for a bunch of processes, each of them has one or more resources allocated to it. The state of a system is just the allocation of resources to processes, and can be described by the afore-defined matrixes. A safe state is one in which there is at least one sequence of resource allocation that does not lead to a deadlock. The problem is that, when we can t make everybody happy at the same time, who should we make happy first so that everybody will be eventually happy. Technically, we are looking for a deadlock avoidance sequence. I am sure it cannot be done all the time, but we might be able to do it sometimes... 20

21 A story with a happy ending Below shows a snapshot of resource allocation to four processes. We have the following resource vector (R 1, R 2, R 3 ): R 1 R 2 R , we have nine pieces of R 1, three pieces of R 2 and six pieces of R 3. and theavailable vector (V 1, V 2, V 3 ): R 1 R 2 R We have no R 1 left, one piece each for the other two... 21

22 What do you want? We have the following maximum need C i,j : R 1 R 2 R 3 P P P P , and the following allocation data A i,j, i.e., what you have got: R 1 R 2 R 3 P P P P

23 What else? The current need, namely the difference of the above two matrices: what I still want, besides what I have got: R 1 R 2 R 3 P P P P Mathematically speak, for all k, i, the current need of resource R i by process P k is simply C k,i A k,i. 23

24 Is this a safe state? Since we are looking for at least one sequence, we might try to look for any process that can be completed first, starting with what are needed and what are available. We can t start with P 1, since it has only one unit of R 1 allocated, and it needs 2 more units of R 1, but there is none left. Neither P 3 nor P 4 works, either. On the other hand, if we further allocate the last unit of R 3 to P 2, then P 2 can run to its completion, and release everything back to the system. The available vector will turn to the following, and we are rich. R 1 R 2 R All the rest can then run to their completion. Thus, the initial allocation is a safe state. 24

25 A general strategy When a bunch of processes makes requests for a set of resources, we check if there is a process, for which, all its current need can be satisfied based on what we have, and, if so, change the system state accordingly since this would lead to a safe state. Mathematically speaking, if, for some Process P k, and for all resource i [1, m], V i C k,i A k,i. We will meet all its needs, C k,i A k,i, i [1, m], then get them back after it completes. Compared with the original deadlock denial policy, it is not necessary to preempt and rollback processes, and is less restrictive, although we still need to know the maximum need for all kinds of resource by each process. Homework: Problem

26 Deadlock detection With deadlock detection, requested resources are granted whenever possible. However, periodically, OS tries to detect the circular wait condition; and will try to recover the system, if such a circular wait is spotted. Essentially, it proceeds by marking processes that are not deadlocked. 26

27 A detection algorithm Initially, all processes are not marked. 1. Mark each process that has a row in the Allocation matrix containing all zeros. This process has got nothing, thus holding nothing for other processes. 2. Initialize a vector W, equal to the available vector. 3. Find an index i such that process i is currently unmarked and the i th row of the Current need matrix is no more than W. If no such i is found, terminate the algorithm. (Everyone wants more than what s available...) 4. Otherwise, mark process i and add the corresponding row of the allocation matrix to W. (Assume P i gets it, runs through and returns everything.) Return to step 3. A deadlock exists if and only if there are unmarked processes at the end of the algorithm. 27

28 What is going on? The algorithm essentially looks for a process whose requests can all be satisfied, and then assume that the resources are granted to such a process, which runs to its completion, and then releases all the resources. It then looks for another such process. For example, given a situation represented by the following resource vector: R 1 R 2 R 3 R 4 R and the available vector: R 1 R 2 R 3 R 4 R , 28

29 together with the following current need matrix: R 1 R 2 R 3 R 4 R 5 P P P P , and the following allocation matrix: R 1 R 2 R 3 R 4 R 5 P P P P We mark P 4 first, and set W to (0,0,0,0,1). Since the need by P 3 can be met with the currently available resources, P 3 is marked and W is reset to W + (0,0,0,1,0) = (0,0,0,1,1,). At this point, no other processes can be marked, indicating that P 1 and P 2 are deadlocked: P1, with R 3, wants R 2, and P 2 does the opposite. 29

30 Deadlock recovery Once deadlock is detected, we need to recover the system by following one of several approaches. 1. Abort all the deadlocked processes, both P 1 and P 2 in this case. This is one of the most frequently followed approach. 2. Back up each deadlocked process to its previously recorded state, and restart all processes. This requires some restart and rollback mechanism(remember our DB stuff?), and deadlock may occur again. 3. Successively abort deadlocked processes until deadlock no longer exists. The order for the abortion is certainly an issue. (P 1, P 2 ), or (P 2, P 1 )? Also, after each abortion, the above detection algorithm has to be applied again. 4. Successively preempt resources until deadlock no longer exists. Again, order is an issue. 30

31 An integrated strategy Obviously, any of the afore-discussed strategies has its strength and weakness. Rather than using just one, it might make more sense to use a combination of them to deal with different situation. One approach could be grouping resources into a number of different classes; use the linear order to prevent circular wait; and within each class, use the most appropriate algorithm for that class. Homework: Self-study 6.6 on the philosopher problem, another classic one, and discuss in detail how the first solution leads to a deadlock, while the second prevents it from happening. 31

CSE 306/506 Operating Systems Deadlock. YoungMin Kwon

CSE 306/506 Operating Systems Deadlock. YoungMin Kwon CSE 306/506 Operating Systems Deadlock YoungMin Kwon Deadlock A set of processes are deadlocked if Each process in the set is blocked and Waiting for an event that can be triggered only from another process

More information

Deadlock and Starvation

Deadlock and Starvation Deadlock and Starvation Deadlock Permanent blocking of a set of processes that either compete for system resources or communicate with each other Involve conflicting needs for resources by two or more

More information

Chapter 6 Concurrency: Deadlock and Starvation

Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles Chapter 6 Concurrency: Deadlock and Starvation Seventh Edition By William Stallings Edited by Rana Forsati CSE410 Outline Principles of deadlock Deadlock

More information

ECE519 Advanced Operating Systems

ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (6 th Week) (Advanced) Operating Systems 6. Concurrency: Deadlock and Starvation 6. Outline Principles of Deadlock

More information

Concurrency: Deadlock and Starvation. Chapter 6

Concurrency: Deadlock and Starvation. Chapter 6 Concurrency: Deadlock and Starvation Chapter 6 1 What is Deadlock Permanent blocking of a set of processes that either compete for system resources or communicate with each other Involve conflicting needs

More information

Deadlock. Concurrency: Deadlock and Starvation. Reusable Resources

Deadlock. Concurrency: Deadlock and Starvation. Reusable Resources Concurrency: Deadlock and Starvation Chapter 6 Deadlock Permanent blocking of a set of processes that either compete for system resources or communicate with each other No efficient solution Involve conflicting

More information

Concurrency: Deadlock and Starvation

Concurrency: Deadlock and Starvation Concurrency: Deadlock and Starvation Chapter 6 E&CE 354: Processes 1 Deadlock Deadlock = situation in which every process from a set is permanently blocked, i.e. cannot proceed with execution Common cause:

More information

Last Class: Monitors. Real-world Examples

Last Class: Monitors. Real-world Examples Last Class: Monitors Monitor wraps operations with a mutex Condition variables release mutex temporarily C++ does not provide a monitor construct, but monitors can be implemented by following the monitor

More information

Operating Systems: William Stallings. Starvation. Patricia Roy Manatee Community College, Venice, FL 2008, Prentice Hall

Operating Systems: William Stallings. Starvation. Patricia Roy Manatee Community College, Venice, FL 2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 6 Concurrency: Deadlock and Starvation Patricia Roy Manatee Community College, Venice, FL 2008, Prentice Hall Deadlock

More information

Basic concepts and Terminologies

Basic concepts and Terminologies Deadlock Basic Terminology & Definitions Deadlock, livelock, starvation, resource allocation graph Conditions To Deadlock, Approaches To Deadlock Mutual exclusion, hold and wait, no preemption, circular

More information

Operating Systems ECE344. Ding Yuan

Operating Systems ECE344. Ding Yuan Operating Systems ECE344 Ding Yuan Deadlock Synchronization is a live gun we can easily shoot ourselves in the foot Incorrect use of synchronization can block all processes We have talked about this problem

More information

Chapter 8: Deadlocks. Bridge Crossing Example. The Deadlock Problem

Chapter 8: Deadlocks. Bridge Crossing Example. The Deadlock Problem Chapter 8: Deadlocks Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock 8.1 Bridge Crossing Example Bridge has one

More information

System Model. Types of resources Reusable Resources Consumable Resources

System Model. Types of resources Reusable Resources Consumable Resources Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock System Model Types

More information

OPERATING SYSTEMS. Deadlocks

OPERATING SYSTEMS. Deadlocks OPERATING SYSTEMS CS3502 Spring 2018 Deadlocks Chapter 7 Resource Allocation and Deallocation When a process needs resources, it will normally follow the sequence: 1. Request a number of instances of one

More information

Chapter 7: Deadlocks

Chapter 7: Deadlocks Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Chapter

More information

Bridge Crossing Example

Bridge Crossing Example CSCI 4401 Principles of Operating Systems I Deadlocks Vassil Roussev vassil@cs.uno.edu Bridge Crossing Example 2 Traffic only in one direction. Each section of a bridge can be viewed as a resource. If

More information

COMP 3713 Operating Systems Slides Part 3. Jim Diamond CAR 409 Jodrey School of Computer Science Acadia University

COMP 3713 Operating Systems Slides Part 3. Jim Diamond CAR 409 Jodrey School of Computer Science Acadia University COMP 3713 Operating Systems Slides Part 3 Jim Diamond CAR 409 Jodrey School of Computer Science Acadia University Acknowledgements These slides borrow from those prepared for Operating System Concepts

More information

Deadlock and Starvation

Deadlock and Starvation Deadlock and Starvation Deadlock Permanent blocking of a set of processes Processes are waiting on events, but the events can only be triggered by other blocked processes No simple, efficient solution

More information

Chapter 6 Concurrency: Deadlock and Starvation

Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles Chapter 6 Concurrency: Deadlock and Starvation Seventh Edition By William Stallings Operating Systems: Internals and Design Principles When two trains

More information

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Deadlock

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Deadlock CSE120 Principles of Operating Systems Prof Yuanyuan (YY) Zhou Using Semaphore to Share Resource 2 3 4 5 Process P(); { A.Down(); B.Down(); 0 6 use both resource B.Up(); A.Up(); } Process Q(); { A.Down();

More information

Chapter 8: Deadlocks. The Deadlock Problem

Chapter 8: Deadlocks. The Deadlock Problem Chapter 8: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock

More information

The Deadlock Problem. Chapter 8: Deadlocks. Bridge Crossing Example. System Model. Deadlock Characterization. Resource-Allocation Graph

The Deadlock Problem. Chapter 8: Deadlocks. Bridge Crossing Example. System Model. Deadlock Characterization. Resource-Allocation Graph Chapter 8: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined

More information

The Deadlock Problem. A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set.

The Deadlock Problem. A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set. Deadlock The Deadlock Problem A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set Example semaphores A and B, initialized to 1 P 0 P

More information

Chapter 7: Deadlocks

Chapter 7: Deadlocks Chapter 7: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock

More information

The Deadlock Problem (1)

The Deadlock Problem (1) Deadlocks The Deadlock Problem (1) A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set. Example System has 2 disk drives. P 1 and P 2

More information

Deadlock 1 Chapter 6

Deadlock 1 Chapter 6 Deadlock 1 Chapter 6 2 Deadlock A set of processes is deadlocked when each process in the set is blocked awaiting an event that can only be triggered by another blocked process in the set Permanent blocking

More information

Chapter 7: Deadlocks. Operating System Concepts 8 th Edition,

Chapter 7: Deadlocks. Operating System Concepts 8 th Edition, Chapter 7: Deadlocks, Silberschatz, Galvin and Gagne 2009 Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance

More information

Deadlock 1 Chapter 6

Deadlock 1 Chapter 6 Deadlock 1 Chapter 6 2 Deadlock A set of processes is deadlocked when each process in the set is blocked awaiting an event that can only be triggered by another blocked process in the set Permanent blocking

More information

Deadlocks. Operating System Concepts - 7 th Edition, Feb 14, 2005

Deadlocks. Operating System Concepts - 7 th Edition, Feb 14, 2005 Deadlocks Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock 7.2 Silberschatz,

More information

Chapter 7: Deadlocks. Operating System Concepts 8th Edition, modified by Stewart Weiss

Chapter 7: Deadlocks. Operating System Concepts 8th Edition, modified by Stewart Weiss Chapter 7: Deadlocks, Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance (briefly) Deadlock Detection

More information

Chapter 7: Deadlocks. Operating System Concepts 8 th Edition,

Chapter 7: Deadlocks. Operating System Concepts 8 th Edition, Chapter 7: Deadlocks, Silberschatz, Galvin and Gagne 2009 Chapter Objectives To develop a description of deadlocks, which prevent sets of concurrent processes from completing their tasks To present a number

More information

Chapter 7: Deadlocks. Operating System Concepts 8 th Edition,! Silberschatz, Galvin and Gagne 2009!

Chapter 7: Deadlocks. Operating System Concepts 8 th Edition,! Silberschatz, Galvin and Gagne 2009! Chapter 7: Deadlocks Operating System Concepts 8 th Edition,! Silberschatz, Galvin and Gagne 2009! Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling

More information

The Deadlock Problem

The Deadlock Problem The Deadlock Problem A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set. Example System has 2 disk drives. P 1 and P 2 each hold one

More information

Chapter 7 : 7: Deadlocks Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8th Edition, Chapter 7: Deadlocks

Chapter 7 : 7: Deadlocks Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8th Edition, Chapter 7: Deadlocks Chapter 7: Deadlocks, Silberschatz, Galvin and Gagne 2009 Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance

More information

Concurrency: Deadlock and Starvation. Chapter 6

Concurrency: Deadlock and Starvation. Chapter 6 Concurrency: Deadlock and Starvation Chapter 6 Deadlock Permanent blocking of a set of processes that either compete for system resources or communicate with each other Involve conflicting needs for resources

More information

Chapter 8: Deadlocks

Chapter 8: Deadlocks Chapter 8: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock

More information

Chapter 8: Deadlocks. The Deadlock Problem. System Model. Bridge Crossing Example. Resource-Allocation Graph. Deadlock Characterization

Chapter 8: Deadlocks. The Deadlock Problem. System Model. Bridge Crossing Example. Resource-Allocation Graph. Deadlock Characterization Chapter 8: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined

More information

Deadlock. Operating Systems. Autumn CS4023

Deadlock. Operating Systems. Autumn CS4023 Operating Systems Autumn 2017-2018 Outline Deadlock 1 Deadlock Outline Deadlock 1 Deadlock The Deadlock Problem Deadlock A set of blocked processes each holding a resource and waiting to acquire a resource

More information

Introduction to OS. Deadlock. MOS Ch. 6. Mahmoud El-Gayyar. Mahmoud El-Gayyar / Introduction to OS 1

Introduction to OS. Deadlock. MOS Ch. 6. Mahmoud El-Gayyar. Mahmoud El-Gayyar / Introduction to OS 1 Introduction to OS Deadlock MOS Ch. 6 Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Mahmoud El-Gayyar / Introduction to OS 1 Outline What is Deadlock? How to handle Deadlock? Deadlock Detection and Recovery

More information

Chapter 7: Deadlocks. Chapter 7: Deadlocks. The Deadlock Problem. Chapter Objectives. System Model. Bridge Crossing Example

Chapter 7: Deadlocks. Chapter 7: Deadlocks. The Deadlock Problem. Chapter Objectives. System Model. Bridge Crossing Example Silberschatz, Galvin and Gagne 2009 Chapter 7: Deadlocks Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance

More information

ICS Principles of Operating Systems. Lectures Set 5- Deadlocks Prof. Nalini Venkatasubramanian

ICS Principles of Operating Systems. Lectures Set 5- Deadlocks Prof. Nalini Venkatasubramanian ICS 143 - Principles of Operating Systems Lectures Set 5- Deadlocks Prof. Nalini Venkatasubramanian nalini@ics.uci.edu Outline System Model Deadlock Characterization Methods for handling deadlocks Deadlock

More information

Deadlocks. Deadlock Overview

Deadlocks. Deadlock Overview Deadlocks Gordon College Stephen Brinton Deadlock Overview The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection

More information

Deadlocks. Minsoo Ryu. Real-Time Computing and Communications Lab. Hanyang University.

Deadlocks. Minsoo Ryu. Real-Time Computing and Communications Lab. Hanyang University. Deadlocks Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention

More information

Chapter 7: Deadlocks. Operating System Concepts with Java 8 th Edition

Chapter 7: Deadlocks. Operating System Concepts with Java 8 th Edition Chapter 7: Deadlocks 7.1 Silberschatz, Galvin and Gagne 2009 Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock

More information

Module 7: Deadlocks. The Deadlock Problem. Bridge Crossing Example. System Model

Module 7: Deadlocks. The Deadlock Problem. Bridge Crossing Example. System Model Module 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined

More information

Last Class: Synchronization Problems!

Last Class: Synchronization Problems! Last Class: Synchronization Problems! Reader Writer Multiple readers, single writer In practice, use read-write locks Dining Philosophers Need to hold multiple resources to perform task Lecture 11, page

More information

Chapter 7: Deadlocks

Chapter 7: Deadlocks Chapter 7: Deadlocks Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from

More information

OPERATING SYSTEMS. Prescribed Text Book. Operating System Principles, Seventh Edition. Abraham Silberschatz, Peter Baer Galvin and Greg Gagne

OPERATING SYSTEMS. Prescribed Text Book. Operating System Principles, Seventh Edition. Abraham Silberschatz, Peter Baer Galvin and Greg Gagne OPERATING SYSTEMS Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne 1 DEADLOCKS In a multi programming environment, several processes

More information

Deadlocks. Copyright : University of Illinois CS 241 Staff 1

Deadlocks. Copyright : University of Illinois CS 241 Staff 1 Deadlocks 1 Deadlock Which way should I go? 2 Deadlock I Oh can no! almost I m get stuck! across GRIDLOCK! 3 Deadlock Definition Deadlocked process Waiting for an event that will never occur Typically,

More information

Operating Systems. Deadlock. User OS. Kernel & Device Drivers. Interface Programs. Brian Mitchell - Operating Systems

Operating Systems. Deadlock. User OS. Kernel & Device Drivers. Interface Programs. Brian Mitchell - Operating Systems User OS Kernel & Device Drivers Interface Programs Deadlock 1 Deadlocks Computer resources are full of resources that can only be used by one process at a time Unpredictable results can occur if two or

More information

Concurrency: Principles of Deadlock. Processes and resources. Concurrency and deadlocks. Operating Systems Fall Processes need resources to run

Concurrency: Principles of Deadlock. Processes and resources. Concurrency and deadlocks. Operating Systems Fall Processes need resources to run Concurrency: Principles of Deadlock Operating Systems Fall 2002 Processes and resources Processes need resources to run CPU, memory, disk, etc process waiting for a resource cannot complete its execution

More information

CS307: Operating Systems

CS307: Operating Systems CS307: Operating Systems Chentao Wu 吴晨涛 Associate Professor Dept. of Computer Science and Engineering Shanghai Jiao Tong University SEIEE Building 3-513 wuct@cs.sjtu.edu.cn Download Lectures ftp://public.sjtu.edu.cn

More information

Deadlocks. Prepared By: Kaushik Vaghani

Deadlocks. Prepared By: Kaushik Vaghani Deadlocks Prepared By : Kaushik Vaghani Outline System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection & Recovery The Deadlock Problem

More information

COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 7 Deadlocks. Zhi Wang Florida State University

COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 7 Deadlocks. Zhi Wang Florida State University COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 7 Deadlocks Zhi Wang Florida State University Contents Deadlock problem System model Handling deadlocks deadlock prevention deadlock avoidance

More information

Chapter 8: Deadlocks. The Deadlock Problem

Chapter 8: Deadlocks. The Deadlock Problem Chapter 8: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock

More information

Chapter 7: Deadlocks

Chapter 7: Deadlocks Chapter 7: Deadlocks Chapter 7: Deadlocks 7.1 System Model 7.2 Deadlock Characterization 7.3 Methods for Handling Deadlocks 7.4 Deadlock Prevention 7.5 Deadlock Avoidance 7.6 Deadlock Detection 7.7 Recovery

More information

Chapter 7: Deadlocks. Operating System Concepts 9 th Edition

Chapter 7: Deadlocks. Operating System Concepts 9 th Edition Chapter 7: Deadlocks Silberschatz, Galvin and Gagne 2013 Chapter 7: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection

More information

! What is a deadlock? ! What causes a deadlock? ! How do you deal with (potential) deadlocks? Maria Hybinette, UGA

! What is a deadlock? ! What causes a deadlock? ! How do you deal with (potential) deadlocks? Maria Hybinette, UGA Chapter 8: Deadlock Questions? CSCI 4730 Operating Systems! What is a deadlock?! What causes a deadlock?! How do you deal with (potential) deadlocks? Deadlock Deadlock: What is a deadlock? Example: Two

More information

Chapter 7: Deadlocks 1

Chapter 7: Deadlocks 1 1 Reminders: February 24, 2014 I hope you had a good Reading Week! Exercise 3 is due this Wednesday Any questions about anything? Don t forget about Assignment 2, due next week 2 Comments on Exercise 2

More information

CMPT 300 Introduction to Operating Systems

CMPT 300 Introduction to Operating Systems CMPT 300 Introduction to Operating Systems Introduction to Deadlocks 1 Preemptible resources Resources that can be taken away from a process without adversely affecting outcome Example: memory (swapping)

More information

CMSC 412. Announcements

CMSC 412. Announcements CMSC 412 Deadlock Reading Announcements Chapter 7 Midterm next Monday In class Will have a review on Wednesday Project 3 due Friday Project 4 will be posted the same day 1 1 The Deadlock Problem A set

More information

The Deadlock Problem

The Deadlock Problem Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock The Deadlock

More information

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. System Model Deadlock Characterization Methods of handling

More information

ECS 150 (Operating Systems) Goal To examine what causes deadlock, and what to do about it. Spring Quarter

ECS 150 (Operating Systems) Goal To examine what causes deadlock, and what to do about it. Spring Quarter D e a d l o c k Goal To examine what causes deadlock, and what to do about it. Spring Quarter 1999 1 The resource manager is that part of the kernel responsible for managing resources. Its process interface

More information

CSE Opera+ng System Principles

CSE Opera+ng System Principles CSE 30341 Opera+ng System Principles Deadlocks Overview System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock

More information

CS307 Operating Systems Deadlocks

CS307 Operating Systems Deadlocks CS307 Deadlocks Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2016 Bridge Crossing Example Traffic only in one direction Each section of a bridge can be viewed

More information

Deadlocks. Bridge Crossing Example. The Problem of Deadlock. Deadlock Characterization. Resource-Allocation Graph. System Model

Deadlocks. Bridge Crossing Example. The Problem of Deadlock. Deadlock Characterization. Resource-Allocation Graph. System Model CS07 Bridge Crossing Example Deadlocks Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2016 Traffic only in one direction Each section of a bridge can be viewed

More information

Module 7: Deadlocks. The Deadlock Problem

Module 7: Deadlocks. The Deadlock Problem Module 7: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock

More information

Module 7: Deadlocks. System Model. Deadlock Characterization. Methods for Handling Deadlocks. Deadlock Prevention. Deadlock Avoidance

Module 7: Deadlocks. System Model. Deadlock Characterization. Methods for Handling Deadlocks. Deadlock Prevention. Deadlock Avoidance Module 7: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock

More information

Deadlock. Concepts to discuss. A System Model. Deadlock Characterization. Deadlock: Dining-Philosophers Example. Deadlock: Bridge Crossing Example

Deadlock. Concepts to discuss. A System Model. Deadlock Characterization. Deadlock: Dining-Philosophers Example. Deadlock: Bridge Crossing Example Concepts to discuss Deadlock CSCI 315 Operating Systems Design Department of Computer Science Deadlock Livelock Spinlock vs. Blocking Notice: The slides for this lecture have been largely based on those

More information

6. Concurrency: Deadlock

6. Concurrency: Deadlock CSC400 - Operating Systems 6. Concurrency: Deadlock J. Sumey Deadlock one problem that results from multiprogramming def: a process (or thread) is said to be deadlocked if it is waiting for an event that

More information

CISC 7310X. C10: Deadlocks. Hui Chen Department of Computer & Information Science CUNY Brooklyn College. 4/12/2018 CUNY Brooklyn College

CISC 7310X. C10: Deadlocks. Hui Chen Department of Computer & Information Science CUNY Brooklyn College. 4/12/2018 CUNY Brooklyn College CISC 7310X C10: Deadlocks Hui Chen Department of Computer & Information Science CUNY Brooklyn College 4/12/2018 CUNY Brooklyn College 1 Outline Concept of deadlock Necessary conditions Models of deadlocks

More information

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy Operating Systems Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. AL-AZHAR University Website : eaymanelshenawy.wordpress.com Email : eaymanelshenawy@yahoo.com Reference

More information

TDDB68 + TDDD82. Lecture: Deadlocks

TDDB68 + TDDD82. Lecture: Deadlocks TDDB68 + TDDD82 Lecture: Deadlocks Mikael Asplund, Senior Lecturer Real-time Systems Laboratory Department of Computer and Information Science Thanks to Simin Nadjm-Tehrani and Christoph Kessler for much

More information

Lecture 7 Deadlocks (chapter 7)

Lecture 7 Deadlocks (chapter 7) Bilkent University Department of Computer Engineering CS342 Operating Systems Lecture 7 Deadlocks (chapter 7) Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 References The slides here are

More information

Chapter 3: Deadlocks

Chapter 3: Deadlocks Chapter 3: Deadlocks Overview Resources Why do deadlocks occur? Dealing with deadlocks Ignoring them: ostrich algorithm Detecting & recovering from deadlock Avoiding deadlock Preventing deadlock Resources

More information

The Deadlock Problem

The Deadlock Problem Deadlocks The Deadlock Problem A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set. Example System has 2 disk drives. P1 and P2 each

More information

CS 31: Intro to Systems Deadlock. Kevin Webb Swarthmore College April 21, 2015

CS 31: Intro to Systems Deadlock. Kevin Webb Swarthmore College April 21, 2015 CS 31: Intro to Systems Deadlock Kevin Webb Swarthmore College April 21, 2015 Reading Quiz Deadly Embrace The Structure of the THE-Multiprogramming System (Edsger Dijkstra, 1968) Also introduced semaphores

More information

Chapter 8: Deadlocks. Operating System Concepts with Java

Chapter 8: Deadlocks. Operating System Concepts with Java Chapter 8: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock

More information

UNIT 4 DEADLOCKS 4.0 INTRODUCTION

UNIT 4 DEADLOCKS 4.0 INTRODUCTION UNIT 4 DEADLOCKS Deadlocks Structure Page Nos 4.0 Introduction 69 4.1 Objectives 70 4.2 Deadlocks 70 4.3 Characterisation of a Deadlock 71 4.3.1 Mutual Exclusion Condition 4.3.2 Hold and Wait Condition

More information

Principles of Operating Systems

Principles of Operating Systems Principles of Operating Systems Lecture 11 - Deadlocks Ardalan Amiri Sani (ardalan@uci.edu) [lecture slides contains some content adapted from previous slides by Prof. Nalini Venkatasubramanian, and course

More information

VI. Deadlocks. What is a Deadlock? Intended Schedule. Deadlock Problem (1) ???

VI. Deadlocks. What is a Deadlock? Intended Schedule. Deadlock Problem (1) ??? Intended Schedule VI. Deadlocks Date Lecture Hand out Submission 0 20.04. Introduction to Operating Systems Course registration 1 27.04. Systems Programming using C (File Subsystem) 1. Assignment 2 04.05.

More information

VI. Deadlocks Operating Systems Prof. Dr. Marc H. Scholl DBIS U KN Summer Term

VI. Deadlocks Operating Systems Prof. Dr. Marc H. Scholl DBIS U KN Summer Term VI. Deadlocks 1 Intended Schedule Date Lecture Hand out Submission 0 20.04. Introduction to Operating Systems Course registration 1 27.04. Systems Programming using C (File Subsystem) 1. Assignment 2 04.05.

More information

Resources. Lecture 4. Deadlocks. Resources (2) Resources (1) Four Conditions for Deadlock. Introduction to Deadlocks

Resources. Lecture 4. Deadlocks. Resources (2) Resources (1) Four Conditions for Deadlock. Introduction to Deadlocks Lecture 4 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks 3.3. The ostrich algorithm 3.4. Deadlock detection and recovery 3.5. Deadlock avoidance 3.6. Deadlock prevention 3.7. Other issues Resources

More information

!! What is a deadlock? !! What causes a deadlock? !! How do you deal with (potential) deadlocks? Maria Hybinette, UGA

!! What is a deadlock? !! What causes a deadlock? !! How do you deal with (potential) deadlocks? Maria Hybinette, UGA Chapter 8: Deadlock Questions? CSCI [4 6]730 Operating Systems!! What is a deadlock?!! What causes a deadlock?!! How do you deal with (potential) deadlocks? Deadlock 2 Deadlock: What is a deadlock? Example:

More information

Chapter 6 - Deadlocks

Chapter 6 - Deadlocks Chapter 6 - Deadlocks Luis Tarrataca luis.tarrataca@gmail.com CEFET-RJ L. Tarrataca Chapter 6 - Deadlocks 1 / 100 1 Motivation 2 Resources Preemptable and Nonpreemptable Resources Resource Acquisition

More information

Last Class: Synchronization Problems. Need to hold multiple resources to perform task. CS377: Operating Systems. Real-world Examples

Last Class: Synchronization Problems. Need to hold multiple resources to perform task. CS377: Operating Systems. Real-world Examples Last Class: Synchronization Problems Reader Writer Multiple readers, single writer In practice, use read-write locks Dining Philosophers Need to hold multiple resources to perform task Lecture 10, page

More information

Operating Systems. Lecture3.2 - Deadlock Management. Golestan University. Hossein Momeni

Operating Systems. Lecture3.2 - Deadlock Management. Golestan University. Hossein Momeni Operating Systems Lecture3.2 - Deadlock Management Golestan University Hossein Momeni momeni@iust.ac.ir Contents Resources Introduction to deadlocks Why do deadlocks occur? Ignoring deadlocks : ostrich

More information

Principles of Operating Systems

Principles of Operating Systems Principles of Operating Systems Lecture 16-17 - Deadlocks Ardalan Amiri Sani (ardalan@uci.edu) [lecture slides contains some content adapted from previous slides by Prof. Nalini Venkatasubramanian, and

More information

UNIT-5 Q1. What is deadlock problem? Explain the system model of deadlock.

UNIT-5 Q1. What is deadlock problem? Explain the system model of deadlock. UNIT-5 Q1. What is deadlock problem? Explain the system model of deadlock. The Deadlock Problem A set of blocked processes each holding a resource and waiting to acquire a resource held by another process

More information

Deadlocks. Dr. Yingwu Zhu

Deadlocks. Dr. Yingwu Zhu Deadlocks Dr. Yingwu Zhu Deadlocks Synchronization is a live gun we can easily shoot ourselves in the foot Incorrect use of synchronization can block all processes You have likely been intuitively avoiding

More information

CHAPTER 7: DEADLOCKS. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 7: DEADLOCKS. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 7: DEADLOCKS By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention

More information

CS420: Operating Systems. Deadlocks & Deadlock Prevention

CS420: Operating Systems. Deadlocks & Deadlock Prevention Deadlocks & Deadlock Prevention James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne The Deadlock Problem

More information

MODERN OPERATING SYSTEMS. Third Edition ANDREW S. TANENBAUM. Chapter 6 Deadlocks

MODERN OPERATING SYSTEMS. Third Edition ANDREW S. TANENBAUM. Chapter 6 Deadlocks MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 6 Deadlocks Preemptable and Nonpreemptable Resources Sequence of events required to use a resource: 1. Request the resource. 2. Use the

More information

COMPUTER SCIENCE 4500 OPERATING SYSTEMS

COMPUTER SCIENCE 4500 OPERATING SYSTEMS Last update: 2/23/2017 COMPUTER SCIENCE 4500 OPERATING SYSTEMS 2017 Stanley Wileman Module 7: Deadlocks In This Module 2! Deadlock: Definition and Examples! Deadlock: Models! Deadlock: Prevention Algorithms

More information

Deadlock. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS Lahore Pakistan. Department of Computer Science

Deadlock. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS Lahore Pakistan. Department of Computer Science Deadlock Rab Nawaz Jadoon DCS COMSATS Institute of Information Technology Assistant Professor COMSATS Lahore Pakistan Operating System Concepts Deadlock A process in a multiprogramming system is said to

More information

Module 6: Deadlocks. Reading: Chapter 7

Module 6: Deadlocks. Reading: Chapter 7 Module 6: Deadlocks Reading: Chapter 7 Objective: To develop a description of deadlocks, which prevent sets of concurrent processes from completing their tasks To present a number of different methods

More information

Introduction to Deadlocks

Introduction to Deadlocks Unit 5 Introduction to Deadlocks Structure 5.1 Introduction Objectives 5.2 System Model 5.3 Deadlock Characterization Necessary Conditions for Deadlock Resource-Allocation Graph. 5.4 Deadlock Handling

More information

Resource Management and Deadlocks 1

Resource Management and Deadlocks 1 Resource Management and Deadlocks 1 The Deadlock Problem Law passed by the Kansas Legislature in early 20th century: When two trains approach each other at a crossing, both shall come to a full stop and

More information

Deadlocks. System Model

Deadlocks. System Model Deadlocks System Model Several processes competing for resources. A process may wait for resources. If another waiting process holds resources, possible deadlock. NB: this is a process-coordination problem

More information