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