Yet another synchronization problem

Similar documents
Back to synchronization

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

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

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

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

Deadlocks. Thomas Plagemann. With slides from C. Griwodz, K. Li, A. Tanenbaum and M. van Steen

Deadlocks. Today. Next Time. Resources & deadlocks Dealing with deadlocks Other issues. I/O and file systems

Chapter 3. Deadlocks

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

Deadlocks. Today. Next Time. ! Resources & deadlocks! Dealing with deadlocks! Other issues. ! Memory management

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

CS450/550 Operating Systems

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

Last Class: Monitors. Real-world Examples

6. Concurrency: Deadlock

Deadlocks. Tore Larsen. With slides from T. Plagemann, C. Griwodz, K. Li, A. Tanenbaum and M. van Steen

Deadlocks Prof. James L. Frankel Harvard University. Version of 7:05 PM 7-Mar-2017 Copyright 2017, 2015 James L. Frankel. All rights reserved.

DEADLOCKS M O D E R N O P E R A T I N G S Y S T E M S C H A P T E R 6 S P R I N G

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

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

Chapter 3. Deadlocks

Deadlocks. Copyright : University of Illinois CS 241 Staff 1

OPERATING SYSTEMS. After A.S.Tanenbaum, Modern Operating Systems, 3rd edition. Uses content with permission from Assoc. Prof. Florin Fortis, PhD

Operating Systems. Deadlocks

Concurrency problems. To do. q Non-deadlock bugs q Resources & deadlocks q Dealing with deadlocks q Other issues q Next Time: I/O and file systems

Chapter 3: Deadlocks

Process P holds resource R. Process P is waiting for resource R. P Process P holds T and requests R. R Process Q holds R and requests T

Chapter 6 - Deadlocks

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

Chapter 6. Deadlocks

The Deadlock Lecture

Deadlock and Starvation

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

Chapter 6 Concurrency: Deadlock and Starvation

Deadlocks. Operating Systems. Resources. Deadlocks

Deadlocks. Deadlock in Resource Sharing Environment. CIT 595 Spring Recap Example. Representing Deadlock

Operating Systems ECE344. Ding Yuan

More on Synchronization and Deadlock

Last Class: Synchronization Problems!

CSE 306/506 Operating Systems Deadlock. YoungMin Kwon

We need a formal algorithm, as visual inspection is not sufficient Many algorithms for detecting cycles in a directed graph are known o Below is a

Computer Science 4500 Operating Systems. In This Module. Deadlock Definition. Module 7 Deadlocks

Computer Science 4500 Operating Systems

Administrivia. Assignments 0 & 1 Class contact for the next two weeks Next week. Following week

Learning Outcomes. Chapter 3. Deadlocks. Resources. Resources. Resources

Resources. Chapter 3. Deadlocks. Resources. Resources

CMPT 300 Introduction to Operating Systems

Chapter 6. Deadlock. (A Quick Introduction)

Concurrency problems. q Non-deadlock bugs q Resources & deadlocks q Dealing with deadlocks q Other issues q Next Time: I/O and file systems

COMPUTER SCIENCE 4500 OPERATING SYSTEMS

OPERATING SYSTEMS. Deadlocks

Deadlock. Concurrency: Deadlock and Starvation. Reusable Resources

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

Deadlock CS 241. March 19, University of Illinois

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.

Deadlocks. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Learning Outcomes. Chapter 6. Deadlocks. Resources. Resources & Deadlocks. Resource Access. Two example resource usage patterns

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

COS 318: Operating Systems. Deadlocks. Jaswinder Pal Singh Computer Science Department Princeton University

Concurrency: Deadlock and Starvation. Chapter 6

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

Basic concepts and Terminologies

CSE 380 Computer Operating Systems

Process Synchronization

Deadlock. A Bit More on Synchronization. The Deadlock Problem. Deadlock Characterization. Operating Systems 2/7/2005. CSC 256/456 - Spring

Deadlocks: Part I Prevention and Avoidance Yi Shi Fall 2017 Xi an Jiaotong University

Chapter 6 Concurrency: Deadlock and Starvation

UNIT:2. Process Management

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

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

