Operating Systems 2014F Lecture 11

From Soma-notes
Revision as of 13:07, 10 October 2014 by Afry (talk | contribs) (Created page with "Dining Philosophers problem When can you have deadlock? 4 conditions must apply - mutual exclusion - hold and wait - you can grab a lock and wait for the next one, you ca...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Dining Philosophers problem


When can you have deadlock?

4 conditions must apply

- mutual exclusion

- hold and wait - you can grab a lock and wait for the next one, you can spin / go to sleep or something. You dont' just do things like try the lock if you are successful, and then continue with the computation.

- no pre-emption (pre-emption is taking the resource by force.) you can only have deadlock when people are polite.

- circular wait that's why the dining philosopher's problem has a circular table - have to have something that a) is waiting on one another - that's what gets it into the problem.

you break any of these, you can't have deadlock.

When people talk about deadlock, they talk about strategies for avoiding it (for removing the problem) in terms of these strategies:

1 prevention - construct your system so that deadlock can never happen. (Make it impossible)