




已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第二章,進程的描述與控制,進程是操作系統(tǒng)最重要,最基本的概念之一,這個概念對操作系統(tǒng)的理解,描述和設(shè)計都具有極其重要的意義。,本章討論的主要問題,1、什么是進程?為什么要引入進程? 2、如何描述進程? 3、進程具哪些狀態(tài)?這些狀態(tài)之間如何進行轉(zhuǎn)換? 4、如何控制進程狀態(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.順序性: 處理機操作嚴(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é) 點表示一條語句,一段程序或進程。 有向邊表示兩結(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 進程的描述 (一),本節(jié)討論關(guān)于進程的基本概念:,進程的定義 進程的特征 進程的狀態(tài) 進程控制塊,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í)行周期,圖 計算機的基本硬件元素,圖 控制器基本組成框圖,14,進程是可并發(fā)執(zhí)行的程序在給定數(shù)據(jù)集合上的一次執(zhí)行過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立的基本單位和實體,是執(zhí)行一個映象程序的總環(huán)境,是一個動態(tài)的概念。,一.進程的定義 進程的引入是為了更好地描述程序并發(fā)執(zhí)行的動態(tài)特征。,1.定義,2.2 進程的描述 (二),進程是執(zhí)行程序的動態(tài)過程動態(tài)概念。 程序是進程運行的靜態(tài)文本靜態(tài)概念。,2.2 進程的描述 (三),一個進程可以執(zhí)行一個或多個程序。 一個程序可以被多個進程執(zhí)行。,程序可以作為一種資源以文件的形式長期保存。 進程只是一次執(zhí)行過程,具有生命期。,2. 進程與程序的區(qū)別、聯(lián)系,2.2 進程的描述 (四),進程是程序的一次執(zhí)行過程,具有生命期;它可以由系統(tǒng)創(chuàng)建并獨立地執(zhí)行,直至完成而被撤消。,進程是可以并發(fā)執(zhí)行的基本單位,從宏觀上看,它們可以“同時”執(zhí)行。由于共享資源,進程間相互約束,相互依賴。,動態(tài)性,并發(fā)性,獨立性,異步性,各個進程之間相互獨立,是系統(tǒng)分配資源和能夠被處理機調(diào)度的基本單位。,各個進程按照各自獨立的、不可預(yù)知的速度異步向前推進。即進程按異步方式執(zhí)行。,二.、進程的特征,2.2 進程的描述 (五),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請求,進程,釋放,時間 片到,新狀態(tài),結(jié)束,后備隊列,新狀態(tài) 結(jié)束狀態(tài),三、進程的基本狀態(tài),2、進程狀態(tài)的細(xì)化,掛起狀態(tài)(Suspend): 對正在執(zhí)行的進程,則停止執(zhí)行。 對就緒狀態(tài)的進程,則停止調(diào)度,并回收資源。 對阻塞狀態(tài)的進程,則停止條件的發(fā)生。,稱被掛起的進程是靜止的 ,靜止就緒(Readys),靜止阻塞(Blockeds),稱未被掛起的進程是活動的,活動就緒(Readya),活動阻塞(Blockeda),將進程掛起的原因: 1。系統(tǒng)工作負(fù)荷達(dá)到高峰,調(diào)整負(fù)荷,使系統(tǒng)正常運行。 2。人為掛起,停止某進程執(zhí)行,以便研究分析。 3。系統(tǒng)需要,如系統(tǒng)故障,系統(tǒng)檢測需要。,2.2 進程的描述 (六),3、細(xì)化的進程狀態(tài)圖,活動 阻塞,執(zhí)行 狀態(tài),活動 就緒,靜止 就緒,靜止 阻塞,調(diào)度,釋放,I/O請求,激活,激活,掛起,掛起,掛起,釋放,2.2 進程的描述 (七),2.2 進程的描述 (八),1、進程的描述 對進程的描述應(yīng)該反映進程的存在及其變化,反映進程的動態(tài)特性。進程由程序,相應(yīng)的數(shù)據(jù)集合,進程控制塊三部分組成。,進程的程序 靜態(tài)文本,描述進程所要完成的功能。 數(shù) 據(jù) 集 合 程序運行時所需的數(shù)據(jù)和工作區(qū)。,靜態(tài)描述,動態(tài)描述,進程控制塊PCB(Process Control Block)記錄和描述進程的動態(tài)特性,描述進程的執(zhí)行情況和狀態(tài)變化。,四、進程控制塊,2.2 進程的描述 (九),進程標(biāo)識信息 外部標(biāo)識信息 內(nèi)部標(biāo)識信息 進程家族標(biāo)識,處理機狀態(tài)信息 通用寄存器 指令計數(shù)器 程序狀態(tài)字(PSW)用戶棧指針,進程調(diào)度信息 進程狀態(tài) 進程優(yōu)先級 其他調(diào)度信息 等待事件,進程控制信息 程序數(shù)據(jù)地址 進程同步及通信 資源清單 鏈接指針,2、PCB 塊包含的信息,不同操作系統(tǒng),PCB所包含的信息類型及數(shù)量可能有所不同,但一般包括兩類信息。,1)調(diào)度信息 描述進程的當(dāng)前狀況,供進程調(diào)度使用。,2)現(xiàn)場信息 刻劃了進程運行的情況;記錄在進程運行過程中會改變的信息,以便進程中斷后,再次被調(diào)度時能夠繼續(xù)運行。,PCB 塊是一個進程存在的唯一標(biāo)志 ,當(dāng)系統(tǒng)創(chuàng)建一個進程時,為該進程設(shè)置一個 PCB,再利用PCB對進程進行控制和管理。當(dāng)進程撤消時,系統(tǒng)回收它的PCB。,3、 PCB塊的組織方式,鏈接方式 鏈接成各種就緒,阻塞及空白等各種隊列。 索引方式 建立不同狀態(tài)的索引表。,2.2 進程的描述 (十),進程隊列及其管理,處于同一狀態(tài)的所有PCB鏈接在一起的數(shù)據(jù)結(jié)構(gòu)稱為進程隊列。 同一狀態(tài)進程的PCB既可按先來先到的原則排成隊列;也可按優(yōu)先數(shù)或其它原則排成隊列。 通用隊列組織方式: 線性方式、 鏈接方式 索引方式。,進程隊列及其管理,PCB表,運行隊列指針,就緒隊列指針,等待隊列1指針,等待隊列2指針,空閑進程隊列指針,鏈接方式,運行隊列指針,就緒表指針,等待表1指針,索引方式,PCB表,PCB1,PCB2,PCB3,PCB4,PCB5,PCB6,PCBn,空閑表指針,等待索引表1,等待表2指針,2.3 進程控制 (一),操作系統(tǒng)中,為了防止用戶進程對OS及PCB等關(guān)鍵信息的破壞。 一個進程在其生命期中有兩種機器運行狀態(tài): 系統(tǒng)態(tài) (核心態(tài),管態(tài)) 具有較高的訪問權(quán),可訪 問核心模塊。 用戶態(tài) (目態(tài) ) 限制訪問權(quán)。, 是機器指令的延伸,是非進程模塊,不能并發(fā)執(zhí)行。 執(zhí)行過程不可中斷,用微代碼實現(xiàn)。,2、原 語(primitive),一、操作系統(tǒng)的內(nèi)核,1、進程運行狀態(tài),處理器,單處理器和多處理器系統(tǒng) 共享存儲(緊密耦合)多處理機系統(tǒng)和分布存儲(松散耦合)多處理機系統(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個保護級別,0級權(quán)限最高,3級權(quán)限最低,特權(quán)指令與非特權(quán)指令,機器指令的集合稱指令系統(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等。,寄存器,計算機系統(tǒng)的處理器包括一組寄存器,其個數(shù)根據(jù)機型的不同而不同,它們構(gòu)成了一級存儲,比主存容量小 ,但訪問速度快。 這組寄存器所存儲的信息與程序的執(zhí)行有很大關(guān)系,構(gòu)成了處理器現(xiàn)場。,與操作系統(tǒng)相關(guān)的幾種主要寄存器 寄存器與操作系統(tǒng)密切相關(guān),因為它們是在處理機中交換數(shù)據(jù)的速度比內(nèi)存更快、體積也更小,而價格又更貴的暫存器件。 處理機中寄存器的功能分為二類,即用戶可編程的寄存器以及控制與狀態(tài)寄存器。 機器語言或匯編語言的程序員可對用戶可編程寄存器進行操作,以獲得更高的執(zhí)行效率等。 控制與狀態(tài)寄存器則被用來對處理機的優(yōu)先級、保護模式或用戶程序執(zhí)行時的調(diào)用關(guān)系等進行控制和操作。 一般來說,用戶可編程寄存器和控制與狀態(tài)寄存器之間沒有嚴(yán)格的區(qū)分和限制,在不同的系統(tǒng)中,寄存器的功能和作用可能不完全相同。,典型的用戶可編程寄存器包括以下幾種: 1. 數(shù)據(jù)寄存器 編程人員可以通過程序賦予數(shù)據(jù)寄存器眾多的功能。一般來說,對數(shù)據(jù)進行操作的任何機器指令都被允許訪問數(shù)據(jù)寄存器。不過,根據(jù)硬件設(shè)置的規(guī)定,這些寄存器也可能只被允許進行浮點運算或被其他某些規(guī)定所限制。 2. 地址寄存器 地址寄存器一般用來存放內(nèi)存中某個數(shù)據(jù)或指令的地址,或者存放某段數(shù)據(jù)與指令的入口地址以及被用來進行更復(fù)雜的地址計算。下面幾種寄存器都可被認(rèn)為是地址寄存器:,(1) 地址標(biāo)識位寄存器; (2) 內(nèi)存管理用各種始地址寄存器; (3) 堆棧指針; (4) 設(shè)備地址寄存器等。 3. 條件碼寄存器 條件碼寄存器也稱標(biāo)志寄存器。條件碼寄存器的比特位由處理機硬件設(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)場保護寄存器 如果系統(tǒng)允許不同類型的中斷存在,則會設(shè)置一組中斷現(xiàn)場保護寄存器以便保存被中斷程序的現(xiàn)場和鏈接中斷恢復(fù)處。 8. 過程調(diào)用用堆棧 堆棧被用來存放過程調(diào)用時的調(diào)用名、調(diào)用參數(shù)、以及返回地址等。 寄存器被廣泛應(yīng)用于計算機系統(tǒng)中,它們與操作系統(tǒng)有著非常直接和密切的關(guān)系。操作系統(tǒng)設(shè)計人員只有在完全掌握和了解硬件廠商所提供的各種寄存器的功能和接口之后,才能進行操作系統(tǒng)設(shè)計。,程序狀態(tài)字寄存器,計算機如何知道當(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)的保護和恢復(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 進程控制 (二),內(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 進程控制 (三),二.內(nèi)核的功能 1)中斷處理 中斷是OS內(nèi)核最重要的功能之一。系統(tǒng)中的所有中斷 都由內(nèi)核響應(yīng)。中斷是進程并發(fā)執(zhí)行的基礎(chǔ), OS是由中斷驅(qū)動的。,2)原語操作 原語操作包括涉及CPU管理,存儲管理,設(shè)備管理,文件管理的各種基本操作。,3) 時鐘管理 OS的許多重要操作,如:按時間片輪轉(zhuǎn)調(diào)度,實時系統(tǒng)中的截止時間控制等,都依賴于時鐘管理。,2.3 進程控制 (四),中 斷 源 引起中斷的異步事件(如:系統(tǒng)調(diào)用,I/ O 請求,進程調(diào)度, 設(shè)備驅(qū)動,文件處理等)。 中斷請求 向CPU發(fā)出中斷信號。 中斷響應(yīng) CPU停止執(zhí)行當(dāng)前進程,分辨中斷請求的類型。 中斷處理 CPU將請求交相關(guān)的中斷處理程序處理。 中斷返回 眾多處理結(jié)束,返回斷點。,內(nèi)核對中斷的有限處理方式,中斷源,中斷請求,中斷響應(yīng),轉(zhuǎn)中斷 處理程序,退出中斷,向CPU,保護CPU現(xiàn)場 識別中斷源,恢復(fù)CPU現(xiàn)場,2.3 進程控制 (五),創(chuàng)建原語 create(),撤消原語 destroy(),阻塞原語 block(),喚醒原語 wakeup(),掛起原語 suspend(),激活原語 active(),三 . 進程控制原語,2.3 進程控制 (四),創(chuàng)建進程有兩種方式:由系統(tǒng)程序模塊創(chuàng)建,或由父進程創(chuàng)建。,算法步驟: 1. 向PCB集合申請一個空閑的PCB,并獲取其內(nèi)部標(biāo)識; 2. 將有關(guān)信息填入PCB; 3. 將該進程置為就緒狀態(tài),并插入就緒隊列。,創(chuàng)建原語 create(),對進程的控制一般通過原語操作實現(xiàn)。,創(chuàng)建原語 (create),創(chuàng) 建 原 語 算 法,查PCB集,有空PCB,N,創(chuàng)建失敗,Y,取空表PCB(i),將參數(shù)填入PCB(i),將PCB(i)插入就緒隊列,2.3 進程控制 (四),算法步驟: 1. 根據(jù)外部標(biāo)識檢索PCB集,找到要撤消的PCB; 2. 從隊列中撤消該進程 及其子孫進程,通常在一個遞歸過程中實現(xiàn); 3. 釋放被撤消進程所占有的資源,撤消進程控制塊。,撤消原語 destroy(),當(dāng)進程完成或產(chǎn)生異常中斷時,應(yīng)立即撤消,并釋放其所有資源。,撤消原語 (destroy),撤 消 原 語 算 法,查PCB集和進程家族,有此PCB?,N,出錯處理,Y,釋放進程所占資源,釋放PCB(i)結(jié)構(gòu),該PCB有子進程?,Y,N,2.3 進程控制 (五),進程在執(zhí)行過程中,需要等待某些條件發(fā)生時,由該進程調(diào)用阻塞原語把進程從執(zhí)行狀態(tài)轉(zhuǎn)換為阻塞狀態(tài)。,算法步驟: 中斷CPU執(zhí)行,將CPU的當(dāng)前狀態(tài)保存到PCB的現(xiàn)場信息。 2. 將進程的當(dāng)前狀態(tài)置為阻塞狀態(tài); 3. 將進程的PCB插入到該事件的阻塞隊列中。,阻塞原語 block(),2.3 進程控制 (五),算法步驟: 1. 在等待隊列中找到該進程,將其P的當(dāng)前狀態(tài)置為就緒; 2. 將進程從等待隊列中撤消,并插入到就緒隊列中。,喚醒原語 wakeup(),當(dāng)處于阻塞狀態(tài)的進程所等待的事件發(fā)生后,使用喚醒原語將進程從等待狀態(tài)轉(zhuǎn)換為就緒狀態(tài)。,2.3 進程控制 (六),進程在執(zhí)行過程中,根據(jù)用戶或系統(tǒng)的某種需要,調(diào)用掛起原語將進程從活動狀態(tài)轉(zhuǎn)換為靜止?fàn)顟B(tài)。,算法步驟: 1. 根據(jù)外部標(biāo)識檢索PCB集,找到要掛起的PCB塊; 2. 檢查被掛進程的當(dāng)前狀態(tài): 執(zhí) 行 態(tài) 靜止就緒,并轉(zhuǎn)調(diào)度程序,重新調(diào)度。 活動就緒 靜止就緒 活動阻塞 靜止阻塞,掛起原語 suspend(),2.3 進程控制 (六),算法步驟: 1. 檢查被掛進程的當(dāng)前狀態(tài): 2. 將進程從相應(yīng)的靜止?fàn)顟B(tài) 活動狀態(tài)。,激活原語 active(),當(dāng)外于靜止?fàn)顟B(tài)的進程所等待的激活事件發(fā)生后,使用激活原語將進程從靜止?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)中的進程(一),UNIX核心 : 包括四大資源管理功能。由以下部分組成:,1、進程控制子系統(tǒng) 負(fù)責(zé)處理機管理和存儲管理,包括進程控制、進程通信、進程調(diào)度及段頁式存儲管理。,2、文件子系統(tǒng) 將慢速外設(shè)備看作廣義的文件。文件子系統(tǒng)功能包括:文件管理、高速緩沖機制及設(shè)備驅(qū)動。,3、兩個接口 核心與硬件的接口 (一組驅(qū)動程序,基本例程) 核心與SHELL的接口(系統(tǒng)調(diào)用,命令解釋程序),2.4 UNIX系統(tǒng)中的進程(二),3。兩個接口 核心與硬件的接口 (一組驅(qū)動程序,基本例程) 核心與SHELL的接口 (系統(tǒng)調(diào)用,命令解釋程序),文件子系統(tǒng),進程控制子系統(tǒng),系統(tǒng)調(diào)用接口,硬 件,硬件控制,用戶程序,核心級,用戶級,硬件級,2.4 UNIX系統(tǒng)中的進程(三),PCB 塊數(shù)據(jù)結(jié)構(gòu),1。進程表項(PROC結(jié)構(gòu)):核心數(shù)據(jù)。 2。U區(qū)(USER結(jié)構(gòu)) : PROC的擴充數(shù)據(jù)。 3。系統(tǒng)區(qū)表項 :段在物理存儲器的位置等信息。 4。本進程區(qū)表 :本段起始虛地址,指向系統(tǒng)區(qū)表中 的本進程區(qū)表項的指針。,2.4 UNIX系統(tǒng)中的進程(四),進程的唯一標(biāo)識。 擁有該進程的用戶標(biāo)識。 記錄該進程的當(dāng)前狀態(tài)(九種)。 記錄使該進程進入睡眠狀態(tài)的事件。 進程及U區(qū)在內(nèi)存或外存的位置。 記錄其它進程發(fā)來的軟中斷信號。 進程執(zhí)行時間及對資源的利用情況。 用于內(nèi)存分配。 設(shè)置進程動態(tài)優(yōu)先級。 指向U區(qū)進程正文、數(shù)據(jù)及棧在內(nèi)存區(qū)域的指針。,1. 進程表項(PROC結(jié)構(gòu)) 包括進程最常用的基本控制信息,常駐內(nèi)存。,進程標(biāo)識符PID 用戶標(biāo)識符UID 進程狀態(tài) 事件描述符 進程及U區(qū)位置 軟中斷信號 計時域 進程大小 偏置值 指向U區(qū)內(nèi)存區(qū)域 的指針,二、 PCB 塊的數(shù)據(jù)結(jié)構(gòu),2.4 UNIX系統(tǒng)中的進程(五),指向當(dāng)前執(zhí)行進程的進程表項。 (real user ID)由超級用戶分配的戶標(biāo) 識符,用于用戶登錄驗證。 (effective user ID)一般同上,可由系 統(tǒng)調(diào)用改變。 記錄該進程已打開的所有文件。 記錄當(dāng)前根及當(dāng)前目錄。 對進程大小及讀、寫文件字節(jié)數(shù),方式 及緩沖區(qū)大小等的限制。 記錄進程(及其子進程)在核心態(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)所包含的信息只有在進程運行時才使用,不一定調(diào)入內(nèi)存。,2、U區(qū)(USER結(jié)構(gòu)),進程表項指針 真正用戶標(biāo)識符 URUID 有效用戶標(biāo)識符 UEUID 文件描述表 文件運行環(huán)境 限制字段 計時器 出錯字段 指向U區(qū)內(nèi)存區(qū)域 的指針,2.4 UNIX系統(tǒng)中的進程(六),UNIX系統(tǒng)中采用段頁式儲存管理,為了把虛地址映射到實際的物理地址,定義了兩個表:進程區(qū)表,系統(tǒng)區(qū)表。 儲存管理是進程并發(fā)執(zhí)行的基礎(chǔ),因此,PCB中也定義了有關(guān)儲存管理的字段: 3。系統(tǒng)區(qū)表項 4。本進程區(qū)表,三、進程的上、下文 進程是一個進程映象(Process Image)的執(zhí)行過程,各進程并發(fā)執(zhí)行,OS經(jīng)常需要把控制從一個現(xiàn)行執(zhí)行的進程轉(zhuǎn)換到另一個進程,這個操作稱為“關(guān)聯(lián)轉(zhuǎn)換”,或“上、下文轉(zhuǎn)換”(context)。,進程上、下文是對進程執(zhí)行活動全過程的描述。進程上、下文包括: 寄存器上、下文, 系統(tǒng)級上、下文, 用戶級上、下文。,2.4 UNIX系統(tǒng)中的進程(七),存放進程在運行過程中所產(chǎn)生的數(shù)據(jù)。 如R0、R1 用于系統(tǒng)進程與用戶進程間傳遞參數(shù)。 存放CPU正常執(zhí)行的下一條指令的虛地址。 包括當(dāng)前進程的訪
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)生足療店創(chuàng)業(yè)計劃
- 圖書館讀書課件
- 五人聯(lián)合影視制作2025知識產(chǎn)權(quán)歸屬協(xié)議
- 關(guān)于籃球的課件
- 地理-遼寧省協(xié)作校2024-2025學(xué)年2025屆高三第一次模擬考試試題(協(xié)作校一模)試題和答案
- 廣告設(shè)計專業(yè)知識講座
- 廢氣處理培訓(xùn)課件
- 第2章 圖形設(shè)計的基本原理
- 幼兒知識閱讀
- 護士評職稱個人述職報告
- GB/T 17747.3-2011天然氣壓縮因子的計算第3部分:用物性值進行計算
- 變電站一鍵順控操作過程常見異常與處置措施探討
- 六年級下冊語文人教部編版課件綜合性學(xué)習(xí):奮斗的歷程(課件)
- 生理衛(wèi)生教學(xué)【青春期男生性教育】走向成熟課件
- 人工呼吸的三種方式和操作方法課件
- 項目基坑坍塌事故專項應(yīng)急預(yù)案桌面演練腳本
- 危險化學(xué)品MSDS(氮氣)
- 無創(chuàng)通氣常用模式與參數(shù)調(diào)節(jié)
- GB∕T 8427-2019 紡織品 色牢度試驗 耐人造光色牢度:氙弧
- 機耕道監(jiān)理實施細(xì)則完整
- 浙大概率論與數(shù)理統(tǒng)計課件第七章參數(shù)估計概率論課件教學(xué)教材
評論
0/150
提交評論