第2章 處理器管理_第1頁
第2章 處理器管理_第2頁
第2章 處理器管理_第3頁
第2章 處理器管理_第4頁
第2章 處理器管理_第5頁
已閱讀5頁,還剩97頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第二章處理器管理

計算機科學與通信工程學院2023/2/31計算機科學系操作系統(tǒng)課程組概述操作系統(tǒng)的重要任務之一:是充分、有效地利用系統(tǒng)的各類資源

最寶貴的資源:處理器

分配調度策略、處理沖突、資源回收

引入進程:作為資源分配的基本單位和基本實體

處理器的管理→進程管理

首先要介紹中斷的概念

中斷是實現(xiàn)處理器調度不可缺少的條件2023/2/32計算機科學系操作系統(tǒng)課程組第二章處理器管理2.1中斷系統(tǒng)2.2多道程序與并發(fā)執(zhí)行2.3進程2.4線程2.5UNIX中的進程管理2023/2/33計算機科學系操作系統(tǒng)課程組2.1中斷系統(tǒng)

中斷:在執(zhí)行期間,發(fā)生任何非尋常的或非預期的急需處理事件→使得CPU暫時中斷當前程序的執(zhí)行,而轉去執(zhí)行相應的事件處理程序,等到事件處理結束后又返回到原來被中斷的程序繼續(xù)執(zhí)行的過程。中斷的使用設備和CPU之間的通信:中斷控制方式、DMA方式和通道方式其它特殊情況2023/2/34計算機科學系操作系統(tǒng)課程組2.1中斷系統(tǒng)2.1.0中斷裝置2.1.1中斷系統(tǒng)的職能2.1.2

中斷的分類2.1.3

中斷的優(yōu)先級2.1.4中斷事件處理程序2023/2/35計算機科學系操作系統(tǒng)課程組2.1.0中斷裝置定義:發(fā)現(xiàn)產生中斷事件的硬件裝置稱為中斷裝置。2023/2/36計算機科學系操作系統(tǒng)課程組2.1.1中斷系統(tǒng)的職能

主要做以下三件事:發(fā)現(xiàn)中斷源,提出中斷請求:多個中斷源時,根據(jù)優(yōu)先級,發(fā)出中斷請求。保護現(xiàn)場:保存處理器中存放程序狀態(tài)字的寄存器信息,以便在中斷處理結束后恢復運行。啟動處理事件的程序:將處理中斷程序的程序狀態(tài)字送入處理器的程序狀態(tài)字寄存器,從而就引出了處理中斷的程序。引起中斷的事件2023/2/37計算機科學系操作系統(tǒng)課程組中斷處理過程示意圖存放舊程序狀態(tài)字(保護現(xiàn)場)取出新程序狀態(tài)字(引出中斷處理程序)

2023/2/38計算機科學系操作系統(tǒng)課程組2314567發(fā)現(xiàn)中斷源2023/2/39計算機科學系操作系統(tǒng)課程組2.1.2中斷的分類

1.軟件中斷(內部中斷)

-由CPU執(zhí)行某些指令引起的中斷;2.硬件中斷-除CPU和內存以外的硬件系統(tǒng)發(fā)出的中斷信號而引起的中斷;2023/2/310計算機科學系操作系統(tǒng)課程組2.1.2中斷的分類例:地址非法、除法出錯、溢出中斷

異常中斷。

異常一般分為三類:失效(Faults)陷阱(Traps)中止(Abort)

軟件中斷:執(zhí)行指令過程中產生的錯誤情況

2023/2/311計算機科學系操作系統(tǒng)課程組2.1.2中斷的分類時機:某條指令在啟動之后真正執(zhí)行之前被檢測到異常,產生中斷;失效中斷處理:進入相應的中斷處理;在中斷服務完成后返回該條指令;重新啟動該指令并執(zhí)行完成。

軟件中斷-失效:2023/2/312計算機科學系操作系統(tǒng)課程組2.1.2中斷的分類時機:執(zhí)行產生陷阱的指令而引起的。通常也稱為自愿訪管中斷例:DOS中的INT和UNIX中Trap命令的執(zhí)行。軟件中斷-陷阱:2023/2/313計算機科學系操作系統(tǒng)課程組2.1.2中斷的分類時機:異常發(fā)生后無法確定造成異常指令的實際位置時,原來的程序已無法繼續(xù)執(zhí)行處理方式:中斷服務程序往往重新啟動操作系統(tǒng)并重建系統(tǒng)表格

例:硬件錯誤或系統(tǒng)表格中的錯誤(主存出錯)

軟件中斷-中止2023/2/314計算機科學系操作系統(tǒng)課程組2.1.2中斷的分類例:I/O設備發(fā)的中斷、時鐘中斷。硬件中斷的分類:非屏蔽中斷:指不允許用戶干預的中斷;一旦發(fā)出中斷信號后,CPU要立即響應。

