1. 程式人生 > >作業系統複習 第三章

作業系統複習 第三章

第三章 處理機排程與死鎖

3.1 處理機的排程層次

  1. 高階排程:又稱長排程或作業排程,用於排程作業。主要功能是將外存上處於後備佇列的作業調入記憶體,為他們建立程序,分配資源,並將他們放入就行佇列中。高階排程主要用於多道批處理系統中,在分時和實時系統中不設定高階排程。
  2. 低階排程:程序排程或短程排程,排程物件是程序,主要工作是決定就緒佇列中那個程序獲得處理機,在多道批,分時,實時這三種系統中都必須有低階排程。
  3. 中級排程:記憶體排程,為了提高記憶體利用率和系統吞吐量,把暫時不用的程序,調至外存等候(掛起),當機會合適時,又重新調入記憶體。

3.2 處理機排程演算法的目標

1. 處理機利用率: CPU利用率=(CPU的有效工作時間)/(CPU有效工作時間+CPU空閒等待時間)
  1. 公平性,使所以程序都合理的獲得CPU時間
  2. 平衡性
  3. 策略強制執行
  4. 批處理系統目標:平均週轉時間,帶權週轉時間(作業的週轉時間與系統為它提供的服務的時間之比)短,系統吞吐量高,處理機利用率高。
  5. 分時系統的目標:響應時間快,均衡性。
  6. 實時系統的目標:截止時間保證(必須完成的最遲時間),可預測性。

作業和作業排程

1. 作業:作業不僅包含了通常的程式和資料,而且還應配有一份作業說明書。在批處理系統中是以作業為基本單位從外存調入記憶體的 2. 作業步:在作業執行期間,每個作業必須經過若干個相互獨立又相互關聯的順序加工步驟才能得到,每一個加工步驟就叫一個作業步。 3. 作業控制塊JCB:儲存了系統對作業進行管理和排程的全部資訊。 4. 作業執行的三個階段:收容階段(把作業輸入在硬碟上,再為該作業建立JCB,並放入後備佇列中)。執行階段(從第一次進入就緒狀態開始,到執行結束)。完成階段(作業執行完成) 5. 作業三狀態:後備狀態,執行狀態,完成狀態 6. 先來先服務演算法FCFS:即可用於作業排程,也可用於程序排程。 7. 段作業優先SJF:效率最高,但不公正。可分別用於程序排程和作業排程,採用它時,無法實現人機互動 8. 優先順序排程演算法PSA:根據外部賦予的優先順序 9. 高響應比優先順序排程HRRN:既考濾執行時間,又考慮等待時間。優先權=(等待時間+要求服務時間)/要求服務時間;等待時間+要求服務時間=響應時間。非常的公平。

程序排程

1. 程序排程的任務:儲存處理機現場資訊,按某種演算法選取程序,把處理機分配給程序。 2. 程序排程機制:排隊器(將就緒程序先放排隊器內,一旦成為就緒狀態,就立即放入就緒佇列中)。分配器(從就緒佇列中出來,等待上下文切換),上下文切換器(完成舊資訊的保留,新資訊的裝入)。 3. 非搶佔式:不因時鐘中斷或任何原因去搶佔當前正在執行程序的處理機。 4. 搶佔方式:可以防止一個長程序長時間佔用處理機,在分時系統中,只有搶佔方式才能實現人機互動。允許優先權高的搶佔當前程序,短程序優先,時間片原則(當前程序的一個時間片完成後,理解進行重新排程)。 5. 輪轉排程演算法:每隔一段時間進行一次中斷,完成一次排程,將CPU分配給隊首程序。 6. 程序切換時機:若一個時間片還沒有結束,正在執行的程序便已經完成,就立即啟用排程程式;或在一個時間片用完時,程序還沒有結束,就把它放隊尾,讓隊首程序獲得CPU。 7. 多級反饋佇列排程演算法:不必事先知道各程序所需時間。設定多個就緒佇列,不同佇列優先順序不同,優先順序越高,賦予的時間片越短。每個佇列都採用FCFS演算法。每當一個新程序進入時,先放在第一佇列末尾,如果可以在一個時間片內完成,那就就結束,否則下放到第二個佇列中.....依次這樣,直到到最後一個佇列中,執行RR方式到結束。始終先排程優先順序高的

死鎖問題

1. 資源: 可重用資源:每一個可重用資源單元只能分配給一個程序使用,系統中每一類可重用資源都是相對固定的。可消耗資源:在執行期間由程序動態產生的 2. 可搶佔性資源(CPU和主存)和不可搶佔資源(印表機等)。 3. 競爭不可搶佔資源,引起死鎖,競爭可消耗資源引起死鎖,程序推進順序不當引起死鎖。 4. 死鎖必要條件:互斥條件,請求和保持條件,不可搶佔條件,迴圈等待 5. 處理死鎖的方法:預防死鎖,避免死鎖,檢測死鎖,解除死鎖。

預防死鎖

1. 破壞請求保持和條件:一個程序在開始執行之前,必須一次性的申請其在整個執行過程中所需要的全部資源;或允許只獲得執行初期所需要的資源,在執行過程中,逐步釋放不需要資源,然後再請求新的所需資源。 2. 破壞不可搶佔條件:當一個已經保持了一些不可搶佔資源的程序,提出新的資源請求而不能得到滿足時,它必須釋放已經保持的所有資源。 3. 破壞迴圈等待條件:給資源進行編號,排序,規定低的能申請高的,但高的要申請低的,必須先釋放比他更高的。