N個進程共享可以保留的M個資源單元,並且一次只能釋放一個。每個過程的最大需求不超過M,所有最大需求的總和小於M + N。系統中會發生死鎖嗎?如何判斷這個系統是否會發生死鎖?
0
A
回答
1
你所描述的一樣semaphores
關於你的最後一個問題看起來系統:YES。你「可能」總是會陷入僵局;如果你看不到如何,問一個年輕/可恥的/有動力/偏差的開發者。
一個很好的方法來做一個好的方法;是有奇怪的鎖定/釋放資源規則。例如,如果一個進程需要M個資源來執行任務,他可以立即鎖定其中的一半,然後在做任何事之前等待另一半可用。
我認爲,只有在完成任務後,他纔會放棄,直到擁有了寶貴的M資源並釋放它們。
單個進程不會引起太多問題,但會有多個問題,因爲它們將鎖定超過M個總資源,並且需要更多的資源才能解決此凍結狀態。
0
我希望你能得到答案。爲其他訪問者回答這個問題。
答案是死鎖在系統中不會發生。
該證明在下圖中給出。
該圖像來自於http://alumni.cs.ucr.edu/~choua/school/cs153/Solution%20Manual.pdf第31頁
相關問題
- 1. RwLock何時會發生死鎖而不是死鎖?
- 2. 如何判斷我的主要活動是否被系統殺死
- 3. 如何判斷文本框是否專注於操作系統?
- 4. 如何在C#中判斷系統是否支持觸摸
- 5. Perl系統()調用是否會死?
- 6. RMI如何發生死鎖?
- 7. 如何判斷是否有可能在交易中看到死鎖?
- 8. 在這段代碼中是否發生死鎖?
- 9. 這個BlockingQueue是否容易死鎖?
- 10. 如何判斷CSS轉換是否即將發生?
- 11. Android - 如何判斷ACRA錯誤是否發生在simularor上?
- 12. 如何判斷Postgres中的記錄是否發生了變化
- 13. 如何判斷客戶端進程是否死亡?
- 14. 如何判斷ThreadPool線程是否無聲無息地死亡
- 15. 在操作系統中發生多少次(即將發生)的死鎖
- 16. 爲什麼它不會發生死鎖?
- 17. SQL Server:如何判斷數據庫是否是系統數據庫?
- 18. 是否有可能在單個線程上發生死鎖?
- 19. 如何判斷服務器是否被鎖定?
- 20. 如何判斷一行是否被鎖定?
- 21. 硬件發生「死鎖」還是軟件導致死鎖?
- 22. 會在這些情況下發生死鎖嗎?
- 23. 如果發生進程飢餓,是否意味着會出現死鎖?
- 24. 如何判斷GXT發生的事件?
- 25. 如何判斷「ZipArchiveEntry」是否是目錄?
- 26. 如何判斷文件是否在使用Perl的遠程文件系統上?
- 27. 如何判斷操作系統是否爲Windows XP或更高版本?
- 28. 如何判斷系統托盤中的氣球提示是否已關閉?
- 29. 如何判斷系統偏好設置中是否啓用了Voice Over功能?
- 30. 爲什麼這個查詢會死鎖?
聽起來像家庭作業。通常的答案適用於:42 – 2011-02-23 14:29:35
得到這個:在SO中,人們可以幫助你處理你的功課。但要求真正爲你做到這一點是無禮的 – 2011-02-23 14:31:59