什么是死鎖?產生死鎖的原因和必要條件是什么?
解:
1.在多道程序系統中,一個進程集合中的每個進程都在等待只能由該集合中的其它一個進程才能引發的事件,稱一組進程或系統處於死鎖狀態。
2.產生死鎖的原因:
(1)並發進程競爭臨界資源(也可以寫:系統提供的資源有限)。
(2)並發進程推進順序不當。
3.死鎖產生的4個必要條件:
互斥條件,請求與保持條件,不剝奪條件,環路等待條件。
論述資料來源:
死鎖至少會影響這一組進程,往大點說會影響操作系統。
不解決死鎖有可能會照成數據丟失,甚至系統崩潰。
"狗咬狗,一嘴毛",2333!
環路等待條件,可以類比一下生活中的三角債->四角債——>債務危機
打印機使用本身就是互斥的2333
層次分配策略。進程只能先申請低層的資源然后再去申請高層的資源不能從高層再掉過頭來往低層申請的情況。就是不允許它掉頭往下走!