作業系統基本知識

2021-07-05 14:05:30 字數 1058 閱讀 6674

(1)因為系統資源不足。

(2)程序執行推進的順序不合適。

(3)資源分配不當等。

如果系統資源充足,程序的資源請求都能夠得到滿足,死鎖出現的可能性就很低,否則就會因爭奪有限的資源而陷入死鎖。其次,程序執行推進順序與速度不同,也可能產生死鎖。

(1)互斥條件:乙個資源每次只能被乙個程序使用。

(2)請求與保持條件:乙個程序因請求資源而阻塞時,對已獲得的資源保持不放。

(3)不剝奪條件:程序已獲得的資源,在末使用完之前,不能強行剝奪。

(4) 迴圈等待條件:若干程序之間形成一種頭尾相接的迴圈等待資源關係。

這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會發生死鎖。

(1)有序資源分配法

這種演算法資源按某種規則系統中的所有資源統一編號(例如印表機為1、磁帶機為2、磁碟為3、等等),申請時必須以上公升的次序。系統要求申請程序:

a. 對它所必須使用的而且屬於同一類的所有資源,必須一次申請完;

b. 在申請不同類資源時,必須按各類裝置的編號依次申請。例如:程序pa,使用資源的順序是r1,r2; 程序pb,使用資源的順序是r2,r1;若採用動態分配有可能形成環路條件,造成死鎖。

採用有序資源分配法:r1的編號為1,r2的編號為2;

pa:申請次序應是:r1,r2

pb:申請次序應是:r1,r2

這樣就破壞了環路條件,避免了死鎖的發生

(2)銀行演算法

避免死鎖演算法中最有代表性的演算法是dijkstra e.w 於2023年提出的銀行家演算法:該演算法需要檢查申請者對資源的最大需求量,如果系統現存的各類資源可以滿足申請者的請求,就滿足申請者的請求。這樣申請者就可很快完成其計算,然後釋放它占用的資源,從而保證了系統中的所有程序都能完成,所以可避免死鎖的發生。

(1)撤消陷於死鎖的全部程序

(2)逐個撤消陷於死鎖的程序,直到死鎖不存在

(3)從陷於死鎖的程序中逐個強迫放棄所占用的資源,直至死鎖消失

(4)從另外一些程序那裡強行剝奪足夠數量的資源分配給死鎖程序,以解除死鎖狀態

(5)增加資源

作業系統基本知識

1 併發 併發指同一時間內同時執行多個程式 並行指同一時間內同時執行多條指令 並行需要硬體支援比如 流水線,多核處理器,分布式作業系統 併發作業系統通過引入程序和執行緒,從而實現併發 2 共享 共享是指系統中的資源可以被多個併發程序共同使用。有兩種共享方式 互斥共享和同時共享。互斥共享的資源稱為臨界...

作業系統基本知識點

作業系統面試考點 1 明白併發和並行的區別對理解作業系統很重要 併發 指兩個或多個事件在同一時間間隔內發生 並行 指兩個或多個事件在同一時刻發生 作業系統中的程式可以併發執行,而不是並行執行。2 程式 程序以及執行緒的區別 從定義來看 程式 程式是對演算法的描述,一段靜態的 序列 程序 程式在乙個資...

作業系統知識整理 儲存器的基本知識

cpu暫存器 主存 快取記憶體 主儲存器 磁碟快取 輔存 固態硬碟 usb 光碟等 從左往右,訪問速度由高到低 其中暫存器和主儲存器又被稱為可執行儲存器 對cpu而言 作業系統的儲存管理負責對可執行儲存器的分配 以及提供儲存層次間資料移動的管理機制。而裝置和檔案管理則根據使用者的需求,提供對輔存的管...