中級排程使用的方案稱為交換,為了改善程序組合,或者由於記憶體需求改變導致過度使用記憶體從而需要釋放記憶體,就有必要使用交換。
切換cpu到另外乙個程序需要儲存當前程序狀態和恢復另乙個程序狀態,這個任務稱為上下文切換。當進行上下文切換時,核心會將舊程序狀態儲存在其pcb中,然後載入經排程而要執行的新程序的上下文。
如果處理器提供了多個暫存器組,上下文切換只需簡單改變當前暫存器組的指標。當然,如果活動程序數量超過暫存器的組數,那麼系統需要像以前一樣在暫存器與記憶體之間進行資料複製。
方法不能實現
優點缺點
單標誌法
空閒讓進
-造成資源利用不充分
雙標誌先檢查
忙則等待不用交替進入,可連續使用
-雙標誌後檢查法
空閒讓進-
互相「謙讓」,可能造成飢餓
peterson
讓權等待
-注意:peterson演算法滿足有限等待,但不能實現讓權等待。
包括:
優點:適用於任意數目的程序,而不管是單處理機還是多處理機;簡單。
缺點:不能實現讓權等待,可能導致飢餓現象。
往年的考題會在選擇題裡出現這些方法的偽**,如果能一眼看出是哪個方法,再答題的時候會事半功倍。
本節內容參考自《現代作業系統》p86
關係分析。首先應該確定問題中存在哪些同步關係。只要存在一對同步關係,往往就需要一種資源訊號量。
確定臨界資源。
整理思路
資源訊號量值的含義(常考選擇題):
注意區分迴圈等待和死鎖。
銀行家演算法屬於死鎖避免。
預先靜態分配方法破壞的請求並保持條件,順序資源分配法破壞迴圈等待條件。
區分不安全狀態和死鎖。
程序狀態變化及可能的引起事件。
程序優先順序的設定。[《王道》p61t10]
關於時間片的程序排程演算法的敘述。
作業排程順序(在不同的排程演算法下)。
作業完成事件計算(畫甘特圖)
處理機排程的時機。
訊號量值的意義。
併發程序執行結果。
實現臨界區互斥的基本方法
考察對於死鎖預防、死鎖避免和死鎖檢測的區分。[《王道》p133t32]難題。
考察銀行家演算法和安全序列。需要熟練掌握銀行家演算法,選擇題可以使用排除法作答。
求死鎖狀態程序數。只能列舉。[《王道》p133t31]
作業系統 程序
在作業系統中,作業系統將記憶體,網路,檔案系統抽象為資源的統一抽象表示。1 什麼是程序 程序就是進入記憶體中正在執行的程式。把程序當做一組元素組成的實體。程序包括兩個部分,一部分是 部分,另一部分是 相關的資料集合。程序控制塊 每乙個程序,在核心中都對應著乙個程序控制塊。程序控制塊中儲存著程序的所有...
作業系統 程序
程序是作業系統中的重要概念,描述了程式的執行資訊。乙個程序就是一次執行。可以把程式想象成類,程序就是例項。引入程序的概念有利於實現多程式並行的設計。每乙個程式執行的時候可以大致分為io任務和計算任務,如果乙個程序正在io,那麼應該把cpu讓給另乙個程序執行計算任務,這樣可以提公升cpu的利用率,這就...
作業系統程序
乙個程序就是乙個正在執行的程式。它包括 程序狀態。包括 每個程序在作業系統中用程序控制塊pcb來表示,用來儲存與該程序有關的各種狀態資訊。pcb只是基本原理中的說法,對於乙個真實的作業系統可能不叫pcb,比如linux中叫做任務結構體 task struct 分時系統是在程序之間快速切換,以便使用者...