可屏蔽中斷:可通過每一類中斷源設置一個中斷屏蔽觸發(fā)器,屏蔽它們的中斷請求。(大多數(shù)硬件中斷都是可屏蔽中斷)硬件中斷2023/2/315計算機科學系操作系統(tǒng)課程組2.1.3中斷的優(yōu)先級問題:多個中斷信號同時產生時,如何進行處理有些中斷服務是不允許其它中斷打斷有些中斷要優(yōu)先處理中斷服務期間要響應比它更緊急的中斷

2023/2/316計算機科學系操作系統(tǒng)課程組2.1.3中斷的優(yōu)先級解決方法為每個中斷確定一個中斷優(yōu)先級定義:多個中斷事件同時發(fā)生時,中斷裝置應按規(guī)定的順序來響應,該順序稱為中斷優(yōu)先級。如何實現(xiàn)中斷優(yōu)先級-軟件查詢-硬件處理2023/2/317計算機科學系操作系統(tǒng)課程組2.1.3中斷的優(yōu)先級中斷優(yōu)先級由查詢的順序決定先被查詢的中斷具有高的優(yōu)先級設置一個中斷請求信號的寄存器將各中斷信號保存下來以便查詢對沒有處理的中斷請求作一個備忘錄優(yōu)點:可利用修改軟件的方法來改變中斷優(yōu)先級,而不必要更改硬件。

不足:服務效率低(先將優(yōu)先級高的設備查詢一遍)軟件查詢2023/2/318計算機科學系操作系統(tǒng)課程組2.1.3中斷的優(yōu)先級克服軟件方式的缺點采用硬件編碼器來組成中斷優(yōu)先級電路根據(jù)編碼器的編碼形式確定各個中斷信號的優(yōu)先級優(yōu)點:響應速度快,中斷能及時得到處理。缺點:修改優(yōu)先級困難,不靈活。

硬件處理2023/2/319計算機科學系操作系統(tǒng)課程組2.1.4中斷事件處理程序一般分為三類:1.處理器中斷事件的處理2.自愿中斷事件的處理3.外部中斷事件的處理2023/2/320計算機科學系操作系統(tǒng)課程組中斷處理程序定義:處理中斷事件的處理控制程序任務:處理中斷事件,恢復正常操作。主要完成的工作:保護未被硬件保護的內容取出中斷字分析;根據(jù)中斷原因轉不同處理;恢復正常操作(恢復運行某一程序、重新調度另一程序運行、重新啟動OS)2023/2/321計算機科學系操作系統(tǒng)課程組1.處理器中斷事件的處理這種事件是由硬件的故障而產生;排除這種故障必須進行人工干預;應付措施:(1)保護現(xiàn)場防止故障曼延(2)報告操作員并提供故障信息以便維修和校正(3)對程序中所造成的破壞進行估價和恢復

2023/2/322計算機科學系操作系統(tǒng)課程組例:發(fā)生電源故障中斷事件的處理掉電時做以下三項工作處理器中有關寄存器內的信息送主存儲器保存起來,以便在故障排除后恢復現(xiàn)場繼續(xù)工作。停止外圍設備工作;不能立即停止,將設備記錄下來。停止處理器工作。故障排除后,從一個約定點啟動操作系統(tǒng):啟動被停止的外圍設備繼續(xù)工作。如果發(fā)生故障時,有不能立即停止的外圍設備正在工作,那么涉及這些外圍設備的程序將被停止執(zhí)行而等待操作員的干預命令。選擇可以運行的程序繼續(xù)運行。2023/2/323計算機科學系操作系統(tǒng)課程組2.自愿中斷事件的處理由系統(tǒng)程序或用戶程序執(zhí)行訪管指令而引起的(程序對操作系統(tǒng)功能的調用)訪管指令(廣義指令)包括操作碼:表示這條指令是訪管指令

訪管參數(shù)(廣義指令的操作碼):表示具體的訪管要求

系統(tǒng)調用2023/2/324計算機科學系操作系統(tǒng)課程組2.自愿中斷事件的處理自愿中斷事件處理過程:硬件在執(zhí)行訪管指令時:把訪管參數(shù)作為中斷字并入程序狀態(tài)字,送入主存指定單元;轉向操作系統(tǒng)處理。操作系統(tǒng)接收到后分析訪管參數(shù)進行合法性檢查照訪管參數(shù)的要求進行相應的處理2023/2/325計算機科學系操作系統(tǒng)課程組2.自愿中斷事件的處理訪管指令的用處:向操作系統(tǒng)提出啟動外圍設備的要求控制程序的要求申請主存資源的要求申請外圍設備的要求2023/2/326計算機科學系操作系統(tǒng)課程組3.外部中斷事件的處理包括時鐘的定時中斷來自控制臺的信息

