Changes for page Deadlock Prevention
Last modified by chrisby on 2023/11/28 19:17
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,11 +1,11 @@ 1 1 Deadlocks can only occur if all four specific conditions are met. Therefore, strategies to prevent deadlocks focus on negating one of these conditions. 2 2 3 -| ------------------------ | --------------- ---------------------------------------------------------------------------------------------------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|4 -| **Condition** | 5 -| Mutual Exclusion / Mutex | When resources can't be shared between threads and there are fewer resources than threads.|1)UseconcurrentlyaccessibleresourcessuchasAtomicInteger.2)Increasethenumberofresourcesuntil it is greater than or equal to the number of competing threads. 3) Check if each required resource is accessible before starting the task.|6 -| Lock&Wait|Onceathreadhasacquiredaresource,itwillnotreleaseituntilithasacquiredalltheotherresourcesitneedsandhascompletedits work.|Before reserving a resource, check its availability. If a resource is unavailable, release all resources and start over.|1)Starvation:Athreadnevermanagestoreservealltheresourcesitneeds. 2) Livelock: The thread gets tangled up. →These two approaches are always applicable, but inefficient because they cause bad performance.|7 -| NoPreemption|A thread is unable to steal a resources reserved by another thread.|A thread is allowed to ask another thread to release all of its resources (including the required one) and starting from anew. This approach is similar to the 'Lock & Wait' solution but has a better performance.|8 -| | 3 +| ------------------------ | --------------- | ------------- | ----------- | 4 +| **Condition** | **Description** | **Solutions** | **Dangers** | 5 +| Mutual Exclusion / Mutex | | | | 6 +| | | | | 7 +| | | | | 8 +| | | | | 9 9 10 10 #### Lock & Wait 11 11