Deadlocks: Detection & Avoidance

Outline. Deadlock. Examples, Conditions, Strategies. Deadlock Prevention. Deadlock Avoidance. Banker s algorithm

The deadlock problem

Deadlock. Disclaimer: some slides are adopted from Dr. Kulkarni s and book authors slides with permission 1

Shared and Preemptable Resources. A few resources may be sharable. Anyone can write the system log.

CSCC 69H3 2/1/13. Today: Deadlock. Remember example from last week? Example of Deadlock. Example: dining philosophers: Not just an OS Problem!

CS 153 Design of Operating Systems Winter 2016

Process Management And Synchronization

Frequently asked questions from the previous class survey

Final Exam Review. CPSC 457, Spring 2016 June 29-30, M. Reza Zakerinasab Department of Computer Science, University of Calgary

The Deadlock Problem (1)

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

Module 6: Deadlocks. Reading: Chapter 7

Lesson 6: Process Synchronization

Operating Systems. User OS. Kernel & Device Drivers. Interface Programs. Interprocess Communication (IPC)

Concurrency: Deadlock and Starvation

Quiz Answers. CS 537 Lecture 9 Deadlock. What can go wrong? Readers and Writers Monitor Example

Chapter 7: Deadlocks CS370 Operating Systems

The Deadlock Problem

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

Readings and References. Deadlock. Deadlock. Simple Traffic Gridlock Example. Reading. CSE Computer Systems November 30, 2001.

CS370 Operating Systems

5 Classical IPC Problems

Bridge Crossing Example

Chapter 8: Deadlocks. The Deadlock Problem

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

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

CS370 Operating Systems

Operating Systems. Deadlock. Lecturer: William Fornaciari Politecnico di Milano Homel.deib.polimi.

CHAPTER 6: PROCESS SYNCHRONIZATION

Transcription:

Yet another synchronization problem The dining philosophers problem Deadlocks o Modeling deadlocks o Dealing with deadlocks Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan

The Dining Philosophers Problem Philosophers o think o take forks (one at a time) o eat o put forks (one at a time) Eating requires 2 forks Pick one fork at a time How to prevent deadlock? What about starvation? What about concurrency? Slide taken from a presentation by Gadi Taubenfeld, IDC Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 2

Who are these (figure from wiki)? Plato Descarte Confuzius Voltaire Socrates Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 3

Dining philosophers: definition Each process needs two resources Every pair of processes compete for a specific resource A process may proceed only if it is assigned both resources Every process that is waiting for a resource should sleep (be blocked) Every process that releases its two resources must wake-up the two competing processes for these resources, if they are interested Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 4

An incorrect naïve solution ( means waiting for this fork ) Slide taken from a presentation by Gadi Taubenfeld, IDC Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 5

Dining philosophers: textbook solution The solution o A philosopher first gets o only then it tries to take the 2 forks. Slide taken from a presentation by Gadi Taubenfeld, IDC Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 6

Dining philosophers: textbook solution code #define N 5 #define LEFT (i-) % N #define RIGHT (i+) % N #define THINKING #define HUNGRY #define EATING 2 int state[n]; semaphore mutex = ; semaphore s[n]; // per each philosopher void philosopher(int i) { while(true) { think(); pick_sticks(i); eat(); put_sticks(i); } } Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 7

Dining philosophers: textbook solution code Π void pick_sticks(int i) { down(&mutex); state[i] = HUNGRY; test(i); up(&mutex); down(&s[i]); } void put_sticks(int i) { down(&mutex); state[i] = THINKING; test(left); test(right); up(&mutex); } void test(int i) { if(state[i] == HUNGRY && state[left]!= EATING && state[right]!= EATING) { } state[i] = EATING; up(&s[i]); } Is the algorithm deadlock-free? What about starvation? Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 8

Textbook solution code: starvation is possible Eat Starvation! Block Eat Slide taken from a presentation by Gadi Taubenfeld, IDC Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 9