控制臺中斷事件的處理使用控制臺開關,就產生一個控制臺中斷;處理這種中斷=接受一條操作命令;轉向處理操作命令的執(zhí)行程序。2023/2/327計算機科學系操作系統(tǒng)課程組3.外部中斷事件的處理時鐘中斷事件的處理時鐘可以分成絕對時鐘和間隔時鐘;絕對時鐘中斷系統(tǒng)有一個絕對時鐘寄存器,定時加1;當寄存器溢出時,就產生一次絕對時鐘中斷;處理時,只要在主存的固定單元上加1。固定單元記錄了絕對時鐘中斷的次數(shù),絕對時間為固定單元內容與絕對時鐘寄存器值的綜合。2023/2/328計算機科學系操作系統(tǒng)課程組3.外部中斷事件的處理間隔時鐘中斷間隔時鐘寄存器中放一個預定的值;定時將一個間隔時鐘寄存器的內容減1;寄存器的內容為0時,產生一個間隔時鐘中斷。起鬧鐘作用,進行控制調度。2023/2/329計算機科學系操作系統(tǒng)課程組2.2多道程序與并發(fā)執(zhí)行本節(jié)內容:分析程序順序執(zhí)行的特點對程序順序執(zhí)行的缺點進行分析引入程序的并發(fā)執(zhí)行解決問題分析程序的并發(fā)執(zhí)行和特點

2.2.1程序的順序執(zhí)行和特點2.2.2程序的并發(fā)執(zhí)行和特點2023/2/330計算機科學系操作系統(tǒng)課程組2.2.1程序的順序執(zhí)行和特點計算機上運行的是:程序程序:是指令的有序集合-它規(guī)定完成某一任務時所需做的各種操作-規(guī)定操作順序單道程序系統(tǒng):每次只允許一道程序進入計算機執(zhí)行的系統(tǒng)。2023/2/331計算機科學系操作系統(tǒng)課程組2.2.1程序的順序執(zhí)行和特點單道程序系統(tǒng)每次只允許一道程序運行;它將獨占系統(tǒng)資源(處理器、主存、輔存、外設、軟件)系統(tǒng)按照程序的步驟順序地執(zhí)行。在該程序執(zhí)行完之前,其它程序只能等待。

2023/2/332計算機科學系操作系統(tǒng)課程組2.2.1程序的順序執(zhí)行和特點例:假設有兩道程序都需運行,在單道程序系統(tǒng)中的運行情況如下:I代表輸入,用C代表計算,P代表打印程序1程序2I1C1P1I2C2P22023/2/333計算機科學系操作系統(tǒng)課程組2.2.1程序的順序執(zhí)行和特點順序執(zhí)行的特點:程序執(zhí)行的順序性:前一步完才做下一步;程序運行時對資源的獨占性:沒有其它程序與之爭奪資源程序結果的可再現(xiàn)性:程序執(zhí)行的結果與執(zhí)行速度、時間無關。程序結果的封閉性:程序的運行只由初始條件和程序本身來確定。2023/2/334計算機科學系操作系統(tǒng)課程組2.2.1程序的順序執(zhí)行和特點優(yōu)點:系統(tǒng)管理簡單缺點:使系統(tǒng)的資源得不到充分的利用。中斷和通道技術的引入2023/2/335計算機科學系操作系統(tǒng)課程組2.2.2程序的并發(fā)執(zhí)行和特點程序的并發(fā)執(zhí)行:一道程序不用某一系統(tǒng)資源,另一道程序就可以馬上利用多道程序并發(fā)執(zhí)行的情形:宏觀:同時駐留在主存的幾道程序都按照自己的程序規(guī)定動作執(zhí)行;微觀:是這幾道程序交替執(zhí)行;PQR并發(fā)執(zhí)行區(qū)2023/2/336計算機科學系操作系統(tǒng)課程組2.2.2程序的并發(fā)執(zhí)行和特點例如:I1、C1、P1的執(zhí)行必須嚴格按照I1,C1,P1的順序,而P1與I2,C1與I2,I3與P1是可以同時執(zhí)行的。2023/2/337計算機科學系操作系統(tǒng)課程組2.2.2程序的并發(fā)執(zhí)行和特點程序的并發(fā)執(zhí)行的特點:程序執(zhí)行時的資源共享性:硬資源、軟件資源(系統(tǒng)軟件、數(shù)據(jù));程序失去了封閉性和可再現(xiàn)性:舉例并發(fā)程序之間的相互制約性:共享系統(tǒng)內的資源,因此程序之間產生相互制約關系。并發(fā)程序活動規(guī)律:執(zhí)行—暫?!獔?zhí)行程序:靜態(tài)概念(難于描述動態(tài)系統(tǒng))進程2023/2/338計算機科學系操作系統(tǒng)課程組例:Varn:integer{設置一個共享變量}

