資源描述:
《《處理機調(diào)度與死鎖》PPT課件》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、第三章 處理機調(diào)度與死鎖3.1處理機調(diào)度的層次3.2調(diào)度隊列模型和調(diào)度準則3.3調(diào)度算法3.4實時調(diào)度3.5產(chǎn)生死鎖的原因和必要條件3.6預防死鎖的方法3.7死鎖的檢測與解除3.1處理機調(diào)度的層次高級、中級和低級調(diào)度3.1.1高級調(diào)度(HighLevelScheduling)作業(yè)調(diào)度或長程調(diào)度(LongTermScheduling)1.作業(yè)和作業(yè)步(1)作業(yè)(Job)。作業(yè)不僅包含了通常的程序和數(shù)據(jù),而且還應配有一份作業(yè)說明書,系統(tǒng)根據(jù)該說明書來對程序的運行進行控制。在批處理系統(tǒng)中,是以作業(yè)為基本單位從外存調(diào)入內(nèi)存的。(2)作業(yè)步(JobS
2、tep)。作業(yè)的每一個順序加工步驟稱為一個作業(yè)步,各作業(yè)步之間存在著相互聯(lián)系,往往是把上一個作業(yè)步的輸出作為下一個作業(yè)步的輸入。例如,一個典型的作業(yè)可分成三個作業(yè)步:①“編譯”作業(yè)步,通過執(zhí)行編譯程序對源程序進行編譯,產(chǎn)生若干個目標程序段;②“連結裝配”作業(yè)步,將“編譯”作業(yè)步所產(chǎn)生的若干個目標程序段裝配成可執(zhí)行的目標程序;③“運行”作業(yè)步,將可執(zhí)行的目標程序讀入內(nèi)存并控制其運行。(3)作業(yè)流。若干個作業(yè)進入系統(tǒng)后,被依次存放在外存上,這便形成了輸入的作業(yè)流;在操作系統(tǒng)的控制下,逐個作業(yè)進行處理,于是便形成了處理作業(yè)流。2.作業(yè)控制塊JCB
3、(JobControlBlock)作業(yè)控制塊是作業(yè)在系統(tǒng)中存在的標志,其中保存了系統(tǒng)對作業(yè)進行管理和調(diào)度所需的全部信息。在JCB中通常應包含的內(nèi)容有:作業(yè)標識、用戶名稱、用戶帳戶、作業(yè)類型(CPU繁忙型、I/O繁忙型、批量型、終端型)、作業(yè)狀態(tài)、調(diào)度信息(優(yōu)先級、作業(yè)已運行時間)、資源需求(預計運行時間、要求內(nèi)存大小、要求I/O設備的類型和數(shù)量等)、進入系統(tǒng)時間、開始處理時間、作業(yè)完成時間、作業(yè)退出時間、資源使用情況等。作業(yè)進入系統(tǒng)建立JCB,插入相應的隊列。作業(yè)調(diào)度程序調(diào)度作業(yè)裝入內(nèi)存。在作業(yè)運行期間,按照JCB中的信息對作業(yè)進行控制。作
4、業(yè)執(zhí)行結束時,系統(tǒng)負責回收分配給它的資源,撤消它的作業(yè)控制塊。3.作業(yè)調(diào)度作業(yè)調(diào)度的主要功能是根據(jù)作業(yè)控制塊中的信息,審查系統(tǒng)能否滿足用戶作業(yè)的資源需求,以及按照一定的算法,從外存的后備隊列中選取某些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進程、分配必要的資源。然后再將新創(chuàng)建的進程插入就緒隊列,準備執(zhí)行。因此,有時也把作業(yè)調(diào)度稱為接納調(diào)度(AdmissionScheduling)。在每次執(zhí)行作業(yè)調(diào)度時,都須做出以下兩個決定。1)決定接納多少個作業(yè)取決于多道程序度(DegreeofMultiprogramming),即允許多少個作業(yè)同時在內(nèi)存中運行。當內(nèi)存
5、中同時運行的作業(yè)數(shù)目太多時,可能會影響到系統(tǒng)的服務質量,比如,使周轉時間太長。但如果在內(nèi)存中同時運行作業(yè)的數(shù)量太少時,又會導致系統(tǒng)的資源利用率和系統(tǒng)吞吐量太低。多道程序度的確定應根據(jù)系統(tǒng)的規(guī)模和運行速度等情況做適當?shù)恼壑浴?)決定接納哪些作業(yè)取決于所采用的調(diào)度算法。在批處理系統(tǒng)中,需要有作業(yè)調(diào)度的過程,以便將它們分批地裝入內(nèi)存。分時系統(tǒng)中無需配置作業(yè)調(diào)度機制,但需要有某些限制性措施來限制進入系統(tǒng)的用戶數(shù)。即,如果系統(tǒng)尚未飽和,將接納所有授權用戶,否則,將拒絕接納。在實時系統(tǒng)中通常也不需要作業(yè)調(diào)度。3.1.2低級調(diào)度(LowLevelSche
6、duling)進程調(diào)度、短程調(diào)度(ShortTermScheduling)調(diào)度的對象是進程(或內(nèi)核級線程)1.低級調(diào)度的功能調(diào)度用于決定就緒隊列中的哪個進程(或內(nèi)核級線程,為敘述方便,以后只寫進程)應獲得處理機,然后再由分派程序執(zhí)行把處理機分配給該進程的具體操作。低級調(diào)度程序是操作系統(tǒng)最為核心的部分,低級調(diào)度策略的優(yōu)劣直接影響到整個系統(tǒng)的性能低級調(diào)度的過程如下:(1)保存處理機的現(xiàn)場信息。如程序計數(shù)器、多個通用寄存器中的內(nèi)容等,將它們送入該進程的進程控制塊(PCB)中的相應單元。(2)按某種算法選取進程。低級調(diào)度程序按某種算法,從就緒隊列中
7、選取一個進程,把它的狀態(tài)改為運行狀態(tài),并準備把處理機分配給它。(3)把處理器分配給進程。由分派程序(Dispatcher)把處理器分配給進程。此時需為選中的進程恢復處理機現(xiàn)場,即把選中進程的進程控制塊內(nèi)有關處理機現(xiàn)場的信息裝入處理器相應的各個寄存器中,把處理器的控制權交給該進程,讓它從取出的斷點處開始繼續(xù)運行。2.進程調(diào)度中的三個基本機制(1)排隊器。(2)分派器(分派程序)。(3)上下文切換機制。當對處理機進行切換時,會發(fā)生兩對上下文切換操作。在第一對上下文切換時,操作系統(tǒng)將保存當前進程的上下文,而裝入分派程序的上下文,以便分派程序運行;
8、在第二對上下文切換時,將移出分派程序,而把新選進程的CPU現(xiàn)場信息裝入到處理機的各個相應寄存器中。應當指出,上下文切換將花去不少的處理機時間,即使是現(xiàn)代計算機,每一次上下文切換大