Monitor-based implementation monitor diningphilosophers condition self[n]; integer state[n]; procedure pick_sticks(i){ state[i] := HUNGRY; test(i); if state[i] <> EATING then wait(self[i]); } procedure put_sticks(i){ state[i] := THINKING; test(left); test(right); procedure test(i){ if (state[left] <> EATING && state[right] <> EATING && state[i] = HUNGRY) then { state[i] := EATING; signal(self[i]); } } for i := to 4 do state[i] := THINKING; end monitor Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan

Text-book solution disadvantages An inefficient solution o reduces to mutual exclusion o not enough concurrency o Starvation possible Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan

The LR Solution If the philosopher acquires one fork and the other fork is not immediately available, she holds the acquired fork until the other fork is free. R Two types of philosophers: o L -- The philosopher first obtains its left fork and then its right fork. o R -- The philosopher first obtains its right fork and then its left fork. The LR solution: the philosophers are assigned acquisition strategies as follows: philosopher i is R-type if i is even, L-type if i is odd. L R L L R Slide taken from a presentation by Gadi Taubenfeld, IDC Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 2

Theorem: The LR solution is starvation-free Assumption: the fork is fair. L R 6 R 3 2 L 4 L R ( means first fork taken ) Slide taken from a presentation by Gadi Taubenfeld, IDC Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 3

Deadlocks The dining philosophers problem Deadlocks o Modeling deadlocks o Dealing with deadlocks Operating Systems, 25, Meni Adler, Danny Hendler & Roie 4

Synchronization: Deadlocks Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 5

Deadlocks Deadlock of Resource Allocation: o Process A requests and gets Tape drive o Process B requests and gets Fast Modem o Process A requests Fast Modem and blocks o Process B requests Tape drive and blocks Deadlock situation: Neither process can make progress and no process can release its allocated device (resource) Both resources (devices) require exclusive access Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 6

Resources Resources - Tapes, Disks, Printers, Database Records, semaphores, etc. Some resources are non-preemptable (i.e. tape drive) It is easier to avoid deadlock with preemptable resources (e.g., main memory, database records) Resource allocation procedure o Request Iterate o Use o Release only at the end and leave Block process while waiting for Resources Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 7

Defining Deadlocks A set of processes is deadlocked if each process is waiting for an event that can only be caused by another process in the set Necessary conditions for deadlock:. Mutual exclusion: exclusive use of resources 2. Hold and wait: process can request resource while holding another resource 3. No preemption: only holding process can release resource 4. Circular wait: there is an oriented circle of processes, each of which is waiting for a resource held by the next in the circle Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 8

Modeling deadlocks modeled by a directed graph (resource graph) o Requests and assignments as directed edges o Processes and Resources as vertices Cycle in graph means deadlock Process A holds resource Q A Process B requests resource Q P Deadlock F R S Q B M Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 9

Different possible runs: an example A Request R Request S Release R Release S B Request S Request T Release S Release T C Request T Request R Release T Release R Round-robin scheduling:. A requests R 2. B requests S A B C 3. C requests T 4. A requests S 5. B requests T R S T 6. C requests R Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 2

Different possible runs: an example A Request R Request S Release R Release S B Request S Request T Release S Release T C Request T Request R Release T Release R An alternative scheduling:. A requests R 2. C requests T A B C 3. A requests S 4. C requests R 5. A releases R R S T 6. A releases S Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 2

Multiple Resources of each Type Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 22

A Directed Cycle But No Deadlock Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 23

Resource Allocation Graph With A Deadlock Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 24

Basic Facts If graph contains no cycles no deadlock If graph contains a cycle o if only one instance per resource type, then deadlock o if several instances per resource type, deadlock possible Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 25

Dealing with Deadlocks The dining philosophers problem Deadlocks o Modeling deadlocks o Dealing with deadlocks Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 26

Dealing with Deadlocks Possible Strategies: o Prevention structurally negate one of the four necessary conditions o Avoidance allocate resources carefully, so as to avoid deadlocks o Detection and recovery o Do nothing (The ostrich algorithm ) deadlocks are rare and hard to tackle... do nothing Example: Unix - process table with entries and processes each requesting 2 FORK calls... Deadlock. users prefer a rare deadlock over frequent refusal of FORK Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 27

Deadlock prevention Attack one of the 4 necessary conditions:. Mutual exclusion o Minimize exclusive allocation of devices o Use spooling: only spooling process requests access (not good for all devices - Tapes; Process Tables); may fill up spools (disk space deadlock)... 2. Hold and Wait o Request all resources immediately (before execution) Problem: resources not known in advance, inefficient or o to get a new resource, free everything, then request everything again (including new resource) Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 28

Attack one of the 4 necessary conditions (cont'd) 3. No preemption o Not always possible (e.g., printer, tape-drive) 4. Circular wait condition o Allow holding only a single resource (too restrictive) o Number resources, allow requests only in ascending order: Request only resources numbered higher than anything currently held Impractical in general Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 29

Deadlock Avoidance System grants resources only if it is safe basic assumption: maximum resources required by each process is known in advance Safe state: Not deadlocked There is a scheduling that satisfies all possible future requests Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 3

Safe states: example B l 8 l 7 Both have printer Printer Plotter l 6 l 5 r t s Both have plotter Both have both Unsafe state p q l l 2 l 3 l 4 Printer Plotter A Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 3

Safe and Unsafe states (single resource) Safe state: o Not deadlocked o There is a way to satisfy all possible future requests (a) (b) (c) Fig. 6-9. Three resource allocation states: (a) Safe. (b) Safe. (c) Unsafe. Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 32

Banker's Algorithm, Dijkstra 965 (single resource) Checks whether a state is safe. Pick a process that can terminate after fulfilling the rest of its requirements (enough free resources) 2. Free all its resources (simulation) 3. Mark process as terminated 4. If all processes marked, report safe, halt 5. If no process can terminate, report unsafe, halt 6. Go to step Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 33

Multiple resources of each kind Assume n processes and m resource classes Use two matrixes and two vectors: o Current allocation matrix C n x m o Request matrix R n x m (remaining requests) o Existing resources vector E m o Available resources vector A m Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 34

Banker s Algorithm for multiple resources. Look for a row of R whose unmet resource needs are all smaller than or equal to A. If no such row exists, the system will eventually deadlock. 2. Otherwise, assume the process of the row chosen finishes (which will eventually occur). Mark that process as terminated and add the i th row of C to the A vector 3. Repeat steps and 2 until either all processes are marked terminated, which means safe, or until a deadlock occurs, which means unsafe. Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 35

deadlock avoidance an example with 4 resource types, 5 processes Tape-drives Plotters Scanners CD-ROMs E = (6 3 4 2) A = ( 2 ) T P S C T P S C A 3 A C = B C D R = B C D 3 2 E E 2 Is the current state safe? We let D run until it finishes Yes, let s see why Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 36

deadlock avoidance an example with 4 resource types, 5 processes Tape-drives Plotters Scanners CD-ROMs E = (6 3 4 2) A = (2 2 ) C = R = 3 A B C D E T P S C A 2 B 3 C D 2 E T P S C We now let E run until it finishes Next we let A run until it finishes Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 37

deadlock avoidance an example with 4 resource types, 5 processes Tape-drives Plotters Scanners CD-ROMs E = (6 3 4 2) A = (5 3 2) C = R = A B C D E T P S C A 2 B 3 C D E T P S C Finally we let B and C run. Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 38

Back to original state Tape-drives Plotters Scanners CD-ROMs E = (6 3 4 2) A = ( 2 ) C = R = 3 A B C D E T P S C A 2 B 3 C D 2 E T P S C If B now requests a Scanner, we can allow it. Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 39

This is still a safe state Tape-drives Plotters Scanners CD-ROMs E = (6 3 4 2) A = ( ) C = R = 3 A B C D E T P S C A 2 B 3 C D 2 E T P S C If E now requests a Scanner, granting the request leads to an unsafe state Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 4

This state is unsafe Tape-drives Plotters Scanners CD-ROMs E = (6 3 4 2) A = ( ) C = R = 3 A B C D E T P S C A 2 B 3 C D 2 E T P S C We must not grant E s request Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 4

Deadlock Avoidance is not practical Maximum resource request per process is unknown beforehand Resources may disappear New processes (or resources) may appear Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 42

Deadlock Detection and Recovery Find if a deadlock exists if it does, find which processes and resources it involes Detection: detect cycles in resource graph Algorithm: DFS + node and arc marking Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 43

Find cycles: For each node, N, in the graph, perform the following 5 steps with N as the starting node. Initialize L to the empty list and designate all arcs as unmarked 2. Add the current node to the end of L and check if the node appears twice in L. If it does, the graph contains a cycle, terminate. 3. If there are any unmarked arcs from the given node, go to 4., if not go to 5. 4. Pick an unmarked outgoing arc and mark it. Follow it to the new current node and go to 2. 5. We have reached a deadend. Go back to the previous node, make it the current node and go to 3. If all arcs are marked and the node is the initial node, there are no cycles in the graph, terminate Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 44

Detection - extract a cycle. Process A holds R and requests S 2. Process B holds nothing and requests T 3. Process C holds nothing and requests S 4. Process D holds U and requests S and T 5. Process E holds T and requests V 6. Process F holds W and requests S 7. Process G holds V and requests U Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 45

When should the system check for deadlock? Whenever a request is made - too expensive every k time units... whenever CPU utilization drops bellow some threshold (indication of a possible deadlock..) Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 46

Recovery Preemption - possible in some rare cases temporarily take a resource away from its current owner Rollback - possible with checkpointing Keep former states of processes (checkpoints) to enable release of resources and going back Killing a process - easy way out, may cause problems in some cases, depending on process being rerunable Bottom line: hard to recover from deadlock, avoid it Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 47

Example - deadlocks in DBMSs For database records that need locking first and then updating (two-phase locking) Deadlocks occur frequently because records are dynamically requested by competing processes DBMSs, therefore, need to employ deadlock detection and recovery procedures Recovery is possible - transactions are checkpointed - release everything and restart Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 49

Additional deadlock issues Deadlocks may occur with respect to actions of processes, not resources - waiting for semaphores Starvation can result from a bad allocation policy (such as smallest-file-first, for printing) and for the starved process will be equivalent to a deadlock (cannot finish running) Summary of deadlock treatment: o Ignore problem o Detect and recover o Avoid (be only in safe states) o Prevent by using an allocation policy or conditions Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 52

The Situation in Practice Most OSs in use, and specifically Windoes, Linux, ignore deadlock or do not detect it Tools to kill processes but usually without loss of data In Windows NT there is a system call WaitForMultipleObjects that requests all resources at once o System provides all resources, if free o There is no lock of resources if only few are free o Prevents Hold & Wait, but difficult to implement! Operating Systems, 25, Meni Adler, Danny Hendler & Roie Zivan 53

Linux: the Big Kernel Lock Linux was first designed with Coarse-Grained Locking The whole kernel was wrapped in a giant lock around it to avoid deadlocks (kernel / interrupt handlers / user threads) introduced in Linux 2.. Work began in 28 to remove the big kernel lock: http://kerneltrap.org/linux/removing_the_big_kernel _Lock It was carefully replaced with fine-grained locks until it was removed in Linux 2.6.39 (in 2!) https://lwn.net/articles/424657/ Operating Systems, 23, Operating Meni Adler, Systems, Michael 25, Elhadad Meni & Adler, Amnon Danny Meisels Hendler & Roie Zivan 54

Xv6 and deadlocks Xv6 uses a few coarse data-structure specific locks; for example, xv6 uses a single lock protecting the process table and its invariants, which are described in Chapter 5. A more fine-grained approach would be to have a lock per entry in the process table so that threads working on different entries in the process table can proceed in parallel. However, it complicates operations that have invariants over the whole process table, since they might have to take out several locks. To avoid such deadlocks, all code paths must acquire locks in the same order. Deadlock avoidance is another example illustrating why locks must be part of a function s specification: the caller must invoke functions in a consistent order so that the functions acquire locks in the same order Because xv6 uses coarse-grained locks and xv6 is simple, xv6 has few lock-order chains. The longest chain is only two deep. For example, ideintr holds the ide lock while calling wakeup, which acquires the ptable lock. Operating Systems, 23, Operating Meni Adler, Systems, Michael 25, Elhadad Meni & Adler, Amnon Danny Meisels Hendler & Roie Zivan 55