beginn:=0;{變量n初值為0}

cobegin{進入并發(fā)執(zhí)行}

programA;beginL1:n:=n+1;{程序A每次對n+1}gotoL1{無限循環(huán)}

end

programB;beginL2:print(n);{程序B每次打印值}

n:=0;{并將n置為0}

gotoL2{無限循環(huán)}

endcoend{并發(fā)結束}

end2023/2/339計算機科學系操作系統(tǒng)課程組2.3進程2.3.1進程的概念2.3.2進程的實體2.3.3進程狀態(tài)和轉換2.3.4進程的控制2.3.5進程的調度進程的引入:程序的缺點:無法表示系統(tǒng)的動態(tài)特性,如:兩個用戶同時執(zhí)行CC編譯自己的程序,某時刻程序的執(zhí)行狀態(tài)難以刻畫(運行、就緒、等待?)。引入進程(程序+處理對象)可表示執(zhí)行動態(tài)特性。2023/2/340計算機科學系操作系統(tǒng)課程組2.3.1進程的概念進程的六種理解方法(任務、活動)任何一個處于執(zhí)行的程序。可以和別的計算并發(fā)執(zhí)行的計算。程序及其數(shù)據(jù)在處理器上順序執(zhí)行時的活動。抽象實體,當它執(zhí)行一個任務時,將要分配和釋放各種資源。獨立的可以調度的活動。具有獨立功能的程序關于某個數(shù)據(jù)集合的一次運行活動。

2023/2/341計算機科學系操作系統(tǒng)課程組2.3.1進程的概念進程的定義(程序段+數(shù)據(jù))能和其它程序并行執(zhí)行的程序段在某數(shù)據(jù)集合上的一次運行過程,它是系統(tǒng)資源分配和調度的一個獨立單位。注意的問題:程序段可以并行執(zhí)行。(并發(fā)性)基礎是一個程序段,而不是整個程序。程序段在數(shù)據(jù)上的一次運行(某數(shù)據(jù)集合上的運行)動態(tài)的,是程序的一次執(zhí)行過程。(動態(tài)性)能獨立運行的基本單位。(獨立性)2023/2/342計算機科學系操作系統(tǒng)課程組2.3.1進程的概念進程和程序的區(qū)別:進程是一段程序的一次運行活動:動態(tài)概念;有一定“生命期”。程序是一組指令的集合:靜態(tài)概念程序段運行在兩個不同數(shù)據(jù)集合上,就是兩個不同的進程;一個程序可以對應多個進程;一個進程至少要對應一個程序,或對應多個程序,多個進程也可對應相同的程序。進程具有并行特征(獨立性和異步性)進程是資源分配的基本單位例子:光盤(CD、VCD)光盤(程序)放光盤的活動(進程)2023/2/343計算機科學系操作系統(tǒng)課程組2.3.1進程的概念進程與作業(yè)的關系:

作業(yè)是用戶向計算機提交任務的實體,進程是完成任務的實體作業(yè)可由多個進程組成(至少一個),反之不然作業(yè)主要存在于批處理系統(tǒng),而進程可存在于所有形式的操作系統(tǒng)中。2023/2/344計算機科學系操作系統(tǒng)課程組2.3.2進程的實體1、進程的組成程序:進程→完整的程序、一部分程序;數(shù)據(jù)集合:運行需要的數(shù)據(jù)、工作區(qū)域;進程控制塊(PCB):描述和標志進程(創(chuàng)建進程時,建立PCB;完成任務被撤銷時,撤銷PCB。)物質基礎純代碼(pure)它在執(zhí)行中自身不改變。也稱為可重入(Reentry);享用該程序的各進程應提供工作區(qū)。2023/2/345計算機科學系操作系統(tǒng)課程組2.3.2進程的實體進程控制塊

PCB(ProcessControlBlock)

存放進程的管理和控制信息(標識信息,說明信息,現(xiàn)場信息,管理信息)的數(shù)據(jù)結構稱為進程控制塊。在創(chuàng)建進程時,建立PCB,并伴隨進程運行的全過程,直到進程撤消而撤消。PCB就象我們的戶口表。標識說明現(xiàn)場2023/2/346計算機科學系操作系統(tǒng)課程組2.3.2進程的實體2.PCB的組織方式(為了管理上的方便)線性方式:所有的PCB組成一個數(shù)組;鏈接方式:運行隊列、就緒隊列、阻塞隊列;索引方式:建立N張索引表。例如就緒索引表、阻塞索引表等。

