已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第二章,進(jìn)程的描述與控制,進(jìn)程是操作系統(tǒng)最重要,最基本的概念之一,這個概念對操作系統(tǒng)的理解,描述和設(shè)計都具有極其重要的意義。,本章討論的主要問題,1、什么是進(jìn)程?為什么要引入進(jìn)程? 2、如何描述進(jìn)程? 3、進(jìn)程具哪些狀態(tài)?這些狀態(tài)之間如何進(jìn)行轉(zhuǎn)換? 4、如何控制進(jìn)程狀態(tài)的轉(zhuǎn)換?,2.1 程序的執(zhí)行與特征 (一),一 、程序的順序執(zhí)行及特征,如:有三條語句: s1: a:=x+y s2: b:=a-5 s3: c:=b+1,程序順序執(zhí)行的特征 :,執(zhí)行順序用有向圖表示:,s1,s2,s3,1.順序性: 處理機(jī)操作嚴(yán)格按照程序所規(guī)定的順序執(zhí)行。,2.封閉性: 程序獨占資源,除初始狀態(tài)外,只有程序本身規(guī)定的操作才能夠改變資源狀況,即程序在封閉環(huán)境下運行。,3.可再現(xiàn)性: 程序的運行結(jié)果與它執(zhí)行的速度無關(guān)。,一個具有獨立功能的程序獨占CPU直到完成的過程稱為程序的順序執(zhí)行。,2.1 程序的執(zhí)行與特征 (二),1. 前趨圖 (Precedence Graph) 用前趨圖來描述并發(fā)執(zhí)行的程序的特征。 前趨圖 DAG(Directed Acyclic Graph) 結(jié) 點表示一條語句,一段程序或進(jìn)程。 有向邊表示兩結(jié)點間的偏序或前趨關(guān)系。 前趨定義: (Pi , Pj) 記為: Pi Pj,二、 程序的并發(fā)執(zhí)行及特征,其中: Pi 稱為Pj的直接前趨。,2. 程序的并發(fā)執(zhí)行,程序的并發(fā)執(zhí)行是指在邏輯上相互獨立的一組程序在執(zhí)行時間上的相互重疊,即一個程序段的執(zhí)行尚未結(jié)束,另一程序段的執(zhí)行已經(jīng)開始。,Pi,Pj,2、程序的并發(fā)執(zhí)行,例:有三類程序并發(fā)執(zhí)行: Ii輸入程序 Ci計算程序 Pi打印程序,I1,I2,I3,I4,C1,C2,C3,C4,P1,P2,P3,P4,Ii Ci Pi,Ii Ci Ci Pi,前趨關(guān)系:,P i -1,Ci ,I i +1 可并發(fā)執(zhí)行。,2.1 程序的執(zhí)行與特征 (三),Ii I i+1,Ci Ci+1,Pi Pi+1,問 題 程序的順序執(zhí)行與程序的并發(fā)執(zhí)行有那些不同的特征?,2.1 程序的執(zhí)行與特征 (四),執(zhí)行過程中可能有多個程序同時申請同一資源,帶來了資源的動態(tài)分配。多道程序共享資源共同決定和影響資源的狀態(tài)。因此,并發(fā)程序的執(zhí)行結(jié)果與其執(zhí)行的相對速度有關(guān)。,(1) 并發(fā)執(zhí)行的程序間相互約束,相互依賴,顯然,程序的并發(fā)執(zhí)行與程序的順序執(zhí)行具有完全不同的特征,主要表現(xiàn)在:,各并發(fā)執(zhí)行的程序共享資源,使本來并無邏輯關(guān)系的程序之間產(chǎn)生了相互制約的關(guān)系。而需要相互通信共同協(xié)作完成同一任務(wù)的程序之間相互依賴又相互制約。使各道程序走走停停,動態(tài)執(zhí)行。,(2) 對系統(tǒng)資源爭奪與共享,3、程序并發(fā)執(zhí)行的特征,程序順序執(zhí)行 程序并發(fā)執(zhí)行 順序性 間斷性 封閉性 無封閉性 可再現(xiàn)性 不可再現(xiàn)性,2.1 程序的執(zhí)行與特征 (五),不可再現(xiàn)性是程序并發(fā)執(zhí)行時的間斷性及失去封閉性的必然結(jié)果,即程序的執(zhí)行結(jié)果與其執(zhí)行速度有關(guān)。 例: 程序A 程序B . . . . N :=N+1 PRINT(N) . N :=0 . . . .,3、程序并發(fā)執(zhí)行的特征,(1)執(zhí)行順序:(a),(b),(c) N值:n+1,n+1,0 (2)執(zhí)行順序:(b),(a),(c) N值: n,n+1, 0 (3)執(zhí)行順序:(b),(c),(a) N值: n, 0, 1,(a),(b),(c),2.2 進(jìn)程的描述 (一),本節(jié)討論關(guān)于進(jìn)程的基本概念:,進(jìn)程的定義 進(jìn)程的特征 進(jìn)程的狀態(tài) 進(jìn)程控制塊,2019/11/5,10,裝入模塊,裝入,內(nèi) 存,裝入程序,鏈接,裝入,鏈接,運行,編譯,2019/11/5,11,鏈接由鏈接程序?qū)⒛繕?biāo)模塊及其所需的庫函數(shù),裝配 鏈接生成裝入模塊的過程。,一。程序的裝入和鏈接,指令的執(zhí)行 執(zhí)行指令的基本過程分為兩步,即: 從內(nèi)存把指令讀入的過程和執(zhí)行的過程。 其中,讀指令是根據(jù)程序計數(shù)器PC所指的地址讀入,而執(zhí)行的指令則是指令寄存器IR中的指令。 我們把指令的讀入和執(zhí)行過程稱為一個執(zhí)行周期。 圖 指令的執(zhí)行周期,圖 計算機(jī)的基本硬件元素,圖 控制器基本組成框圖,14,進(jìn)程是可并發(fā)執(zhí)行的程序在給定數(shù)據(jù)集合上的一次執(zhí)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立的基本單位和實體,是執(zhí)行一個映象程序的總環(huán)境,是一個動態(tài)的概念。,一.進(jìn)程的定義 進(jìn)程的引入是為了更好地描述程序并發(fā)執(zhí)行的動態(tài)特征。,1.定義,2.2 進(jìn)程的描述 (二),進(jìn)程是執(zhí)行程序的動態(tài)過程動態(tài)概念。 程序是進(jìn)程運行的靜態(tài)文本靜態(tài)概念。,2.2 進(jìn)程的描述 (三),一個進(jìn)程可以執(zhí)行一個或多個程序。 一個程序可以被多個進(jìn)程執(zhí)行。,程序可以作為一種資源以文件的形式長期保存。 進(jìn)程只是一次執(zhí)行過程,具有生命期。,2. 進(jìn)程與程序的區(qū)別、聯(lián)系,2.2 進(jìn)程的描述 (四),進(jìn)程是程序的一次執(zhí)行過程,具有生命期;它可以由系統(tǒng)創(chuàng)建并獨立地執(zhí)行,直至完成而被撤消。,進(jìn)程是可以并發(fā)執(zhí)行的基本單位,從宏觀上看,它們可以“同時”執(zhí)行。由于共享資源,進(jìn)程間相互約束,相互依賴。,動態(tài)性,并發(fā)性,獨立性,異步性,各個進(jìn)程之間相互獨立,是系統(tǒng)分配資源和能夠被處理機(jī)調(diào)度的基本單位。,各個進(jìn)程按照各自獨立的、不可預(yù)知的速度異步向前推進(jìn)。即進(jìn)程按異步方式執(zhí)行。,二.、進(jìn)程的特征,2.2 進(jìn)程的描述 (五),1、 三種基本狀態(tài): 執(zhí)行狀態(tài) (Executing) 就緒狀態(tài) (Ready) 阻塞狀態(tài) (Blocked)或等待(Wait),阻塞 狀態(tài),就緒 狀態(tài),執(zhí)行,狀態(tài),調(diào)度,I/O請求,進(jìn)程,釋放,時間 片到,新狀態(tài),結(jié)束,后備隊列,新狀態(tài) 結(jié)束狀態(tài),三、進(jìn)程的基本狀態(tài),2、進(jìn)程狀態(tài)的細(xì)化,掛起狀態(tài)(Suspend): 對正在執(zhí)行的進(jìn)程,則停止執(zhí)行。 對就緒狀態(tài)的進(jìn)程,則停止調(diào)度,并回收資源。 對阻塞狀態(tài)的進(jìn)程,則停止條件的發(fā)生。,稱被掛起的進(jìn)程是靜止的 ,靜止就緒(Readys),靜止阻塞(Blockeds),稱未被掛起的進(jìn)程是活動的,活動就緒(Readya),活動阻塞(Blockeda),將進(jìn)程掛起的原因: 1。系統(tǒng)工作負(fù)荷達(dá)到高峰,調(diào)整負(fù)荷,使系統(tǒng)正常運行。 2。人為掛起,停止某進(jìn)程執(zhí)行,以便研究分析。 3。系統(tǒng)需要,如系統(tǒng)故障,系統(tǒng)檢測需要。,2.2 進(jìn)程的描述 (六),3、細(xì)化的進(jìn)程狀態(tài)圖,活動 阻塞,執(zhí)行 狀態(tài),活動 就緒,靜止 就緒,靜止 阻塞,調(diào)度,釋放,I/O請求,激活,激活,掛起,掛起,掛起,釋放,2.2 進(jìn)程的描述 (七),2.2 進(jìn)程的描述 (八),1、進(jìn)程的描述 對進(jìn)程的描述應(yīng)該反映進(jìn)程的存在及其變化,反映進(jìn)程的動態(tài)特性。進(jìn)程由程序,相應(yīng)的數(shù)據(jù)集合,進(jìn)程控制塊三部分組成。,進(jìn)程的程序 靜態(tài)文本,描述進(jìn)程所要完成的功能。 數(shù) 據(jù) 集 合 程序運行時所需的數(shù)據(jù)和工作區(qū)。,靜態(tài)描述,動態(tài)描述,進(jìn)程控制塊PCB(Process Control Block)記錄和描述進(jìn)程的動態(tài)特性,描述進(jìn)程的執(zhí)行情況和狀態(tài)變化。,四、進(jìn)程控制塊,2.2 進(jìn)程的描述 (九),進(jìn)程標(biāo)識信息 外部標(biāo)識信息 內(nèi)部標(biāo)識信息 進(jìn)程家族標(biāo)識,處理機(jī)狀態(tài)信息 通用寄存器 指令計數(shù)器 程序狀態(tài)字(PSW)用戶棧指針,進(jìn)程調(diào)度信息 進(jìn)程狀態(tài) 進(jìn)程優(yōu)先級 其他調(diào)度信息 等待事件,進(jìn)程控制信息 程序數(shù)據(jù)地址 進(jìn)程同步及通信 資源清單 鏈接指針,2、PCB 塊包含的信息,不同操作系統(tǒng),PCB所包含的信息類型及數(shù)量可能有所不同,但一般包括兩類信息。,1)調(diào)度信息 描述進(jìn)程的當(dāng)前狀況,供進(jìn)程調(diào)度使用。,2)現(xiàn)場信息 刻劃了進(jìn)程運行的情況;記錄在進(jìn)程運行過程中會改變的信息,以便進(jìn)程中斷后,再次被調(diào)度時能夠繼續(xù)運行。,PCB 塊是一個進(jìn)程存在的唯一標(biāo)志 ,當(dāng)系統(tǒng)創(chuàng)建一個進(jìn)程時,為該進(jìn)程設(shè)置一個 PCB,再利用PCB對進(jìn)程進(jìn)行控制和管理。當(dāng)進(jìn)程撤消時,系統(tǒng)回收它的PCB。,3、 PCB塊的組織方式,鏈接方式 鏈接成各種就緒,阻塞及空白等各種隊列。 索引方式 建立不同狀態(tài)的索引表。,2.2 進(jìn)程的描述 (十),進(jìn)程隊列及其管理,處于同一狀態(tài)的所有PCB鏈接在一起的數(shù)據(jù)結(jié)構(gòu)稱為進(jìn)程隊列。 同一狀態(tài)進(jìn)程的PCB既可按先來先到的原則排成隊列;也可按優(yōu)先數(shù)或其它原則排成隊列。 通用隊列組織方式: 線性方式、 鏈接方式 索引方式。,進(jìn)程隊列及其管理,PCB表,運行隊列指針,就緒隊列指針,等待隊列1指針,等待隊列2指針,空閑進(jìn)程隊列指針,鏈接方式,運行隊列指針,就緒表指針,等待表1指針,索引方式,PCB表,PCB1,PCB2,PCB3,PCB4,PCB5,PCB6,PCBn,空閑表指針,等待索引表1,等待表2指針,2.3 進(jìn)程控制 (一),操作系統(tǒng)中,為了防止用戶進(jìn)程對OS及PCB等關(guān)鍵信息的破壞。 一個進(jìn)程在其生命期中有兩種機(jī)器運行狀態(tài): 系統(tǒng)態(tài) (核心態(tài),管態(tài)) 具有較高的訪問權(quán),可訪 問核心模塊。 用戶態(tài) (目態(tài) ) 限制訪問權(quán)。, 是機(jī)器指令的延伸,是非進(jìn)程模塊,不能并發(fā)執(zhí)行。 執(zhí)行過程不可中斷,用微代碼實現(xiàn)。,2、原 語(primitive),一、操作系統(tǒng)的內(nèi)核,1、進(jìn)程運行狀態(tài),處理器,單處理器和多處理器系統(tǒng) 共享存儲(緊密耦合)多處理機(jī)系統(tǒng)和分布存儲(松散耦合)多處理機(jī)系統(tǒng)。,處理器狀態(tài),處理器怎么知道當(dāng)前是操作系統(tǒng)還是一般用戶程序在運行呢? 處理器狀態(tài)標(biāo)志: 管理狀態(tài)(特權(quán)狀態(tài)、系統(tǒng)模式、特態(tài)或管態(tài))和用戶狀態(tài)(目標(biāo)狀態(tài)、用戶模式、常態(tài)或目態(tài))。處理器狀態(tài)的轉(zhuǎn)換。 處理器處于管理狀態(tài)時,程序可以執(zhí)行全部指令,使用所有資源,具有改變處理器狀態(tài)的能力;處理器處于用戶狀態(tài)時,程序只能執(zhí)行非特權(quán)指令 Intel Pentium的處理器狀態(tài)有四種,支持4個保護(hù)級別,0級權(quán)限最高,3級權(quán)限最低,特權(quán)指令與非特權(quán)指令,機(jī)器指令的集合稱指令系統(tǒng) (1)數(shù)據(jù)處理類指令; (2)轉(zhuǎn)移類指令; (3)數(shù)據(jù)傳送類指令; (4)移位與字符串指令; (5)I/O類指令。,微程序控制指令,30,特權(quán)指令與非特權(quán)指令,從資源管理和控制程序執(zhí)行的角度出發(fā),必須把指令系統(tǒng)中的指令分作兩部分:特權(quán)指令和非特權(quán)指令。 特權(quán)指令是指只能提供給操作系統(tǒng)的核心程序使用的指令,如啟動I/O設(shè)備、設(shè)置時鐘、控制中斷屏蔽位、清主存、建立存儲鍵,加載PSW等。,寄存器,計算機(jī)系統(tǒng)的處理器包括一組寄存器,其個數(shù)根據(jù)機(jī)型的不同而不同,它們構(gòu)成了一級存儲,比主存容量小 ,但訪問速度快。 這組寄存器所存儲的信息與程序的執(zhí)行有很大關(guān)系,構(gòu)成了處理器現(xiàn)場。,與操作系統(tǒng)相關(guān)的幾種主要寄存器 寄存器與操作系統(tǒng)密切相關(guān),因為它們是在處理機(jī)中交換數(shù)據(jù)的速度比內(nèi)存更快、體積也更小,而價格又更貴的暫存器件。 處理機(jī)中寄存器的功能分為二類,即用戶可編程的寄存器以及控制與狀態(tài)寄存器。 機(jī)器語言或匯編語言的程序員可對用戶可編程寄存器進(jìn)行操作,以獲得更高的執(zhí)行效率等。 控制與狀態(tài)寄存器則被用來對處理機(jī)的優(yōu)先級、保護(hù)模式或用戶程序執(zhí)行時的調(diào)用關(guān)系等進(jìn)行控制和操作。 一般來說,用戶可編程寄存器和控制與狀態(tài)寄存器之間沒有嚴(yán)格的區(qū)分和限制,在不同的系統(tǒng)中,寄存器的功能和作用可能不完全相同。,典型的用戶可編程寄存器包括以下幾種: 1. 數(shù)據(jù)寄存器 編程人員可以通過程序賦予數(shù)據(jù)寄存器眾多的功能。一般來說,對數(shù)據(jù)進(jìn)行操作的任何機(jī)器指令都被允許訪問數(shù)據(jù)寄存器。不過,根據(jù)硬件設(shè)置的規(guī)定,這些寄存器也可能只被允許進(jìn)行浮點運算或被其他某些規(guī)定所限制。 2. 地址寄存器 地址寄存器一般用來存放內(nèi)存中某個數(shù)據(jù)或指令的地址,或者存放某段數(shù)據(jù)與指令的入口地址以及被用來進(jìn)行更復(fù)雜的地址計算。下面幾種寄存器都可被認(rèn)為是地址寄存器:,(1) 地址標(biāo)識位寄存器; (2) 內(nèi)存管理用各種始地址寄存器; (3) 堆棧指針; (4) 設(shè)備地址寄存器等。 3. 條件碼寄存器 條件碼寄存器也稱標(biāo)志寄存器。條件碼寄存器的比特位由處理機(jī)硬件設(shè)置。 典型的控制與狀態(tài)寄存器包括以下幾種: 4. 程序計數(shù)器PC 程序計數(shù)器內(nèi)裝有下一周期被執(zhí)行指令的地址。 5. 指令寄存器IR 指令寄存器內(nèi)裝有待執(zhí)行指令。,6. 程序狀態(tài)字PSW 程序狀態(tài)字寄存器的各個比特位代表系統(tǒng)中當(dāng)前的各種不同狀態(tài)與信息。如執(zhí)行模式是否允許中斷等。 7. 中斷現(xiàn)場保護(hù)寄存器 如果系統(tǒng)允許不同類型的中斷存在,則會設(shè)置一組中斷現(xiàn)場保護(hù)寄存器以便保存被中斷程序的現(xiàn)場和鏈接中斷恢復(fù)處。 8. 過程調(diào)用用堆棧 堆棧被用來存放過程調(diào)用時的調(diào)用名、調(diào)用參數(shù)、以及返回地址等。 寄存器被廣泛應(yīng)用于計算機(jī)系統(tǒng)中,它們與操作系統(tǒng)有著非常直接和密切的關(guān)系。操作系統(tǒng)設(shè)計人員只有在完全掌握和了解硬件廠商所提供的各種寄存器的功能和接口之后,才能進(jìn)行操作系統(tǒng)設(shè)計。,程序狀態(tài)字寄存器,計算機(jī)如何知道當(dāng)前處于何種工作狀態(tài)?這時能否執(zhí)行特權(quán)指令?通常操作系統(tǒng)都引入程序狀態(tài)字PSW(Program Status Word)來區(qū)別不同的處理器工作狀態(tài) PSW用來控制指令執(zhí)行順序并保留和指示與程序有關(guān)的系統(tǒng)狀態(tài),主要作用是實現(xiàn)程序狀態(tài)的保護(hù)和恢復(fù) 每個程序都有一個與其執(zhí)行相關(guān)的PSW,每個處理器都設(shè)置一個PSW寄存器。程序占有處理器執(zhí)行,它的PSW將占有PSW寄存器,程序狀態(tài)字寄存器,PSW寄存器包括以下內(nèi)容: 程序基本狀態(tài): (1) 程序計數(shù)器; (2) 條件碼; (3)處理器狀態(tài)位。 中斷碼。保存程序執(zhí)行時當(dāng)前發(fā)生的中斷事件。 中斷屏蔽位。指明程序執(zhí)行中發(fā)生中斷事件時,是否響應(yīng)出現(xiàn)的中斷事件。,2.3 進(jìn)程控制 (二),內(nèi)核是OS的控制和協(xié)調(diào)中心,由它組織,啟動和協(xié)調(diào)系統(tǒng)中各種活動。通常由各種原語構(gòu)成。,操作系統(tǒng)內(nèi)核,內(nèi)核是OS中最重要最核心的部分。OS的內(nèi)核緊靠硬件,由那些使用頻率高,與硬件緊密相關(guān)的模塊構(gòu)成;如中斷處理程序,設(shè)備驅(qū)動程序等。,2.3 進(jìn)程控制 (三),二.內(nèi)核的功能 1)中斷處理 中斷是OS內(nèi)核最重要的功能之一。系統(tǒng)中的所有中斷 都由內(nèi)核響應(yīng)。中斷是進(jìn)程并發(fā)執(zhí)行的基礎(chǔ), OS是由中斷驅(qū)動的。,2)原語操作 原語操作包括涉及CPU管理,存儲管理,設(shè)備管理,文件管理的各種基本操作。,3) 時鐘管理 OS的許多重要操作,如:按時間片輪轉(zhuǎn)調(diào)度,實時系統(tǒng)中的截止時間控制等,都依賴于時鐘管理。,2.3 進(jìn)程控制 (四),中 斷 源 引起中斷的異步事件(如:系統(tǒng)調(diào)用,I/ O 請求,進(jìn)程調(diào)度, 設(shè)備驅(qū)動,文件處理等)。 中斷請求 向CPU發(fā)出中斷信號。 中斷響應(yīng) CPU停止執(zhí)行當(dāng)前進(jìn)程,分辨中斷請求的類型。 中斷處理 CPU將請求交相關(guān)的中斷處理程序處理。 中斷返回 眾多處理結(jié)束,返回斷點。,內(nèi)核對中斷的有限處理方式,中斷源,中斷請求,中斷響應(yīng),轉(zhuǎn)中斷 處理程序,退出中斷,向CPU,保護(hù)CPU現(xiàn)場 識別中斷源,恢復(fù)CPU現(xiàn)場,2.3 進(jìn)程控制 (五),創(chuàng)建原語 create(),撤消原語 destroy(),阻塞原語 block(),喚醒原語 wakeup(),掛起原語 suspend(),激活原語 active(),三 . 進(jìn)程控制原語,2.3 進(jìn)程控制 (四),創(chuàng)建進(jìn)程有兩種方式:由系統(tǒng)程序模塊創(chuàng)建,或由父進(jìn)程創(chuàng)建。,算法步驟: 1. 向PCB集合申請一個空閑的PCB,并獲取其內(nèi)部標(biāo)識; 2. 將有關(guān)信息填入PCB; 3. 將該進(jìn)程置為就緒狀態(tài),并插入就緒隊列。,創(chuàng)建原語 create(),對進(jìn)程的控制一般通過原語操作實現(xiàn)。,創(chuàng)建原語 (create),創(chuàng) 建 原 語 算 法,查PCB集,有空PCB,N,創(chuàng)建失敗,Y,取空表PCB(i),將參數(shù)填入PCB(i),將PCB(i)插入就緒隊列,2.3 進(jìn)程控制 (四),算法步驟: 1. 根據(jù)外部標(biāo)識檢索PCB集,找到要撤消的PCB; 2. 從隊列中撤消該進(jìn)程 及其子孫進(jìn)程,通常在一個遞歸過程中實現(xiàn); 3. 釋放被撤消進(jìn)程所占有的資源,撤消進(jìn)程控制塊。,撤消原語 destroy(),當(dāng)進(jìn)程完成或產(chǎn)生異常中斷時,應(yīng)立即撤消,并釋放其所有資源。,撤消原語 (destroy),撤 消 原 語 算 法,查PCB集和進(jìn)程家族,有此PCB?,N,出錯處理,Y,釋放進(jìn)程所占資源,釋放PCB(i)結(jié)構(gòu),該PCB有子進(jìn)程?,Y,N,2.3 進(jìn)程控制 (五),進(jìn)程在執(zhí)行過程中,需要等待某些條件發(fā)生時,由該進(jìn)程調(diào)用阻塞原語把進(jìn)程從執(zhí)行狀態(tài)轉(zhuǎn)換為阻塞狀態(tài)。,算法步驟: 中斷CPU執(zhí)行,將CPU的當(dāng)前狀態(tài)保存到PCB的現(xiàn)場信息。 2. 將進(jìn)程的當(dāng)前狀態(tài)置為阻塞狀態(tài); 3. 將進(jìn)程的PCB插入到該事件的阻塞隊列中。,阻塞原語 block(),2.3 進(jìn)程控制 (五),算法步驟: 1. 在等待隊列中找到該進(jìn)程,將其P的當(dāng)前狀態(tài)置為就緒; 2. 將進(jìn)程從等待隊列中撤消,并插入到就緒隊列中。,喚醒原語 wakeup(),當(dāng)處于阻塞狀態(tài)的進(jìn)程所等待的事件發(fā)生后,使用喚醒原語將進(jìn)程從等待狀態(tài)轉(zhuǎn)換為就緒狀態(tài)。,2.3 進(jìn)程控制 (六),進(jìn)程在執(zhí)行過程中,根據(jù)用戶或系統(tǒng)的某種需要,調(diào)用掛起原語將進(jìn)程從活動狀態(tài)轉(zhuǎn)換為靜止?fàn)顟B(tài)。,算法步驟: 1. 根據(jù)外部標(biāo)識檢索PCB集,找到要掛起的PCB塊; 2. 檢查被掛進(jìn)程的當(dāng)前狀態(tài): 執(zhí) 行 態(tài) 靜止就緒,并轉(zhuǎn)調(diào)度程序,重新調(diào)度。 活動就緒 靜止就緒 活動阻塞 靜止阻塞,掛起原語 suspend(),2.3 進(jìn)程控制 (六),算法步驟: 1. 檢查被掛進(jìn)程的當(dāng)前狀態(tài): 2. 將進(jìn)程從相應(yīng)的靜止?fàn)顟B(tài) 活動狀態(tài)。,激活原語 active(),當(dāng)外于靜止?fàn)顟B(tài)的進(jìn)程所等待的激活事件發(fā)生后,使用激活原語將進(jìn)程從靜止?fàn)顟B(tài)轉(zhuǎn)換為活動狀態(tài)。,一. UNIX系統(tǒng)的核心結(jié)構(gòu) UNIX系統(tǒng)分為三個層次:核心、用戶接口及實用程序、應(yīng)用程序。,2.4 UNIX系統(tǒng)中的進(jìn)程(一),UNIX核心 : 包括四大資源管理功能。由以下部分組成:,1、進(jìn)程控制子系統(tǒng) 負(fù)責(zé)處理機(jī)管理和存儲管理,包括進(jìn)程控制、進(jìn)程通信、進(jìn)程調(diào)度及段頁式存儲管理。,2、文件子系統(tǒng) 將慢速外設(shè)備看作廣義的文件。文件子系統(tǒng)功能包括:文件管理、高速緩沖機(jī)制及設(shè)備驅(qū)動。,3、兩個接口 核心與硬件的接口 (一組驅(qū)動程序,基本例程) 核心與SHELL的接口(系統(tǒng)調(diào)用,命令解釋程序),2.4 UNIX系統(tǒng)中的進(jìn)程(二),3。兩個接口 核心與硬件的接口 (一組驅(qū)動程序,基本例程) 核心與SHELL的接口 (系統(tǒng)調(diào)用,命令解釋程序),文件子系統(tǒng),進(jìn)程控制子系統(tǒng),系統(tǒng)調(diào)用接口,硬 件,硬件控制,用戶程序,核心級,用戶級,硬件級,2.4 UNIX系統(tǒng)中的進(jìn)程(三),PCB 塊數(shù)據(jù)結(jié)構(gòu),1。進(jìn)程表項(PROC結(jié)構(gòu)):核心數(shù)據(jù)。 2。U區(qū)(USER結(jié)構(gòu)) : PROC的擴(kuò)充數(shù)據(jù)。 3。系統(tǒng)區(qū)表項 :段在物理存儲器的位置等信息。 4。本進(jìn)程區(qū)表 :本段起始虛地址,指向系統(tǒng)區(qū)表中 的本進(jìn)程區(qū)表項的指針。,2.4 UNIX系統(tǒng)中的進(jìn)程(四),進(jìn)程的唯一標(biāo)識。 擁有該進(jìn)程的用戶標(biāo)識。 記錄該進(jìn)程的當(dāng)前狀態(tài)(九種)。 記錄使該進(jìn)程進(jìn)入睡眠狀態(tài)的事件。 進(jìn)程及U區(qū)在內(nèi)存或外存的位置。 記錄其它進(jìn)程發(fā)來的軟中斷信號。 進(jìn)程執(zhí)行時間及對資源的利用情況。 用于內(nèi)存分配。 設(shè)置進(jìn)程動態(tài)優(yōu)先級。 指向U區(qū)進(jìn)程正文、數(shù)據(jù)及棧在內(nèi)存區(qū)域的指針。,1. 進(jìn)程表項(PROC結(jié)構(gòu)) 包括進(jìn)程最常用的基本控制信息,常駐內(nèi)存。,進(jìn)程標(biāo)識符PID 用戶標(biāo)識符UID 進(jìn)程狀態(tài) 事件描述符 進(jìn)程及U區(qū)位置 軟中斷信號 計時域 進(jìn)程大小 偏置值 指向U區(qū)內(nèi)存區(qū)域 的指針,二、 PCB 塊的數(shù)據(jù)結(jié)構(gòu),2.4 UNIX系統(tǒng)中的進(jìn)程(五),指向當(dāng)前執(zhí)行進(jìn)程的進(jìn)程表項。 (real user ID)由超級用戶分配的戶標(biāo) 識符,用于用戶登錄驗證。 (effective user ID)一般同上,可由系 統(tǒng)調(diào)用改變。 記錄該進(jìn)程已打開的所有文件。 記錄當(dāng)前根及當(dāng)前目錄。 對進(jìn)程大小及讀、寫文件字節(jié)數(shù),方式 及緩沖區(qū)大小等的限制。 記錄進(jìn)程(及其子進(jìn)程)在核心態(tài)和用戶態(tài)執(zhí)行所用時間。 記錄系統(tǒng)調(diào)用過程中的錯誤。 標(biāo)識出該user 結(jié)構(gòu)所對應(yīng)的 proc結(jié)構(gòu)。,USER結(jié)構(gòu)所包含的信息只有在進(jìn)程運行時才使用,不一定調(diào)入內(nèi)存。,2、U區(qū)(USER結(jié)構(gòu)),進(jìn)程表項指針 真正用戶標(biāo)識符 URUID 有效用戶標(biāo)識符 UEUID 文件描述表 文件運行環(huán)境 限制字段 計時器 出錯字段 指向U區(qū)內(nèi)存區(qū)域 的指針,2.4 UNIX系統(tǒng)中的進(jìn)程(六),UNIX系統(tǒng)中采用段頁式儲存管理,為了把虛地址映射到實際的物理地址,定義了兩個表:進(jìn)程區(qū)表,系統(tǒng)區(qū)表。 儲存管理是進(jìn)程并發(fā)執(zhí)行的基礎(chǔ),因此,PCB中也定義了有關(guān)儲存管理的字段: 3。系統(tǒng)區(qū)表項 4。本進(jìn)程區(qū)表,三、進(jìn)程的上、下文 進(jìn)程是一個進(jìn)程映象(Process Image)的執(zhí)行過程,各進(jìn)程并發(fā)執(zhí)行,OS經(jīng)常需要把控制從一個現(xiàn)行執(zhí)行的進(jìn)程轉(zhuǎn)換到另一個進(jìn)程,這個操作稱為“關(guān)聯(lián)轉(zhuǎn)換”,或“上、下文轉(zhuǎn)換”(context)。,進(jìn)程上、下文是對進(jìn)程執(zhí)行活動全過程的描述。進(jìn)程上、下文包括: 寄存器上、下文, 系統(tǒng)級上、下文, 用戶級上、下文。,2.4 UNIX系統(tǒng)中的進(jìn)程(七),存放進(jìn)程在運行過程中所產(chǎn)生的數(shù)據(jù)。 如R0、R1 用于系統(tǒng)進(jìn)程與用戶進(jìn)程間傳遞參數(shù)。 存放CPU正常執(zhí)行的下一條指令的虛地址。 包括當(dāng)前進(jìn)程的訪
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)行業(yè)業(yè)務(wù)員工作總結(jié)
- 運動品牌的市場推廣計劃
- 【八年級下冊歷史】第16課 獨立自主的和平外交 同步練習(xí)
- 金屬行業(yè)行政后勤運營總結(jié)
- 2023年高考語文試卷(上海)(春考)(空白卷)
- 2024年美術(shù)教案集錦5篇
- 2024年煤礦應(yīng)急預(yù)案
- 紅光十字線激光器行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025保險合同協(xié)議書大全
- 2024年度天津市公共營養(yǎng)師之二級營養(yǎng)師綜合練習(xí)試卷B卷附答案
- 贛州市指導(dǎo)性科技計劃項目申請書
- 圍墻維修 施工方案
- pe管電熔施工方案
- 抗菌藥物治療性用藥前病原學(xué)送檢制度
- 英文介紹中國餃子-PPT
- 大學(xué)物理實驗預(yù)習(xí)報告模板
- 互聯(lián)網(wǎng)+護(hù)理服務(wù)ppt
- 面包加工技術(shù) 菠蘿包的制作
- 電機(jī)軸承磨損影響運轉(zhuǎn)
- 網(wǎng)上招投標(biāo)系統(tǒng)操作手冊模板
- bec高級作文真題范文(16篇)-1
評論
0/150
提交評論