计算机操作系统笔记——处理器调度
? ?處理器調度可以分為三個級別:高級調度、中級調度和低級調度。
? ?低級調度是各類操作系統必須具有的功能;在純粹的分時或實時操作系統中,通常不需要配備高級調度;在分時系統或具有虛擬存儲器的操作系統中,為了提高內存利用率和作業吞吐量,專門引進了中級調度。高級調度發生在新進程的創建中,它決定一個進程能否被創建,或者是創建后能否被置成就緒狀態,以參與競爭處理器資源獲得運行;中級調度反映到進程狀態上就是掛起和解除掛起,它根據系統的當前負荷情況決定停留在主存中進程數;低級調度則是決定哪一個就緒進程或線程占有CPU 運行。
高級調度
高級調度(High Level Scheduling):又稱作業調度、長程調度(Long-termScheduling)在多道批處理操作系統中,作業是用戶要求計算機系統完成的一項相對獨立的工作,新提交的作業被輸入到磁盤,并保存在一個批處理后備作業隊列中。高級調度將按照系統預定的調度策略決定把后備隊列作業中的部分滿足其資源要求的作業調入主存,為它們創建進程,分配所需資源,為作業做好運行前的準備工作并啟動它們運行,當作業完成后還為它做好善后工作。在批處理操作系統中,作業首先進入系
統在輔存上的后備作業隊列等候調度,因此,作業調度是必須的,它執行的頻率較低,并和到達系統的作業的數量與速率有關。
中級調度
中級調度(Medium Level Scheduling):又稱平衡負載調度,中程調度(Medium-term Scheduling)。它決定主存儲器中所能容納的進程數,這些進程將允許參與競爭處理器和有關資源,而有些暫時不能運行的進程被調出主存,這時這個進程處于掛起狀態,當進程具備了運行條件,且主存又有空閑區域時,再由中級調度決定把一部分這樣的進程重新調回主存工作。中級調度根據存儲資源量和進程的當前狀態來決定輔存和主存中的進程的對換,它所使用的方法是通過把一些進程換出主存,從而,使之進入“掛起”狀態,不參與低級調度,起到短期平滑和調整系統負荷的作用。
低級調度
低級調度(Low Level Scheduling):又稱進程調度(或線程調度)、短程調度(Short_term Scheduling)。它的主要功能是按照某種原則決定就緒隊列中的哪個進程或內核級線程能獲得處理器,并將處理器出讓給它進行工作。低級調度中執行分配CPU 的程序稱分派程序(dispatcher),它是操作系統最為核心的部分,執行十分頻繁,低級調度策略優劣直接影響到整個系統的性能,因而,這部分代碼要求精心設計,并常駐內存工作。有兩類低級調度方式:
第一類稱剝奪方式:當一個進程或線程正在處理器上執行,若有另一個更高優先級或緊迫的進程或線程產生,則立即暫停正在執行的進程或線程,把處理器分配給這個更高優先級或緊迫的進程或線程使用。第二類稱非剝奪方式:一旦某個進程或線程開始執行后便不再出讓處理器,除非該進程或線程運行結束或發生了某個事件不能繼續執行。
批處理作業的管理與調度
作業(JOB)是用戶提交給操作系統計算的一個獨立任務。一般每個作業必須經過若干個相對獨立又相互關聯的順序加工步驟才能得到結果,其中,每一個加工步驟稱一個作業步(Job Step),例如,一個作業可分成“編譯”、“連結裝配”和“運行”三個作業步,往往上一個作業步的輸出是下一個作業步的輸入。作業由用戶組織,作業步由用戶指定,一個作業從提交給系統,直到運行結束獲得結果,要經過提交、收容、執行和完成四個階段。
批處理作業的管理
多道批處理操作系統具有獨立的作業管理模塊,為了有效管理作業,必須像進程管理一樣為每一個作業建立作業控制塊JCB(Job Control Block)。JCB 通常是在批作業進入系統時,由Spooling 系統建立的,它是作業存在于系統的標志,作業撤離時,JCB 也被撤銷。JCB 的主要內容從用戶作業說明書中獲得,包括:作業情況(用戶名、作業名、語言名等),資源需求(估計CPU 運行時間、最遲截止期、主存量、設備類型/臺數、文件數和數據量、函數庫/實用程序等),資源使用情況(進入系統時間、開始運行時間、己運行時間等),作業控制(優先數、聯機/脫機控制、操作順序、出錯
處理等),作業類型(CPU 繁忙型、I/O 繁忙型、批量型、終端型)等信息。當一個作業被操作系統接受,就必須創建一個作業控制塊,并且這個作業在它的
整個生命周期中將順序地處于以下四個狀態:
? 輸入狀態:此時作業的信息正在從輸入設備上預輸入。
? 后備狀態:此時作業預輸入結束但尚未被選中執行。
? 執行狀態:作業已經被選中并構成進程去競爭處理器資源以獲得運行。
? 完成狀態:作業已經運行結束,甚至己經撤離,但正在等待緩輸出運算結果。
多道批處理操作系統的處理器調度至少應該包括作業調度和低級調度兩個層次。作業調度屬于高級調度層次,處于后備狀態的作業在系統資源滿足的前提下可以被選中,從而,進入主存計算。只有處于執行狀態的作業才真正構成進程獲得運行和計算的機會。作業調度選中了一個作業且把它裝入主存儲器時就為該作業創建一個用戶進程。這些進程將在低級調度的控制下占有處理器運行。為充分利用處理器,往往可以把多個作業同時裝入主存儲器,這樣就會同時有多個用戶進程,這些進程都要競爭處理器。所以,進入計算機系統的作業只有經過兩級調度后才能占用處理器。第一級是作業調度,使作業進入主存儲器,同時生成相應于作業的進程;第二級是低級調度,使進程占用處理器。
作業調度算法
1、先來先服務算法
2、最短作業優先算法
3、響應比最高者優先(HRRF)算法
4、優先數法
5、分類調度算法
6、用磁帶與不用磁帶的作業搭配
低級調度
低級調度負責動態地把處理器分配給進程或內核級線程。操作系統中實現低級調度的程序稱為低級調度程序,或分派程序(dispatcher)。低級調度的主要功能是:
? 記錄進程(內核級線程)的狀態。這個信息一般記錄在一個進程(內核級線程)的進程控制塊(線程控制塊)內。
? 決定某個進程(內核級線程)什么時候獲得處理器,以及占用多長時間。
? 把處理器分配給進程(內核級線程)。即進行進程(內核級線程)上下文切換,把選中進程(內核級線程)的進程控制塊(線程控制塊)內有關現場的信息如程序狀態字、通用寄存器等內容送入處理器相應的寄存器中,從而,讓它占用處理器運行。
? 收回處理器。將處理器有關寄存器內容送入該進程(內核級線程)的進程控制塊(線程控制塊)內的相應單元,從而,使該進程讓出處理器。
低級調度算法
1、先來先服務算法
2、時間片輪轉調度
3、優先數調度
4、多級反饋隊列調度
5、保證調度算法
6、×××調度算法
實時調度
實時系統是那些時間因素非常關鍵的系統。例如,計算機的一個或多個外設發出信號,計算機必須在一段固定時間內做出適當的反應。一個實例是,計算機用CD-ROM放VCD 時,從驅動器中獲得的二進制數據必須在很短時間內轉化成視頻和音頻信號,如果轉換的時間太長,圖像顯示和聲音都會失真。其他的實時系統還包括監控系統、自動駕駛系統、安全控制系統等等,在這些系統中,遲到的響應即使正確,也和沒有響應一樣糟糕。
實時系統通常分為硬實時(hard real time)系統和軟實時(soft real time)系統。前者意味著存在必須滿足的時間限制;后者意味著偶爾超過時間限制是可以容忍的。這兩種系統中,實時性的獲得是通過將程序分成很多進程,而每個進程的行為都預先可知,這些進程處理周期通常都很短,當檢測到一個外部事件時,調度程序按滿足它們最后期限的方式調度這些進程。
實時調度算法
1)單比率調度算法
2)限期調度算法
3)最少裕度法
轉載于:https://blog.51cto.com/seasky09/1273071
總結
以上是生活随笔為你收集整理的计算机操作系统笔记——处理器调度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 闪存我自己来——HDS公布闪存路线图
- 下一篇: [转载]windows7中没用boot.