2023/2/347計算機科學系操作系統(tǒng)課程組2.3.2進程的實體線性方式PCB使用一個數(shù)組來組織和保存通過下標訪問PCB缺點:找到某一狀態(tài)的PCB,需要掃描整個線性表;PCBPCBPCB……PCB2023/2/348計算機科學系操作系統(tǒng)課程組2.3.2進程的實體鏈接方式將具有相同狀態(tài)的PCB,使用鏈表的形式組成一個隊列;系統(tǒng)使用固定單元,保存各隊列的第一個PCB的起始地址;隊列類型:運行隊列(多處理機)、就緒隊列、阻塞隊列;2023/2/349計算機科學系操作系統(tǒng)課程組2.3.2進程的實體運行隊列就緒隊列阻塞隊列2023/2/350計算機科學系操作系統(tǒng)課程組2.3.2進程的實體索引方式還是使用統(tǒng)一的隊列存放PCB;根據(jù)所有進程狀態(tài),建立N張索引表;索引表的首地址記錄于內存中的專用單元中;2023/2/351計算機科學系操作系統(tǒng)課程組2.3.3進程狀態(tài)和轉換1.

進程的三種基本狀態(tài)進程:動態(tài)的概念,表示了執(zhí)行過程。(生命期)為了便于管理:對進程的不同時刻的不同狀況,進行劃分;三種基本狀態(tài)(按照對資源的占用情況)就緒狀態(tài):執(zhí)行狀態(tài):阻塞狀態(tài):2023/2/352計算機科學系操作系統(tǒng)課程組2.3.3進程狀態(tài)和轉換(1)就緒狀態(tài)進程其它全部資源;但不能占用CPU;一旦獲得CPU就可以執(zhí)行;(2)執(zhí)行狀態(tài)已獲得必要的資源并占有CPU,正在執(zhí)行;單處理器系統(tǒng):只能有一個進程處于執(zhí)行狀態(tài)多機處理系統(tǒng):可能有多個進程處于執(zhí)行狀態(tài)(3)阻塞(等待)狀態(tài)進程因等待某一事件而暫不能執(zhí)行的狀態(tài);是等待除CPU外的資源或事件。CPU是一類特殊的資源2023/2/353計算機科學系操作系統(tǒng)課程組2.3.3進程狀態(tài)和轉換狀態(tài)的細分(為了管理和調度的便利,如PDP11的UNIX)運行狀態(tài)(執(zhí)行、就緒狀態(tài)):高優(yōu)先級睡眠狀態(tài):低優(yōu)先級睡眠狀態(tài):創(chuàng)建進程狀態(tài):正在被創(chuàng)建時等待終止處理狀態(tài):運行結束未撤消時暫停狀態(tài):被跟蹤時本質:在三態(tài)的基礎上再分。等待或阻塞狀態(tài)2023/2/354計算機科學系操作系統(tǒng)課程組2.3.3進程狀態(tài)和轉換2.進程狀態(tài)的轉換(運行過程中)產生的原因:自身的進展情況與其它進程并發(fā)執(zhí)行外界條件的變化2023/2/355計算機科學系操作系統(tǒng)課程組2.3.3進程狀態(tài)和轉換就緒狀態(tài)執(zhí)行狀態(tài)阻塞狀態(tài)資源滿足且獲得CPU(選中)

時間片用完(落選)等待事件已發(fā)生(資源得到滿足)

等待事件發(fā)生(等待資源)狀態(tài)轉換2023/2/356計算機科學系操作系統(tǒng)課程組2.3.3進程狀態(tài)和轉換UNIX中的實際例子等待終止處理狀態(tài)占有處理器

睡眠狀態(tài)高優(yōu)先級低優(yōu)先級睡眠睡眠等待處理器暫停退出調度睡眠喚醒停止跟蹤跟蹤2023/2/357計算機科學系操作系統(tǒng)課程組2.3.4進程控制進程是有生命周期的,產生、運行、暫停、終止。對進程的這些操作叫進程控制。進程控制的職責是對系統(tǒng)中全部進程實施有效的管理,它是處理機管理的部分(另一部分是進程調度),當系統(tǒng)允許多進程并發(fā)執(zhí)行時,為了實現(xiàn)共享、協(xié)調并發(fā)進程的關系,處理機管理必須提供對進程實行有效的管理。2023/2/358計算機科學系操作系統(tǒng)課程組2.3.4進程控制問題:進程的三態(tài)和轉換,如何控制它們的進行:如何對進程的整個生命期進行控制:創(chuàng)建、撤消進程控制的主要任務:對系統(tǒng)中所有進程從創(chuàng)建到消亡的全過程實行有效地管理和控制。包括對進程狀態(tài)變化加以管理和控制;創(chuàng)建新進程和撤消已完成任務的進程;2023/2/359計算機科學系操作系統(tǒng)課程組2.3.4進程控制進程控制包括:

進程創(chuàng)建、

進程撤消、

進程阻塞、

進程喚醒。

這些操作都要對應地執(zhí)行一個特殊的程序段(操作系統(tǒng)核心程序),同時系統(tǒng)也通過系統(tǒng)調用給用戶提供進程控制的功能。教材上叫原語(一種特殊的系統(tǒng)調用)。

原語:

用于完成特定功能的一段程序模塊;執(zhí)行期間不可分割。2023/2/360計算機科學系操作系統(tǒng)課程組2.3.4進程控制運行狀態(tài)

等待狀態(tài)

進程阻塞等待狀態(tài)

就緒狀態(tài)

進程喚醒新建進程置為就緒狀態(tài)進程創(chuàng)建進程終止(消亡)

進程撤消就緒狀態(tài)

運行狀態(tài)

進程調度2023/2/361計算機科學系操作系統(tǒng)課程組2.3.4進程控制OS的內核中,用于進程控制的原語創(chuàng)建原語撤銷原語阻塞原語喚醒原語對應進程的建立和撤消對應進程狀態(tài)轉換使進程在等待和就緒態(tài)之間轉換2023/2/362計算機科學系操作系統(tǒng)課程組2.3.4進程控制1.創(chuàng)建原語-用于建立新的進程。建立進程的兩種方式-由操作系統(tǒng)建立;-由其它進程創(chuàng)建一個新的進程;形成父子進程關系建立過程AB1B2C1C2C32023/2/363計算機科學系操作系統(tǒng)課程組2.3.4進程控制創(chuàng)建過程填寫相關信息申請PCB,分配惟一的數(shù)字標示符c調入程序設置為就緒狀態(tài)2023/2/364計算機科學系操作系統(tǒng)課程組2.3.4進程控制2.撤消原語完成任務后,釋放它所占用的資源;實質:撤消進程存在標志(進程控制塊PCB)并釋放資源包括子孫進程2023/2/365計算機科學系操作系統(tǒng)課程組2.3.4進程控制進程撤銷過程檢索該進程PCB從相應隊列刪除查找所有的子孫進程釋放這些進程的資源包括PCB如進程原來為執(zhí)行狀態(tài)重新調度進程執(zhí)行2023/2/366計算機科學系操作系統(tǒng)課程組2.3.4進程控制3.阻塞原語使用原因:因缺乏資源、等待I/O操作(也是資源的一種形式)等,而使用;使用目的:阻塞自己,進入阻塞態(tài),使OS可以調度別的進程進入執(zhí)行態(tài)。2023/2/367計算機科學系操作系統(tǒng)課程組2.3.4進程控制阻塞過程保存當前進程的現(xiàn)場設置進程狀態(tài)為等待進程進入阻塞隊列轉進程調度選擇一個就緒態(tài)進程執(zhí)行例如,進程是因等待打印機而進入阻塞狀態(tài),則該進程將加入到等待打印機的隊列。進程掛起的系統(tǒng)調用算法和隊列變化如下:2023/2/368計算機科學系操作系統(tǒng)課程組2.3.4進程控制4.喚醒原語使用條件:某個資源得到滿足目的:喚醒所有等待該資源的進程,放入就緒隊列,等待調度;喚醒過程:從等待隊列中摘下進程設置進程狀態(tài)為就緒進程進入就緒隊列轉進程調度或返回原進程2023/2/369計算機科學系操作系統(tǒng)課程組2.3.4進程控制注意的問題:創(chuàng)建原語和撤消原語阻塞原語和喚醒原語分別都是一對相對的操作原語使用時,要注意成對的使用。2023/2/370計算機科學系操作系統(tǒng)課程組2.3.5進程調度(處理器調度)前面:進程的三態(tài)進程操作中的幾個原語控制狀態(tài)轉換沒有解決的:就緒態(tài)→執(zhí)行態(tài)按什么策略轉換本節(jié):按照什么樣的策略進行就緒態(tài)→執(zhí)行態(tài)的調度產生的原因:系統(tǒng)資源有限用戶進程數(shù)往往多于處理器數(shù)目;不可能同時執(zhí)行同時,處理器是計算機中的一類最特殊的資源。2023/2/371計算機科學系操作系統(tǒng)課程組2.3.5進程調度調度的層次(三級)高級調度(宏調度或作業(yè)調度)作業(yè):用戶在一次計算或處理過程中,要求計算機所做的一系列工作的集合。高級調度(宏調度或作業(yè)調度):按某種原則從外存的后備作業(yè)中,選一個或幾個進入內存,并為其運行做好有關準備工作;將作業(yè)變?yōu)橐粋€或一組進程,分配必要的資源,進入就緒隊列。批處理系統(tǒng)中用分時系統(tǒng)不用2023/2/372計算機科學系操作系統(tǒng)課程組2.3.5進程調度(處理器調度)中級調度:內外存之間的進程對換,將內存中處于等待態(tài)的進程調到外存對換區(qū),將對換區(qū)中處于就緒態(tài)的進程調到內存,解決內存緊張問題。用“掛起”和“解掛”命令調整系統(tǒng)負荷。低級調度:微調度或進程調度

決定就緒隊列中哪個進程將獲得處理器;常駐內存,執(zhí)行頻率很高,幾十毫秒一次批處理系統(tǒng)分時系統(tǒng)都用2023/2/373計算機科學系操作系統(tǒng)課程組2.3.5進程調度調度的功能(由調度程序來實現(xiàn))保護執(zhí)行進程的現(xiàn)場(程序狀態(tài)寄存器、指令計數(shù)器、通用寄存器)查詢、登記和更新PCB的相應項,選擇合適的進程執(zhí)行(進入執(zhí)行態(tài))恢復被調度到的進程的原來現(xiàn)場;讓被選中的進程繼續(xù)執(zhí)行。2023/2/374計算機科學系操作系統(tǒng)課程組2.3.5進程調度調度的方式指把CPU分配給進程后,它能占用多長時間。兩種方式剝奪式(搶占式):可以強行將CPU的控制權從當前進程轉給其它進程。優(yōu)先級原則、短進程原則、時間片原則非剝奪式(非搶占式):只能由該進程主動出讓CPU控制權;優(yōu)點:簡單,系統(tǒng)開銷小。缺點:不能及時處理緊急任務。2023/2/375計算機科學系操作系統(tǒng)課程組2.3.5進程調度

進程調度算法直接影響到操作系統(tǒng)的適用環(huán)境和工作效率;對不同的系統(tǒng)及系統(tǒng)目標,有不同的調度算法;常用的算法時間片輪轉法(分時系統(tǒng))就緒態(tài)的進程輪流占用CPU執(zhí)行一定的時間(時間片);時間片按順序賦予就緒隊列中的每一個進程;規(guī)定時間片內未執(zhí)行完畢,也必須釋放CPU;。。。CPU完成2023/2/376計算機科學系操作系統(tǒng)課程組2.3.5進程調度優(yōu)先級調度(批處理系統(tǒng)和實時系統(tǒng))處理器分配給就緒隊列中最高優(yōu)先級的進程;關鍵在于如何確定進程的優(yōu)先級:靜態(tài)優(yōu)先級:在進程創(chuàng)建時即被確定的,不變化;確定優(yōu)先級的依據(jù):進程類型對資源的需求用戶要求動態(tài)優(yōu)先級:按某種原則不斷修改進程的優(yōu)先級;占用CPU時間的長短:長的優(yōu)先級別低等待處理器時間的長短:長的優(yōu)先級別高簡單,不精確易形成獨占調節(jié)性能好復雜,開銷大2023/2/377計算機科學系操作系統(tǒng)課程組2.3.5進程調度多重隊列輪換法把時間片輪轉法中的單就緒隊列→雙就緒隊列或多就緒隊列,賦每個隊列以不同的優(yōu)先權;調度順序:先高優(yōu)先權的進程,后低優(yōu)先權的進程。2023/2/378計算機科學系操作系統(tǒng)課程組2.3.5進程調度特點每個就緒隊列按“先來先服務”的原則獲得CPU;隊列之間的關系:優(yōu)先序數(shù)小者優(yōu)先。優(yōu)先序數(shù)的確定:優(yōu)先權高優(yōu)先序數(shù)小時間片長優(yōu)先序數(shù)大進程用完時間片后未完成,排入下一級就緒隊列中;阻塞的進程轉為就緒狀態(tài)時,安排在序數(shù)較?。▋?yōu)先級高)的就緒隊列中;調度總是先調度序數(shù)較小隊列中的進程;2023/2/379計算機科學系操作系統(tǒng)課程組2.4線程首先先分析進程的局限性線程的特性線程和進程的關系線程的實現(xiàn)2023/2/380計算機科學系操作系統(tǒng)課程組2.4.1線程的引入線程是對程序并發(fā)機制的進一步改善。引入的理由為:原并發(fā)機制是建立在進程基礎上,當有并發(fā)進程搶占CPU時需進行進程上下文的切換,代價高。改善后并發(fā)機制是建立在線程基礎上的,線程調度時不發(fā)生進程上下文的切換,可省去CPU的時間。引入線程后原有進程的兩個特征分別處理——操作系統(tǒng)的調度分配單位用線程描述;資源的分配單位仍用進程。2023/2/381計算機科學系操作系統(tǒng)課程組2.4.1線程的引入線程:進程中的一個實體,比進程更小的獨立運行的基本單位;(不獨立擁有資源)進程內的基本調度單位。2023/2/382計算機科學系操作系統(tǒng)課程組2.4.1線程的引入線程的屬性四部分組成:惟一的標識符、狀態(tài)寄存器兩個棧、私用存儲器被系統(tǒng)獨立調度和分派的基本單位;本身很小,調度開銷小。線程可以創(chuàng)建和撤消另一個線程;同一個進程中的線程可以并發(fā)執(zhí)行;不同進程中的線程也能并發(fā)執(zhí)行;PCB用戶地址空間用戶棧核心棧進程2023/2/383計算機科學系操作系統(tǒng)課程組2.4.1線程的引入PCB用戶地址空間線程1線程控制塊用戶棧核心棧線程控制塊用戶棧核心棧線程控制塊用戶棧核心棧線程控制塊用戶棧核心棧線程控制塊用戶棧核心棧線程控制塊用戶棧核心棧線程2線程3多線程:2023/2/384計算機科學系操作系統(tǒng)課程組2.4.1線程的引入引入線程后的優(yōu)勢:1)在已有進程中創(chuàng)建或終止一個線程遠比控制進程來得快2)線程間的切換更容易更快捷3)線程間的通信無須內核干涉可直接進行2023/2/385計算機科學系操作系統(tǒng)課程組2.4.1線程的引入線程和進程的關系線程:進程內的一個執(zhí)行單元;進程至少有一個線程;它們共享進程的地址空間;進程:有自己獨立的地址空間;進程:資源分配和擁有的單位;線程:同一個進程內的線程共享進程的資源;進程:不是處理器調度的基本單位;線程:成為處理器調度的基本單位;進程:之間并發(fā)執(zhí)行;線程:之間并發(fā)執(zhí)行;地址空間資源擁有調度單位執(zhí)行方式同樣有三態(tài)轉換和創(chuàng)建和終止2023/2/386計算機科學系操作系統(tǒng)課程組2.4.1線程的引入進程、線程、程序、純程序概念比較程序:靜態(tài)的概念,無并發(fā)性;進程和線程:動態(tài)的概念,有并發(fā)性;進程:程序段+數(shù)據(jù)集擁有資源,有自己獨立的地址空間;線程:不獨占資源,共享進程資源,無獨立地址空間純程序:只有程序,本身無資源,調用程序提供數(shù)據(jù)區(qū)。2023/2/387計算機科學系操作系統(tǒng)課程組系統(tǒng)中進程與線程的表現(xiàn)形式可以是多樣的:2023/2/388計算機科學系操作系統(tǒng)課程組線程的狀態(tài)與管理

