1. 程式人生 > >作業系統錯題知識點

作業系統錯題知識點

  1. 優先權的分類:
  2. 靜態優先權 靜態優先權是在建立程序時確定的,且在程序的整個執行期間保持不變. 一般地,優先權是利用某一範圍內的一個整數來表示的,例如,07或0255中的某一整數, 又把該整數稱為優先數.只是具體用法各異:有的系統用”0”表示最高優先權,當數值愈大時,其優先權愈低;而有的系統恰恰相反. 確定程序優先權的依據有如下三個方面: (1)程序型別.(系統程序/使用者程序) (2) 程序對資源的需求.(需求量的大小) (3) 使用者要求.(使用者程序緊迫程度)
  3. 動態優先權 動態優先權是指在建立程序時所賦予的優先權,可以隨程序的推進或隨其等待時間的增加而改變的,以便獲得更好的排程效能. 例如,我們可以規定,在就緒佇列中的程序,隨其等待時間的增長,其優先權以速率a提高.若所有的程序都具有相同的優先權初值,則顯然是最先進入就緒佇列的程序,將因其動態優先權變得最高而優先獲得處理機,此即FCFS演算法. 優先權的變化規律可描述為: 由於等待時間與服務時間之和,就是系統對該作業的響應時間,故該優先權又相當於響應比RP.
  4. 搶佔式和非搶佔式
  5. 非搶佔式優先權演算法 在這種方式下,系統一旦把處理機分配給就緒佇列中優先權最高的程序後,該程序便一直執行下去,直至完成;或因發生某事件使該程序放棄處理機時,系統方可再將處理機重新分配給另一優先權最高的程序。這種排程演算法主要用於批處理系統中;也可用於某些對實時性要求不嚴的實時系統中。
  6. 搶佔式優先權排程演算法 在這種方式下,系統同樣是把處理機分配給優先權最高的程序,使之執行。但在其執行期間,只要又出現了另一個其優先權更高的程序,程序排程程式就立即停止當前程序(原優先權最高的程序)的執行,重新將處理機分配給新到的優先權最高的進程。因此,在採用這種排程演算法時,是每當系統中出現一個新的就緒程序i 時,就將其優先權Pi與正在執行的程序j 的優先權Pj進行比較。如果Pi≤Pj,原程序Pj便繼續執行;但如果是Pi>Pj,則立即停止Pj的執行,做程序切換,使i 程序投入執行。顯然,這種搶佔式的優先權排程演算法能更好地滿足緊迫作業的要求,故而常用於要求
    比較嚴格的實時系統
    中,以及對效能要求較高的批處理和分時系統中。 非搶佔式(Nonpreemptive):讓程序執行直到結束或阻塞的排程方式 容易實現 適合專用系統,不適合通用系統 搶佔式(Preemptive):允許將邏輯上可繼續執行的在執行過程暫停的排程方式 可防止單一程序長時間獨佔CPU 系統開銷大(降低途徑:硬體實現 程序切換 ,或擴充主存以貯存大部分程式)
  7. 三態模型:在多道程式系統中,程序在處理器上交替執行,狀態也不斷地發生變化。程序一般有3種基本狀態:執行、就緒和阻塞。   (1)執行:當一個程序在處理機上執行時,則稱該程序處於執行狀態。處於此狀態的程序的數目小於等於處理器的數目,對於單處理機系統,處於執行狀態的程序只有一個。在沒有其他程序可以執行時(如所有程序都在阻塞狀態),通常會自動執行系統的空閒程序。   (2)就緒
    :當一個程序獲得了除處理機以外的一切所需資源, 一旦得到處理機即可執行 ,則稱此程序處於就緒狀態。就緒程序可以按多個優先順序來劃分佇列。例如,當一個程序由於時間片用完而進入就緒狀態時,排入低優先順序佇列;當程序由I/O操作完成而進入就緒狀態時,排入高優先順序佇列。   (3)阻塞:也稱為等待或睡眠狀態,一個程序正在等待某一事件發生(例如請求I/O而等待I/O完成等)而暫時停止執行,這時即使把處理機分配給程序也無法執行,故稱該程序處於阻塞狀態。 活躍就是在記憶體中,靜止就是在磁碟中。活躍就緒:是指程序在主存並且可被排程的狀態。  **  靜止就緒(掛起就緒):是指程序被對換到輔存**時的就緒狀態,是不能被直接排程的狀態,只有當主存中沒有活躍就緒態程序,或者是掛起就緒態程序具有更高的優先順序,系統將把掛起就緒態程序調回主存並轉換為活躍就緒。   活躍阻塞:是指程序已在主存,一旦等待的事件產生便進入活躍就緒狀態。   靜止阻塞:是指程序對換到輔存時的阻塞狀態,一旦等待的事件產生便進入靜止就緒狀態。
  8. 非剝奪程序排程:分派程式一旦把處理機分配給某程序後便讓它一直執行下去,直到程序完成或發生 程序排程某事件而阻塞時,才把處理機分配給另一個程序。 **剝奪式程序排程:**當一個程序正在執行時,系統可以基於某種原則,剝奪已分配給它的處理機,將之分配給其它程序。
  9. 每個程序中 訪問臨界資源 的那段程式稱為臨界區
  10. 整型訊號量(integer semaphore):訊號量是整數 記錄型訊號量(record semaphore):每個訊號量s除一個整數值s.value(計數)外,還有一個程序 等待佇列 s.L,其中是阻塞在該訊號量的各個程序的標識 二進位制訊號量(binary semaphore):只允許訊號量取0或1值
  11. 互斥訪問中,每類資源的訊號量初值設定為1; 條件同步中,訊號量初值設為0;
  12. 響應比=作業週轉時間/作業執行時間
  13. 題型:已知作業的到達時間和執行時間,按照高響應比優先演算法,對作業的執行次序進行排序。
  14. 在訊息緩衝通訊中, 訊息佇列 屬於臨界資源,在訊息緩衝區操作的前後,都要執行P、V操作,對該佇列進行互斥訪問控制。
  15. 批處理系統常用排程演算法: ①、先來先服務: FCFS ②、最短作業優先 ③、最短剩餘時間優先 ④、響應比最高者優先 分時系統排程演算法: ①、輪轉排程 ②、優先順序排程 ③、多級佇列排程 ④、彩票排程 實時系統排程演算法: ①、單比率排程:在實時系統中,事件是週期性發生的,單比率排程是視週期長度而定的搶佔式策略,週期越短,優先順序越高。 ②、限期排程:當一個事件發生時,對應的實時程序/執行緒就被加入就緒佇列,此佇列按照截止期限排序,對於週期性事件,截止期限即為事件下一次發生的時間。 ③、最少裕度法:先計算各個程序/執行緒的富裕時間,即裕度,然後選擇裕度最少者執行。計算公式為:裕度=截止時間-(就緒時間+計算時間);裕度越小說明程序/執行緒越緊迫,就緒後令其儘快執行。
  16. 剝奪式(搶佔式)排程輪轉排程演算法(RR),最短剩餘時間有限演算法(SRTF)。
  17. 1、對I/O型程序,讓其進入最高優先順序佇列,以及時響應需要I/O 互動的程序。通常執行一個小的時間片,在該時間片內要求可處理完一次I/O請求的資料,然後轉入到阻塞佇列。 2、對計算型程序,每次執行完時間片後進入更低階佇列。最終採用最大時間片來執行。 I/O型程序優先順序高於計算型程序。
  18. 程序在執行過程中,請求和釋放資源的順序不當( 程序推進順序不當 ),導致了 程序死鎖 。
  19. 產生死鎖的原因主要是: (1) 因為系統資源不足。 (2) 程序執行推進的順序不合適。 (3) 資源分配不當等。
  20. 死鎖的四個必要條件**:1)互斥條件 2)佔有和等待條件 2)不可搶佔條件 4)環路等待條件(迴圈等待)**。 死鎖的處理方法: 死鎖預防:破壞四個條件;有序資源分配法可以破壞迴圈等待的條件;靜態分配資源可以打破“佔有和等待條件” 死鎖避免:分配資源前先判斷是否會出現死鎖;包括 銀行家演算法 死鎖檢測; 死鎖恢復:程序終止;程序回退;資源搶佔剝奪;
  21. 有序資源分配:這種演算法資源按某種規則系統中的所有資源統一編號,申請時必須以上升的次序。系統要求申請程序:   1、對它所必須使用的而且屬於同一類的所有資源,必須一次申請完;   2、在申請不同類資源時,必須按各類裝置的編號依次申請。 銀行家演算法:該演算法需要檢查申請者對資源的最大需求量,如果系統現存的各類資源可以滿足申請者的請求,就滿足申請者的請求。   這樣申請者就可很快完成其計算,然後釋放它佔用的資源,從而保證了系統中的所有程序都能完成,所以可避免死鎖的發生。
  22. 程序同步:在多道程式環境下,程序是併發執行的,不同程序之間存在著不同的相互制約關係。
  23. 程序控制塊包含的資訊: 1.程式ID(PID、程序控制代碼):它是唯一的,一個程序都必須對應一個PID。PID一般是整型數字 2.特徵資訊:一般分系統程序、使用者程序、或者核心程序等 3.程序狀態 :執行、就緒、阻塞,表示程序現的執行情況 4.優先順序:表示獲得CPU控制權的優先順序大小 5.通訊資訊:程序之間的通訊關係的反映,由於 作業系統 會提供 通訊通道 6.現場保護區:保護阻塞的程序用 7.資源需求、分配 控制資訊 8.程序實體資訊,指明程式路徑和名稱,程序資料在實體記憶體還是在 交換分割槽 (分頁)中 9.其他資訊:工作單位,工作區,檔案資訊等
  24. 程序控制塊包含的資訊: 1.標識資訊。 用於唯一地標識一個程序,常常分由使用者使用的外部識別符號和被系統使用的內部標識號。幾乎所有作業系統中程序都被賦予一個唯一的、內部使用的數值型的程序號,作業系統的其他控制表可以通過程序號來交叉引用程序控制表。常用的標識資訊包括程序識別符號、父程序的識別符號、使用者程序名、使用者組名等。 2.現場資訊。 用於保留一個程序在執行時存放在處理器現場中的各種資訊,任何一個程序在讓出處理器時必須把此時的處理器現場資訊儲存到程序控制塊中,而當該程序重新恢復執行時也應恢復處理器現場。常用的現場資訊包括通用暫存器的內容、控制暫存器(如PSW暫存器)的內容、使用者堆戰指標、系統堆餃指標等。  3.控制資訊。 用於管理和排程一個程序。常用的控制資訊包括: l)程序的排程相關資訊,如程序狀態、等待事件和等待原因、程序優先順序、佇列指引元等; 2)程序組成資訊,如正文段指標、資料段指標; 3)引程序間通訊相關資訊,如訊息佇列指標、訊號量等互斥和同步機制; 4)程序在輔儲存器內的地址; 5)CPU資源的佔用和使用資訊,如時間片餘量、程序己佔用CPU的時間、程序己執行的時間總和,記賬資訊; 6)程序特權資訊,如在記憶體訪問和處理器狀態方面的特權;
  25. 程序主要由資料段、程式段和PCB三部分內容組成。
  26. 程序的基本特徵有 動態性、併發性、獨立性、非同步性及結構性。 1 動態性:程序是程式的一次執行,它有著建立、活動、暫停、終止等過程,具有一定的生命週期,是動態地產生、變化和消亡的。動態性是程序最基本的特徵。 2 併發性:指多個程序實體,同存於記憶體中,能在一段時間內同時執行,併發性是程序的重要特徵,同時也是作業系統的重要特徵。引入程序的目的就是為了使程式能與其他程序的程式併發執行,以提高資源利用率。 3 獨立性:指程序實體是一個能獨立執行、獨立獲得資源和獨立接受排程的基本單位。凡未建立PCB的程式都不能作為一個獨立的單位參與執行。 4 非同步性:由於程序的相互制約,使程序具有執行的間斷性,即程序按各自獨立的、 不可預知的速度向前推進。非同步性會導致執行結果的不可再現性,為此,在作業系統中必須配置相應的程序同步機制。 5 結構性:每個程序都配置一個PCB對其進行描述。從結構上看,程序實體是由程式段、資料段和程序控制段三部分組成的。
  27. 程序是一個 獨立執行 的基本單位,也是一個 資源分配 和 CPU排程 的基本單位。
  28. 程序的佇列組織通常採用 連結 和 索引 的形式。
  29. 臨界資源的概念是“ 一次僅允許一個程序訪問的資源 ”,而臨界區是指 程序中訪問臨界資源的那段程式程式碼 。
  30. 對每個資源類只有一個資源的死鎖檢測程式根據“ 資源分配表 ”和“ 程序等待表 ”,判別是否出現死鎖。
  31. 用於實現互斥的同步機制必須遵循(臨界區的訪問規則): 空閒則入; 忙則等待; 有限等待; 讓權等待;
  32. 為實現基於訊息緩衝佇列的程序通訊,在程序控制塊中應增加 訊息佇列指標、訊息佇列的互斥訊號量、訊息佇列的資源訊號量。
  33. 程序通訊使用的信箱邏輯上分成 信箱頭 和 信箱體 兩部分 。
  34. 使用者和作業系統之間的介面主要分成 命令介面 和 系統功能呼叫兩 類。
  35. 根據作業的方式不同,命令介面又分為 聯機命令介面 和 脫節命令介面 。
  36. 處理機排程分為四級: 作業排程 ,交換排程, 程序排程 , 執行緒排程 。 作業排程:又稱巨集觀排程,或 高階排程 。作業排程的主要功能是根據 作業控制塊 中的資訊,審查系統能否滿足使用者作業的資源需求,以及按照一定的演算法,從外存的後備佇列中選取某些作業調入記憶體,併為它們建立程序、分配必要的資源。然後再將新建立的 程序插入 就緒 佇列 ,準備執行。 交換排程:又稱 中級排程 。其主要任務是按照給定的原則和策略,將處於外存交換區中的 就緒狀態 或等待狀態或記憶體等待狀態的程序交換到外存交換區。交換排程主要涉及到記憶體管理與擴充。因此在有些書本中也把它歸入記憶體管理部分。 程序排程:又稱微觀排程或 低階排程 。其主要任務是按照某種策略和方法選取一個處於就緒狀態的程序佔用處理機。在確立了佔用處理機之後,系統必須進行 程序上下文 切換以建立與佔用處理機程序相適應的執行環境。執行緒排程:程序中相關堆疊和控制表等的排程。
  37. 剝奪原則:時間片原則、優先權原則、短程序優先原則。
  38. 確定優先權的方法概括起來不外乎是基於 靜態特性 和 動態特性 兩種方法。前者所得到的是靜態優先權,後者所得到的是動態優先權。
  39. 死鎖產生的原因: (1)** 競爭資源** (2) 程序推進順序非法。 產生死鎖的四個必要條件: (1) 互斥條件:一個資源每次只能被一個程序使用。 (2) 請求與保持條件:一個程序因請求資源而阻塞時,對已獲得的資源保持不放。 (3) 不剝奪條件:程序已獲得的資源,在末使用完之前,不能強行剝奪。 (4) 迴圈等待條件:若干程序之間形成一種頭尾相接的迴圈等待資源關係。
  40. 化簡資源分配圖: 方法步驟: