系統判斷分配資源是否安全,並且只能在保證安全的條件下分配資源。
當在t點時系統必須做出正確的判斷,應該將一部分程式掛起以避免產生死鎖
需要區別的是不安全狀態並不是死鎖狀態。
從安全狀態出發,系統能夠保證所有程序都能完成,而從不安全狀態吃飯,就沒有這樣的保證。
從個人的理解看:
不安全狀態有可能進入死鎖狀態但是不一定進入,是處於安全狀態和死鎖狀態之間的情況。
關鍵點就是安全狀態對所有資源的都突然請求最大資源也是可以科學排程後完成的,不安全狀態所有程序同時請求最大資源後是無法完成排程的,但是未必所有資源都會同時產生最大資源請求,而死鎖是已經發生了請求資源互斥而休眠的的情況。
演算法要做的判斷是對請求的滿足是否會導致進入不安全的狀態,如果是則拒絕請求,如果不是則予以分配。
銀行家演算法就是對每乙個請求,進行檢測,先執行需要資源最少的程序,完成後資源返回資源池,不斷進行直到所有程序都完成或者有無法完成的程序
檢測乙個狀態是否安全的演算法:
1. 查詢仍然需要資源矩陣中年是否有一行,其沒有被滿足的資源均小於或等於a。如果不存在,那麼系統將死鎖。
2. 如果找到這樣的行,可以假設它所獲得的資源並執行結束,該程序標記為終止,並將其資源返還給向量a。
3. 重複以上兩步。
實際中很少使用,因為無法判斷程序需要多少資源。
《現代作業系統》讀書筆記 死鎖篇
標籤 讀書筆記 校招 作業系統 面試 可剝奪資源 是指雖然資源佔有者程序需要使用該資源,但另乙個程序可以強行把該資源從佔有者程序處剝奪來歸自己使用。不可剝奪資源 是指除佔有者程序不再需要使用該資源而主動釋放資源,其他程序不得在佔有者程序使用資源過程中強行剝奪。如果乙個程序集合中的每個程序都在等待只能...
讀書筆記 現代作業系統
ch1.1.作業系統中,抽象非常重要,乙個複雜的任務可以抽象成多個簡單的子任務,將複雜的硬體抽象成簡單的介面,書中針對向上層應用提供的介面做詳細的講解,但是對於使用者 終端使用者 介面不會做研究.2.作業系統中的資源有時間資源和空間資源,以及硬碟的空間資源,時間資源是時間復用的 如cpu的輪轉 空間...
《現代作業系統》讀書筆記 執行緒
執行緒是最小的任務排程單位,是依賴於程序而存在的迷你程序。和程序一樣,執行緒也有三種狀態 執行 就緒 阻塞。我認為,執行緒是程序中任務真正的執行者,而程序提供了記憶體空間 cpu 程式計數器以及暫存器讓執行緒使用。對於程序來說,多個程序之間無法分享記憶體空間,對於一些應用而言,共享記憶體空間的能力是...