線程三種基本狀態(tài)(1)就緒狀態(tài):表示線程已具備執(zhí)行條件,等待調度程序分配CPU運行。(2)運行狀態(tài):表示線程被調度程序選中,并正占有CPU運行。(3)等待狀態(tài):表示線程正在等待某個事件發(fā)生。2023/2/389計算機科學系操作系統(tǒng)課程組線程的狀態(tài)與操作

就緒執(zhí)行阻塞結束派生調度結束阻塞激活2023/2/390計算機科學系操作系統(tǒng)課程組Java運行時系統(tǒng)(Javarun-timesystem)的線程狀態(tài)及轉換

Java線程的狀態(tài)與操作新線程可運行阻塞死亡newstart()resume()stop()exit()sleep()suspend()I/O2023/2/391計算機科學系操作系統(tǒng)課程組線程的典型應用場合

前后并行工作場合:如,表處理

異步處理工作場合:如,設置一個備份線程,它每隔一分鐘把RAM緩沖區(qū)的數(shù)據(jù)和信息寫入磁盤

需要加快執(zhí)行速度的場合:如,一個線程在計算一批數(shù)據(jù)時另一個線程可以從設備上輸入下一批數(shù)據(jù),從而加快進程的執(zhí)行速度

組織復雜工作的程序:如,多個不同的任務需要處理,多線程機制可方便程序的設計和組織,且可提高整個系統(tǒng)效率。同時有多個用戶服務請求的場合:如,文件服務器2023/2/392計算機科學系操作系統(tǒng)課程組2.4.2線程的實現(xiàn)兩種方式:1.內核支持線程的實現(xiàn)2.用戶級線程的實現(xiàn)1.內核支持線程的實現(xiàn)由OS內核管理:創(chuàng)建、撤消和切換內核提供相應的系統(tǒng)調用和API,用戶程序可以創(chuàng)建、執(zhí)行和撤消線程

內核中保留了一個線程控制塊(TCB);調度算法和進程類似,搶占式和非搶占

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論