




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第二章 進程進程是操作系統(tǒng)最重要,是操作系統(tǒng)最重要,最基本的概念之一,這個概念最基本的概念之一,這個概念對操作系統(tǒng)的理解,描述和設對操作系統(tǒng)的理解,描述和設計都具有極其重要的意義。計都具有極其重要的意義。本章討論的主要問題本章討論的主要問題1 1、什么是進程?為什么要引入進程?、什么是進程?為什么要引入進程?2 2、如何描述進程?、如何描述進程?3 3、進程具哪些狀態(tài)?這些狀態(tài)之間如何進、進程具哪些狀態(tài)?這些狀態(tài)之間如何進行轉換?行轉換?4 4、如何控制進程狀態(tài)的轉換?、如何控制進程狀態(tài)的轉換?2.1 2.1 程序的執(zhí)行與特征程序的執(zhí)行與特征 ( (一)一)一一 、程序的順序執(zhí)行及特征、程序的
2、順序執(zhí)行及特征如:有三條語句:如:有三條語句: s1s1: a a:=x+y=x+y s2 s2: b b:=a-5=a-5 s3 s3: c c:=b+1 =b+1 程序順序執(zhí)行的特征程序順序執(zhí)行的特征 :執(zhí)行順序用有向圖表示執(zhí)行順序用有向圖表示:s1s2s31.1.順序性順序性: : 處理機操作嚴格按照程序所規(guī)定的順序執(zhí)行。處理機操作嚴格按照程序所規(guī)定的順序執(zhí)行。2.2.封閉性:封閉性: 程序獨占資源,除初始狀態(tài)外,只有程序本程序獨占資源,除初始狀態(tài)外,只有程序本身規(guī)定的操作才能夠改變資源狀況,即程序在封閉環(huán)境下身規(guī)定的操作才能夠改變資源狀況,即程序在封閉環(huán)境下運行。運行。3.3.可再現(xiàn)性
3、可再現(xiàn)性: : 程序的運行結果與它執(zhí)行的速度無關。程序的運行結果與它執(zhí)行的速度無關。 一個具有獨立功能的程序獨占一個具有獨立功能的程序獨占cpucpu直到完成的過程稱直到完成的過程稱為程序的順序執(zhí)行為程序的順序執(zhí)行。2.1 2.1 程序的執(zhí)行與特征程序的執(zhí)行與特征 (二二) 1. 前趨圖前趨圖 (precedence graph) 用前趨圖來描述并發(fā)執(zhí)行的程序的特征。用前趨圖來描述并發(fā)執(zhí)行的程序的特征。 前趨圖前趨圖 dag(directed acyclic graph) 結結 點點表示一條語句,一段程序或進程。表示一條語句,一段程序或進程。 有向邊有向邊表示兩結點間的偏序或前趨關系。表示兩結
4、點間的偏序或前趨關系。 前趨定義:前趨定義: (pi , pj) 記為:記為: pi pj 二、二、 程序的并發(fā)執(zhí)行及特征程序的并發(fā)執(zhí)行及特征 其中:其中: p pi 稱為稱為pj的直接前趨。的直接前趨。 2. 2. 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行 程序的并發(fā)執(zhí)行是指在邏輯上相互獨立的一組程程序的并發(fā)執(zhí)行是指在邏輯上相互獨立的一組程序在執(zhí)行時間上的相互重疊,即一個程序段的執(zhí)行尚未序在執(zhí)行時間上的相互重疊,即一個程序段的執(zhí)行尚未結束,另一程序段的執(zhí)行已經(jīng)開始。結束,另一程序段的執(zhí)行已經(jīng)開始。 pi pj2 2、程序的并發(fā)執(zhí)行、程序的并發(fā)執(zhí)行例:有三類程序并發(fā)執(zhí)行:例:有三類程序并發(fā)執(zhí)行: i ii
5、 i輸入程序輸入程序 c ci i計算程序計算程序 p pi i打印程序打印程序i1i2i3i4c1c2c3c4p1p2p3p4ii ci pi ii ci ci pi前趨關系:前趨關系:p i -1,ci ,i i +1 可可并發(fā)執(zhí)行。并發(fā)執(zhí)行。2.1 2.1 程序的執(zhí)行與特征程序的執(zhí)行與特征 (三)(三)ii i i+1ci ci+1pi pi+1 程序的順序執(zhí)行與程序的并發(fā)執(zhí)行有那程序的順序執(zhí)行與程序的并發(fā)執(zhí)行有那些不同的特征?些不同的特征? 執(zhí)行過程中可能有多個程序同時申請同一資源,帶來了執(zhí)行過程中可能有多個程序同時申請同一資源,帶來了資源的動態(tài)分配。多道程序共享資源共同決定和影響資源
6、的資源的動態(tài)分配。多道程序共享資源共同決定和影響資源的狀態(tài)。因此,并發(fā)程序的執(zhí)行結果與其執(zhí)行的相對速度有關。狀態(tài)。因此,并發(fā)程序的執(zhí)行結果與其執(zhí)行的相對速度有關。(1) (1) 并發(fā)執(zhí)行的程序間相互約束,相互依賴并發(fā)執(zhí)行的程序間相互約束,相互依賴 顯然,程序的并發(fā)執(zhí)行與程序的順序執(zhí)行具有顯然,程序的并發(fā)執(zhí)行與程序的順序執(zhí)行具有完全不同完全不同的的特征,主要表現(xiàn)在:特征,主要表現(xiàn)在: 各并發(fā)執(zhí)行的程序各并發(fā)執(zhí)行的程序共享資源共享資源,使本來并無邏輯關系的程,使本來并無邏輯關系的程序之間產(chǎn)生了序之間產(chǎn)生了相互制約相互制約的關系。而需要相互通信共同協(xié)作完的關系。而需要相互通信共同協(xié)作完成同一任務的程
7、序之間成同一任務的程序之間相互依賴相互依賴又相互制約。使各道程序走又相互制約。使各道程序走走停停,走停停,動態(tài)執(zhí)行動態(tài)執(zhí)行。(2) (2) 對系統(tǒng)資源爭奪與共享對系統(tǒng)資源爭奪與共享3 3、程序并發(fā)執(zhí)行的特征、程序并發(fā)執(zhí)行的特征 2.1 2.1 程序的執(zhí)行與特征程序的執(zhí)行與特征 (五)(五) 不可再現(xiàn)性是程序不可再現(xiàn)性是程序并發(fā)并發(fā)執(zhí)行時的間斷性及失去封閉性執(zhí)行時的間斷性及失去封閉性的必然結果,即程序的執(zhí)行結果與其執(zhí)行速度有關。的必然結果,即程序的執(zhí)行結果與其執(zhí)行速度有關。 例:例: 程序程序a a 程序程序b b . . . . . . . . n :=n+1 print(n) n :=n+1
8、 print(n) . n :=0 . n :=0 . . . . . . . .3 3、程序并發(fā)執(zhí)行的特征、程序并發(fā)執(zhí)行的特征(1 1)執(zhí)行順序:()執(zhí)行順序:(a a),(),(b b),(),(c c) n n值:值:n+1n+1,n+1n+1,0 0(2 2)執(zhí)行順序:()執(zhí)行順序:(b b),(),(a a),(),(c c) n n值:值: n n,n+1n+1, 0 0(3 3)執(zhí)行順序:()執(zhí)行順序:(b b),(),(c c),(),(a a) n n值:值: n n, 0 0, 1 1(a a)(b b)(c c) 本節(jié)討論關于進程的基本概念:本節(jié)討論關于進程的基本概念:
9、進程的定義 進程的特征 進程的狀態(tài) 進程控制塊2022-2-210裝入模塊裝入內 存裝入程序鏈接裝入 鏈接 運行編譯2022-2-211鏈接由鏈接程序將目標模塊及其所需的庫函數(shù),裝配 鏈接生成裝入模塊的過程。庫鏈接程序裝入模塊裝入程序編譯程序產(chǎn)生的目標模塊第一步第二步第三步內存一。程序的裝入和鏈接指令的執(zhí)行指令的執(zhí)行執(zhí)行指令的基本過程分為兩步,即:從內存把指令讀入的過程和執(zhí)行的過程。其中,讀指令是根據(jù)程序計數(shù)器pc所指的地址讀入,而執(zhí)行的指令則是指令寄存器ir中的指令。我們把指令的讀入和執(zhí)行過程稱為一個執(zhí)行周期。 圖 指令的執(zhí)行周期圖 計算機的基本硬件元素 圖 控制器基本組成框圖14 進程是可
10、并發(fā)執(zhí)行的程序在給定數(shù)據(jù)集合進程是可并發(fā)執(zhí)行的程序在給定數(shù)據(jù)集合上的一次上的一次執(zhí)行過程執(zhí)行過程,是系統(tǒng)進行資源,是系統(tǒng)進行資源分配和調分配和調度的度的一個獨立的一個獨立的基本單位基本單位和實體和實體,是執(zhí)行一個,是執(zhí)行一個映象程序的映象程序的總環(huán)境總環(huán)境,是一個,是一個動態(tài)的概念動態(tài)的概念。 一一. .進程的定義進程的定義 進程的引入是為了更好地描述程序并發(fā)執(zhí)行的進程的引入是為了更好地描述程序并發(fā)執(zhí)行的動態(tài)特征。動態(tài)特征。 1.1.定義定義進程進程是執(zhí)行程序的動態(tài)過程是執(zhí)行程序的動態(tài)過程動態(tài)概念動態(tài)概念。程序是進程運行的靜態(tài)文本程序是進程運行的靜態(tài)文本靜態(tài)概念。靜態(tài)概念。一個一個進程進程可以
11、執(zhí)行一個或多個程序??梢詧?zhí)行一個或多個程序。一個程序可以被多個一個程序可以被多個進程進程執(zhí)行。執(zhí)行。程序可以作為一種資源以文件的形式長期保存。程序可以作為一種資源以文件的形式長期保存。進程進程只是一次執(zhí)行過程,具有只是一次執(zhí)行過程,具有生命期生命期。2. 2. 進程與程序的區(qū)別、聯(lián)系進程與程序的區(qū)別、聯(lián)系 進程是程序的一次執(zhí)進程是程序的一次執(zhí)行過程行過程, ,具有生命期;它具有生命期;它可以由系統(tǒng)創(chuàng)建并獨立地可以由系統(tǒng)創(chuàng)建并獨立地執(zhí)行,直至完成而被撤消。執(zhí)行,直至完成而被撤消。 進程是可以并發(fā)執(zhí)行進程是可以并發(fā)執(zhí)行的基本單位,從宏觀上看,的基本單位,從宏觀上看,它們可以它們可以“同時同時”執(zhí)行
12、。執(zhí)行。由于共享資源,進程間相由于共享資源,進程間相互約束,相互依賴?;ゼs束,相互依賴。動態(tài)性并發(fā)性獨立性異步性 各個進程之間相互獨各個進程之間相互獨立,是系統(tǒng)分配資源和能立,是系統(tǒng)分配資源和能夠被處理機調度的基本單夠被處理機調度的基本單位。位。 各個進程按照各自獨立各個進程按照各自獨立的、不可預知的速度異步的、不可預知的速度異步向前推進。即進程按異步向前推進。即進程按異步方式執(zhí)行。方式執(zhí)行。二二.、進程的特征、進程的特征1、 三種基本狀態(tài):三種基本狀態(tài): 執(zhí)行狀態(tài)執(zhí)行狀態(tài) (executing) 就緒狀態(tài)就緒狀態(tài) (ready) 阻塞狀態(tài)阻塞狀態(tài) (blocked)或等待()或等待(wait
13、) 阻塞阻塞狀態(tài)狀態(tài)就緒就緒狀態(tài)狀態(tài)執(zhí)行執(zhí)行狀態(tài)狀態(tài)調度調度i/o請求請求進程進程釋放釋放時間時間片到片到新狀態(tài)新狀態(tài)結束結束后備隊列后備隊列新狀態(tài)新狀態(tài)結束狀態(tài)結束狀態(tài)三、進程的基本狀態(tài)三、進程的基本狀態(tài)2 2、進程狀態(tài)的細化、進程狀態(tài)的細化 掛起狀態(tài)掛起狀態(tài)(suspendsuspend):): 對正在執(zhí)行的進程,則停止執(zhí)行。對正在執(zhí)行的進程,則停止執(zhí)行。 對就緒狀態(tài)的進程,對就緒狀態(tài)的進程,則停止調度,并回收資源。則停止調度,并回收資源。 對阻塞狀態(tài)的進程,對阻塞狀態(tài)的進程,則停止條件的發(fā)生。則停止條件的發(fā)生。 稱被掛起的進程是稱被掛起的進程是靜止的靜止的 靜止就緒(靜止就緒(ready
14、s)靜止靜止阻塞(阻塞(blockeds)稱未被掛起的進程是稱未被掛起的進程是活動的活動的活動就緒(活動就緒(readya)活動活動阻塞(阻塞(blockeda) 將進程將進程掛起的原因掛起的原因: 1 1。系統(tǒng)工作負荷達到高峰,調整負荷,使系統(tǒng)正常運行。系統(tǒng)工作負荷達到高峰,調整負荷,使系統(tǒng)正常運行。 2 2。人為掛起,停止某進程執(zhí)行,以便研究分析。人為掛起,停止某進程執(zhí)行,以便研究分析。 3 3。系統(tǒng)需要,如系統(tǒng)故障,系統(tǒng)檢測需要。系統(tǒng)需要,如系統(tǒng)故障,系統(tǒng)檢測需要。3 3、細化的進程狀態(tài)圖細化的進程狀態(tài)圖活動活動阻塞阻塞執(zhí)行執(zhí)行狀態(tài)狀態(tài)活動活動就緒就緒靜止靜止就緒就緒靜止靜止阻塞阻塞調度
15、調度釋放釋放i/o請求請求激活激活激活激活掛起掛起掛起掛起掛起掛起釋放釋放 1 1、進程的描述、進程的描述 對進程的描述應該反映進程的存在及其變化,反映進程的對進程的描述應該反映進程的存在及其變化,反映進程的動態(tài)特性。動態(tài)特性。進程進程由由程序程序,相應的,相應的數(shù)據(jù)集合,進程控制塊數(shù)據(jù)集合,進程控制塊三部三部分組成。分組成。進程的程序進程的程序 靜態(tài)文本,描述進程所要完成的功能。靜態(tài)文本,描述進程所要完成的功能。數(shù)數(shù) 據(jù)據(jù) 集集 合合 程序運行時所需的數(shù)據(jù)和工作區(qū)。程序運行時所需的數(shù)據(jù)和工作區(qū)。 動態(tài)描述動態(tài)描述 進程控制塊進程控制塊pcb(process control block)記錄和
16、描述記錄和描述進程的動態(tài)特性,描述進程的執(zhí)行情況和狀態(tài)變化。進程的動態(tài)特性,描述進程的執(zhí)行情況和狀態(tài)變化。四、進程控制塊四、進程控制塊 外部標識信息外部標識信息 內部標識信息內部標識信息 進程家族標識進程家族標識通用寄存器通用寄存器 指令計數(shù)器指令計數(shù)器 程序狀態(tài)字(程序狀態(tài)字(pswpsw)用戶棧指針)用戶棧指針進程調度信息進程調度信息 進程狀態(tài)進程狀態(tài) 進程優(yōu)先級進程優(yōu)先級 其他調度信息其他調度信息 等待事件等待事件進程控制信息進程控制信息 程序數(shù)據(jù)地址程序數(shù)據(jù)地址 進程同步及通信進程同步及通信 資源清單資源清單 鏈接指針鏈接指針2 2、pcb 塊包含的信息塊包含的信息 不同操作系統(tǒng),不同
17、操作系統(tǒng),pcbpcb所包含的信息類型及數(shù)量可能有所包含的信息類型及數(shù)量可能有所不同,但一般包括兩類信息。所不同,但一般包括兩類信息。1)調度信息調度信息 描述進程的當前狀況,供進程調度使用。描述進程的當前狀況,供進程調度使用。 2)現(xiàn)場信息現(xiàn)場信息 刻劃了進程運行的情況;記錄在進程運刻劃了進程運行的情況;記錄在進程運行過程中會改變的信息,以便進程中斷后,再次被調度行過程中會改變的信息,以便進程中斷后,再次被調度時能夠繼續(xù)運行。時能夠繼續(xù)運行。 pcb 塊塊是一個進程存在的唯一標志是一個進程存在的唯一標志 ,當系統(tǒng)創(chuàng)建,當系統(tǒng)創(chuàng)建一個進程時,為該進程設置一個一個進程時,為該進程設置一個 pcb
18、pcb,再利用,再利用pcbpcb對進程對進程進行控制和管理。當進程撤消時,系統(tǒng)回收它的進行控制和管理。當進程撤消時,系統(tǒng)回收它的pcb。3 3、 pcbpcb塊的組織方式塊的組織方式 鏈接方式鏈接方式 鏈接成各種就緒,阻塞及空白等各種隊列。鏈接成各種就緒,阻塞及空白等各種隊列。 索引方式索引方式 建立不同狀態(tài)的索引表。建立不同狀態(tài)的索引表。 進程隊列及其管理 處于同一狀態(tài)的所有pcb鏈接在一起的數(shù)據(jù)結構稱為進程隊列。 同一狀態(tài)進程的pcb既可按先來先到的原則排成隊列;也可按優(yōu)先數(shù)或其它原則排成隊列。 通用隊列組織方式: 線性方式、 鏈接方式 索引方式。 進程隊列及其管理 pcb表 pcb1
19、0pcb2 5pcb3 0pcb4 0 pcb5 0pcb6 4運行隊列指針 就緒隊列指針 等待隊列1指針 等待隊列2指針 pcbn 7 pcb7 0 空閑進程隊列指針 鏈接方式運行隊列指針 就緒表指針 等待表1指針 索引方式 pcb表 pcb1 pcb2 pcb3 pcb4 pcb5 pcb6 pcbn 空閑表指針 就緒索引表 等待索引表1 等待表2指針 操作系統(tǒng)中,為了防止用戶進程對操作系統(tǒng)中,為了防止用戶進程對osos及及pcbpcb等關鍵信息等關鍵信息的破壞。的破壞。 一個進程在其生命期中有兩種機器運行狀態(tài):一個進程在其生命期中有兩種機器運行狀態(tài): 系統(tǒng)態(tài)系統(tǒng)態(tài) (核心態(tài)(核心態(tài), ,
20、管態(tài))管態(tài)) 具有較高的訪問權,可訪具有較高的訪問權,可訪 問核心模塊。問核心模塊。 用戶態(tài)用戶態(tài) (目態(tài)(目態(tài) ) 限制訪問權。限制訪問權。 是機器指令的延伸,是非進程模塊是機器指令的延伸,是非進程模塊, ,不能并發(fā)執(zhí)行。不能并發(fā)執(zhí)行。 執(zhí)行過程不可中斷,用微代碼實現(xiàn)。執(zhí)行過程不可中斷,用微代碼實現(xiàn)。2、原、原 語(語(primitive)1 1、進程運行狀態(tài)、進程運行狀態(tài)處理器 單處理器和多處理器系統(tǒng)共享存儲(緊密耦合)多處理機系統(tǒng)和分布存儲(松散耦合)多處理機系統(tǒng)。 處理器狀態(tài) 處理器怎么知道當前是操作系統(tǒng)還是一般用戶程序在運行呢? 處理器狀態(tài)標志: 管理狀態(tài)(特權狀態(tài)、系統(tǒng)模式、特態(tài)或
21、管態(tài))和用戶狀態(tài)(目標狀態(tài)、用戶模式、常態(tài)或目態(tài))。處理器狀態(tài)的轉換。 處理器處于管理狀態(tài)時,程序可以執(zhí)行全部指令,使用所有資源,具有改變處理器狀態(tài)的能力;處理器處于用戶狀態(tài)時,程序只能執(zhí)行非特權指令 intel pentium的處理器狀態(tài)有四種,支持4個保護級別,0級權限最高,3級權限最低 特權指令與非特權指令 機器指令的集合稱指令系統(tǒng) (1)數(shù)據(jù)處理類指令; (2)轉移類指令; (3)數(shù)據(jù)傳送類指令; (4)移位與字符串指令; (5)i/o類指令。 微程序控制指令微程序控制指令30特權指令與非特權指令 從資源管理和控制程序執(zhí)行的角度出發(fā),必須把指令系統(tǒng)中的指令分作兩部分:特權指令和非特權指
22、令。 特權指令是指只能提供給操作系統(tǒng)的核心程序使用的指令,如啟動i/o設備、設置時鐘、控制中斷屏蔽位、清主存、建立存儲鍵,加載psw等。寄存器 計算機系統(tǒng)的處理器包括一組寄存器,其個數(shù)根據(jù)機型的不同而不同,它們構成了一級存儲,比主存容量小 ,但訪問速度快。 這組寄存器所存儲的信息與程序的執(zhí)行有很大關系,構成了處理器現(xiàn)場。 與操作系統(tǒng)相關的幾種主要寄存器 寄存器寄存器與操作系統(tǒng)密切相關,因為它們是在處理機中交在處理機中交換數(shù)據(jù)的速度比內存更快、體積也更小,而價格又更貴的暫換數(shù)據(jù)的速度比內存更快、體積也更小,而價格又更貴的暫存器件。存器件。 處理機中寄存器寄存器的功能分為二二類,即用戶可編程的寄存
23、器用戶可編程的寄存器以及控制與狀態(tài)寄存器控制與狀態(tài)寄存器。 機器語言或匯編語言的程序員可對用戶可編程寄存器用戶可編程寄存器進行操作,以獲得更高的執(zhí)行效率等。 控制與狀態(tài)寄存器控制與狀態(tài)寄存器則被用來對處理機的優(yōu)先級、保護模式或用戶程序執(zhí)行時的調用關系等進行控制和操作。 一般來說,用戶可編程寄存器和控制與狀態(tài)寄存器之間沒有嚴格的區(qū)分和限制,在不同的系統(tǒng)中,寄存器的功能和作用可能不完全相同。典型的用戶可編程寄存器包括以下幾種:典型的用戶可編程寄存器包括以下幾種:1. 數(shù)據(jù)寄存器數(shù)據(jù)寄存器編程人員可以通過程序賦予數(shù)據(jù)寄存器眾多的功能。一般來說,對數(shù)據(jù)進行操作的任何機器指令都被允許訪問數(shù)據(jù)寄存器。不過
24、,根據(jù)硬件設置的規(guī)定,這些寄存器也可能只被允許進行浮點運算或被其他某些規(guī)定所限制。2. 地址寄存器地址寄存器地址寄存器一般用來存放內存中某個數(shù)據(jù)或指令的地址,或者存放某段數(shù)據(jù)與指令的入口地址以及被用來進行更復雜的地址計算。下面幾種寄存器都可被認為是地址寄存器:(1) 地址標識位寄存器;(2) 內存管理用各種始地址寄存器;(3) 堆棧指針;(4) 設備地址寄存器等。3. 條件碼寄存器條件碼寄存器條件碼寄存器也稱標志寄存器。條件碼寄存器的比特位由處理機硬件設置。典型的控制與狀態(tài)寄存器包括以下幾種:4. 程序計數(shù)器程序計數(shù)器pc程序計數(shù)器內裝有下一周期被執(zhí)行指令的地址。5. 指令寄存器指令寄存器ir
25、指令寄存器內裝有待執(zhí)行指令。6. 程序狀態(tài)字程序狀態(tài)字psw程序狀態(tài)字寄存器的各個比特位代表系統(tǒng)中當前的各種不同狀態(tài)與信息。如執(zhí)行模式是否允許中斷等。7. 中斷現(xiàn)場保護寄存器中斷現(xiàn)場保護寄存器如果系統(tǒng)允許不同類型的中斷存在,則會設置一組中斷現(xiàn)場保護寄存器以便保存被中斷程序的現(xiàn)場和鏈接中斷恢復處。8. 過程調用用堆棧過程調用用堆棧堆棧被用來存放過程調用時的調用名、調用參數(shù)、以及返回地址等。寄存器被廣泛應用于計算機系統(tǒng)中,它們與操作系統(tǒng)有著非常直接和密切的關系。操作系統(tǒng)設計人員只有在完全掌握和了解硬件廠商所提供的各種寄存器的功能和接口之后,才能進行操作系統(tǒng)設計。程序狀態(tài)字寄存器 計算機如何知道當前
26、處于何種工作狀態(tài)?這時能否執(zhí)行特權指令?通常操作系統(tǒng)都引入程序狀態(tài)字psw(program status word)來區(qū)別不同的處理器工作狀態(tài) psw用來控制指令執(zhí)行順序并保留和指示與程序有關的系統(tǒng)狀態(tài),主要作用是實現(xiàn)程序狀態(tài)的保護和恢復 每個程序都有一個與其執(zhí)行相關的psw,每個處理器都設置一個psw寄存器。程序占有處理器執(zhí)行,它的psw將占有psw寄存器 程序狀態(tài)字寄存器 psw寄存器包括以下內容: 程序基本狀態(tài): (1) 程序計數(shù)器; (2) 條件碼; (3)處理器狀態(tài)位。 中斷碼。保存程序執(zhí)行時當前發(fā)生的中斷事件。 中斷屏蔽位。指明程序執(zhí)行中發(fā)生中斷事件時,是否響應出現(xiàn)的中斷事件。 內
27、核是內核是osos的控制和協(xié)調中心,由它組織,啟動的控制和協(xié)調中心,由它組織,啟動和協(xié)調系統(tǒng)中各種活動。通常由各種原語構成。和協(xié)調系統(tǒng)中各種活動。通常由各種原語構成。 內核是內核是osos中最重要最核心的部分。中最重要最核心的部分。osos的內核緊的內核緊靠硬件,由那些使用頻率高,與硬件緊密相關的靠硬件,由那些使用頻率高,與硬件緊密相關的模塊構成;如中斷處理程序,設備驅動程序等。模塊構成;如中斷處理程序,設備驅動程序等。 二二. .內核的功能內核的功能 1 1)中斷處理)中斷處理 中斷是中斷是osos內核最重要的功能之一。系統(tǒng)中的所有中斷內核最重要的功能之一。系統(tǒng)中的所有中斷 都由內核響應。中
28、斷是進程并發(fā)執(zhí)行的基礎,都由內核響應。中斷是進程并發(fā)執(zhí)行的基礎, osos是由中斷是由中斷驅動的。驅動的。2 2)原語操作)原語操作 原語操作包括涉及原語操作包括涉及cpucpu管理,存儲管理,設備管理,管理,存儲管理,設備管理,文件管理的各種文件管理的各種基本操作?;静僮?。3) 3) 時鐘管理時鐘管理 osos的許多重要的許多重要操作,如:按時間片輪轉調度,實時系操作,如:按時間片輪轉調度,實時系統(tǒng)中的截止時間控制等,都依賴于時鐘管理。統(tǒng)中的截止時間控制等,都依賴于時鐘管理。中中 斷斷 源源 引起中斷的異步事件(如:系統(tǒng)調用,引起中斷的異步事件(如:系統(tǒng)調用,i/ oi/ o 請求,進程調
29、度,請求,進程調度, 設備驅動,文件處理等)。設備驅動,文件處理等)。中斷請求中斷請求 向向cpucpu發(fā)出中斷信號。發(fā)出中斷信號。中斷響應中斷響應 cpu cpu停止執(zhí)行當前進程,分辨中斷請求的類型。停止執(zhí)行當前進程,分辨中斷請求的類型。中斷處理中斷處理 cpu cpu將請求交相關的中斷處理程序處理。將請求交相關的中斷處理程序處理。中斷返回中斷返回 眾多處理結束,返回斷點。眾多處理結束,返回斷點。中斷源中斷源中斷請求中斷請求中斷響應中斷響應轉中斷轉中斷處理程序處理程序退出中斷退出中斷向向cpu保護保護cpu現(xiàn)場現(xiàn)場識別中斷源識別中斷源恢復恢復cpu現(xiàn)場現(xiàn)場2.3 2.3 進程控制進程控制 (
30、五)(五)創(chuàng)建原語創(chuàng)建原語 createcreate()() 撤消撤消原語原語 destroydestroy()() 阻塞原語阻塞原語 blockblock()()喚醒喚醒原語原語 wakeupwakeup()()掛起原語掛起原語 suspendsuspend()()激活原語激活原語 activeactive()()三三 . . 進程控制原語進程控制原語 創(chuàng)建進程有兩種方式:由系統(tǒng)程序模塊創(chuàng)建,創(chuàng)建進程有兩種方式:由系統(tǒng)程序模塊創(chuàng)建,或由父進程創(chuàng)建。或由父進程創(chuàng)建。 算法步驟:算法步驟: 1. 1. 向向pcbpcb集合申請一個空閑的集合申請一個空閑的pcbpcb,并獲取其,并獲取其內部標識;
31、內部標識; 2. 2. 將有關信息填入將有關信息填入pcbpcb; 3. 3. 將該進程置為就緒狀態(tài),并插入就緒隊列。將該進程置為就緒狀態(tài),并插入就緒隊列。創(chuàng)建原語創(chuàng)建原語 createcreate()() 對進程的控制一般通過原語操作實現(xiàn)對進程的控制一般通過原語操作實現(xiàn)。創(chuàng)建原語創(chuàng)建原語 (create)(create)查查pcb集集有空有空pcbn 創(chuàng)建失敗創(chuàng)建失敗y取空表取空表pcb(i)將參數(shù)填入將參數(shù)填入pcb(i)將將pcb(i)插入就緒隊列)插入就緒隊列 算法步驟:算法步驟: 1. 1. 根據(jù)外部標識檢索根據(jù)外部標識檢索pcbpcb集,找到要撤消的集,找到要撤消的pcbpcb;
32、2. 2. 從隊列中撤消該進程從隊列中撤消該進程 及其子孫進程,通常在及其子孫進程,通常在一個遞歸過程中實現(xiàn);一個遞歸過程中實現(xiàn); 3. 3. 釋放被撤消進程所占有的資源,撤消進程控制釋放被撤消進程所占有的資源,撤消進程控制塊。塊。撤消撤消原語原語 destroydestroy()() 當進程完成或產(chǎn)生異常中斷時,應立即撤消,當進程完成或產(chǎn)生異常中斷時,應立即撤消,并釋放其所有資源并釋放其所有資源。撤消原語撤消原語 ( (destroydestroy)查查pcb集和進程家族集和進程家族有此有此pcb?n 出錯處理出錯處理y釋放進程所占資源釋放進程所占資源釋放釋放pcb(i)結構)結構該該pcb
33、有子進程?有子進程?yn2.3 進程控制進程控制 (五)(五) 進程在執(zhí)行過程中,需要等待某些條件發(fā)生時,由進程在執(zhí)行過程中,需要等待某些條件發(fā)生時,由該進程調用阻塞原語把進程從執(zhí)行狀態(tài)轉換為阻塞狀態(tài)。該進程調用阻塞原語把進程從執(zhí)行狀態(tài)轉換為阻塞狀態(tài)。 算法步驟:算法步驟:1.1. 中斷中斷cpucpu執(zhí)行,將執(zhí)行,將cpucpu的當前狀態(tài)保存到的當前狀態(tài)保存到pcbpcb的現(xiàn)場信息。的現(xiàn)場信息。 2. 2. 將進程的當前狀態(tài)置為阻塞狀態(tài);將進程的當前狀態(tài)置為阻塞狀態(tài);3. 3. 將進程的將進程的pcbpcb插入到該事件的阻塞隊列中。插入到該事件的阻塞隊列中。 阻塞原語阻塞原語 blockbl
34、ock()()2.3 進程控制進程控制 (五)(五) 算法步驟:算法步驟: 1. 1. 在等待隊列中找到該進程,將其在等待隊列中找到該進程,將其p p的當前狀態(tài)置的當前狀態(tài)置為就緒;為就緒; 2. 2. 將進程從等待隊列中撤消,并插入到就緒隊列中。將進程從等待隊列中撤消,并插入到就緒隊列中。喚醒喚醒原語原語 wakeupwakeup()() 當處于阻塞狀態(tài)的進程所等待的事件發(fā)生后,使用喚當處于阻塞狀態(tài)的進程所等待的事件發(fā)生后,使用喚醒原語將進程從等待狀態(tài)轉換為就緒狀態(tài)。醒原語將進程從等待狀態(tài)轉換為就緒狀態(tài)。2.3 進程控制進程控制 (六)(六) 進程在執(zhí)行過程中,根據(jù)用戶或系統(tǒng)的某種需要,進程
35、在執(zhí)行過程中,根據(jù)用戶或系統(tǒng)的某種需要,調用掛起原語將進程從活動狀態(tài)轉換為靜止狀態(tài)。調用掛起原語將進程從活動狀態(tài)轉換為靜止狀態(tài)。 算法步驟:算法步驟: 1. 1. 根據(jù)外部標識檢索根據(jù)外部標識檢索pcbpcb集,找到要掛起的集,找到要掛起的pcbpcb塊;塊; 2. 2. 檢查被掛進程的當前狀態(tài):檢查被掛進程的當前狀態(tài): 執(zhí)執(zhí) 行行 態(tài)態(tài) 靜止就緒,并轉調度程序,重新調度。靜止就緒,并轉調度程序,重新調度。 活動就緒活動就緒 靜止就緒靜止就緒 活動阻塞活動阻塞 靜止阻塞靜止阻塞掛起原語掛起原語 suspendsuspend()()2.3 進程控制進程控制 (六)(六) 算法步驟:算法步驟: 1
36、. 1. 檢查被掛進程的當前狀態(tài):檢查被掛進程的當前狀態(tài): 2. 2. 將進程從相應的靜止狀態(tài)將進程從相應的靜止狀態(tài) 活動狀態(tài)?;顒訝顟B(tài)。激活原語激活原語 activeactive()() 當外于靜止狀態(tài)的進程所等待的激活事件發(fā)生后,當外于靜止狀態(tài)的進程所等待的激活事件發(fā)生后,使用激活原語將進程從靜止狀態(tài)轉換為活動狀態(tài)。使用激活原語將進程從靜止狀態(tài)轉換為活動狀態(tài)。 一一. . unixunix系統(tǒng)的核心結構系統(tǒng)的核心結構 unixunix系統(tǒng)分為三個層次:系統(tǒng)分為三個層次:核心、用戶接口及實用程序、核心、用戶接口及實用程序、應用程序。應用程序。2.4 unix2.4 unix系統(tǒng)中的進程系統(tǒng)中
37、的進程(一)(一) unixunix核心核心 : 包括四大資源管理功能。由以下部分組成:包括四大資源管理功能。由以下部分組成:1 1、進程控制子系統(tǒng)進程控制子系統(tǒng) 負責處理機管理和存儲管理,包括進程控制、進程負責處理機管理和存儲管理,包括進程控制、進程通信、進程調度及段頁式存儲管理。通信、進程調度及段頁式存儲管理。2 2、文件子系統(tǒng)文件子系統(tǒng) 將慢速外設備看作廣義的文件。文件子系統(tǒng)功能包括:將慢速外設備看作廣義的文件。文件子系統(tǒng)功能包括:文件管理、高速緩沖機制及設備驅動。文件管理、高速緩沖機制及設備驅動。3 3、兩個接口、兩個接口 核心與硬件的接口核心與硬件的接口 (一組驅動程序,基本例程)(
38、一組驅動程序,基本例程) 核心與核心與shellshell的接口(系統(tǒng)調用,命令解釋程序)的接口(系統(tǒng)調用,命令解釋程序)2.4 unix2.4 unix系統(tǒng)中的進程系統(tǒng)中的進程(二)(二)3 3。兩個接口。兩個接口 核心與硬件的接口核心與硬件的接口 (一組驅動程序,基本例程)(一組驅動程序,基本例程) 核心與核心與shellshell的接口的接口 (系統(tǒng)調用,命令解釋程序)(系統(tǒng)調用,命令解釋程序)文件子系統(tǒng)文件子系統(tǒng)進程控制子系統(tǒng)進程控制子系統(tǒng)系統(tǒng)調用接口系統(tǒng)調用接口硬硬 件件硬件控制硬件控制用戶程序用戶程序核核心心級級用戶級用戶級硬件級硬件級2.4 unix2.4 unix系統(tǒng)中的進程系
39、統(tǒng)中的進程(三)(三)pcbpcb 塊數(shù)據(jù)結構塊數(shù)據(jù)結構 1 1。進程表項(。進程表項(procproc結構):核心數(shù)據(jù)。結構):核心數(shù)據(jù)。 2。u區(qū)(區(qū)(user結構)結構) : procproc的擴充數(shù)據(jù)。的擴充數(shù)據(jù)。 3 3。系統(tǒng)區(qū)表項。系統(tǒng)區(qū)表項 :段在物理存儲器的位置等信息。:段在物理存儲器的位置等信息。 4 4。本進程區(qū)表。本進程區(qū)表 :本段起始虛地址,指向系統(tǒng)區(qū)表中:本段起始虛地址,指向系統(tǒng)區(qū)表中 的本進程區(qū)表項的指針。的本進程區(qū)表項的指針。2.4 2.4 unixunix系統(tǒng)中的進程系統(tǒng)中的進程(四)(四)進程的唯一標識。進程的唯一標識。擁有該進程的用戶標識。擁有該進程的用戶標
40、識。記錄該進程的當前狀態(tài)(九種)。記錄該進程的當前狀態(tài)(九種)。記錄使該進程進入睡眠狀態(tài)的事件。記錄使該進程進入睡眠狀態(tài)的事件。進程及進程及u u區(qū)在內存或外存的位置。區(qū)在內存或外存的位置。記錄其它進程發(fā)來的軟中斷信號。記錄其它進程發(fā)來的軟中斷信號。進程執(zhí)行時間及對資源的利用情況。進程執(zhí)行時間及對資源的利用情況。用于內存分配。用于內存分配。設置進程動態(tài)優(yōu)先級。設置進程動態(tài)優(yōu)先級。指向指向u u區(qū)進程正文、數(shù)據(jù)及棧在內存區(qū)區(qū)進程正文、數(shù)據(jù)及棧在內存區(qū)域的指針。域的指針。 1. 1. 進程表項(進程表項(procproc結構)結構) 包括進程最常用的基本控制信息,常駐內存。包括進程最常用的基本控制
41、信息,常駐內存。進程標識符進程標識符pid用戶標識符用戶標識符uid進程狀態(tài)進程狀態(tài)事件描述符事件描述符進程及進程及u區(qū)位置區(qū)位置軟中斷信號軟中斷信號計時域計時域進程大小進程大小偏置值偏置值指向指向u區(qū)內存區(qū)域區(qū)內存區(qū)域的指針的指針二、二、 pcb pcb 塊的數(shù)據(jù)結構塊的數(shù)據(jù)結構2.4 2.4 unixunix系統(tǒng)中的進程系統(tǒng)中的進程(五)(五)指向當前執(zhí)行進程的進程表項。指向當前執(zhí)行進程的進程表項。(real user idreal user id)由超級用戶分配的戶標)由超級用戶分配的戶標 識符,用于用戶登錄驗證。識符,用于用戶登錄驗證。(effective user ideffecti
42、ve user id)一般同上,可由)一般同上,可由系系 統(tǒng)調用改變。統(tǒng)調用改變。記錄該進程已打開的所有文件。記錄該進程已打開的所有文件。記錄當前根及當前目錄。記錄當前根及當前目錄。對進程大小及讀、寫文件字節(jié)數(shù),方式對進程大小及讀、寫文件字節(jié)數(shù),方式 及緩沖區(qū)大小等的限制。及緩沖區(qū)大小等的限制。記錄進程(及其子進程)在核心態(tài)和用戶記錄進程(及其子進程)在核心態(tài)和用戶態(tài)執(zhí)行所用時間。態(tài)執(zhí)行所用時間。記錄系統(tǒng)調用過程中的錯誤。記錄系統(tǒng)調用過程中的錯誤。標識出該標識出該user user 結構所對應的結構所對應的 procproc結構。結構。 useruser結構所包含的信息只有在進程運行時才使用,
43、不一定結構所包含的信息只有在進程運行時才使用,不一定調入內存。調入內存。2、u區(qū)(區(qū)(user結構)結構)進程表項指針進程表項指針真正用戶標識符真正用戶標識符u uruidruid有效用戶標識符有效用戶標識符u ueuideuid文件描述表文件描述表文件運行環(huán)境文件運行環(huán)境限制字段限制字段計時器計時器出錯字段出錯字段指向指向u u區(qū)內存區(qū)域區(qū)內存區(qū)域的指針的指針2.4 2.4 unixunix系統(tǒng)中的進程系統(tǒng)中的進程(六)(六) unixunix系統(tǒng)中采用段頁式儲存管理,為了把虛地址映射到系統(tǒng)中采用段頁式儲存管理,為了把虛地址映射到實際的物理地址,定義了兩個表:進程區(qū)表,系統(tǒng)區(qū)表。實際的物理地
44、址,定義了兩個表:進程區(qū)表,系統(tǒng)區(qū)表。 儲存管理是進程并發(fā)執(zhí)行的基礎,因此,儲存管理是進程并發(fā)執(zhí)行的基礎,因此,pcbpcb中也定義了中也定義了有關儲存管理的字段:有關儲存管理的字段: 3 3。系統(tǒng)區(qū)表項。系統(tǒng)區(qū)表項 4 4。本進程區(qū)表。本進程區(qū)表三、進程的上、下文三、進程的上、下文 進程是一個進程映象(進程是一個進程映象(process imageprocess image)的執(zhí)行過程,)的執(zhí)行過程,各進程并發(fā)執(zhí)行,各進程并發(fā)執(zhí)行,osos經(jīng)常需要把控制從一個現(xiàn)行執(zhí)行的進經(jīng)常需要把控制從一個現(xiàn)行執(zhí)行的進程轉換到另一個進程,這個操作稱為程轉換到另一個進程,這個操作稱為“關聯(lián)轉換關聯(lián)轉換”,或,
45、或“上、下文轉換上、下文轉換”(contextcontext)。)。 進程上、下文是對進程執(zhí)行活動全過程的描述。進程進程上、下文是對進程執(zhí)行活動全過程的描述。進程上、下文包括:上、下文包括: 寄存器上、下文寄存器上、下文, 系統(tǒng)級上、下文系統(tǒng)級上、下文, 用戶級上、下文用戶級上、下文。2.4 2.4 unixunix系統(tǒng)中的進程(七)系統(tǒng)中的進程(七) 存放進程在運行過程中所產(chǎn)生的數(shù)據(jù)。存放進程在運行過程中所產(chǎn)生的數(shù)據(jù)。 如如r0r0、r1 r1 用于系統(tǒng)進程與用戶進程間用于系統(tǒng)進程與用戶進程間傳遞參數(shù)。傳遞參數(shù)。 存放存放cpucpu正常執(zhí)行的下一條指令的虛地正常執(zhí)行的下一條指令的虛地址。址
46、。 包括當前進程的訪問方式(核心態(tài)、用包括當前進程的訪問方式(核心態(tài)、用戶態(tài))中斷優(yōu)先級,中斷或陷入前的訪戶態(tài))中斷優(yōu)先級,中斷或陷入前的訪問方式。問方式。 指向核心?;蛴脩魲V邢乱豁椀漠斍暗刂赶蚝诵臈;蛴脩魲V邢乱豁椀漠斍暗刂?。址。1 1、寄存器上、下文、寄存器上、下文 又稱硬件關聯(lián)又稱硬件關聯(lián) (hardware contexthardware context),存放進程狀態(tài)變化),存放進程狀態(tài)變化時進程運行所對應的各寄存器的值。時進程運行所對應的各寄存器的值。通用寄存器通用寄存器程序寄存器程序寄存器(計數(shù)器(計數(shù)器pcpc)處理機狀態(tài)寄存器處理機狀態(tài)寄存器(狀態(tài)字(狀態(tài)字pswpsw)堆棧指針堆棧指針2.4 2.4 unixunix系統(tǒng)中的進程系統(tǒng)中的進程(
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年智能用電系統(tǒng)產(chǎn)品合作協(xié)議書
- 合伙經(jīng)營鏟車合同范本
- 土壤改良工程填土施工合同范本
- 劇組法律顧問合同范本
- 合伙運輸協(xié)議合同范本
- 商品陳列協(xié)議合同范本
- 各類廣告合同范本
- 廠房噴漆合同范本
- 俱樂部管理合同范本
- 廚師和飯店合同范本
- 2025年阜新高等??茖W校單招職業(yè)傾向性測試題庫附答案
- 2025年包頭輕工職業(yè)技術學院單招職業(yè)適應性測試題庫及答案一套
- 《養(yǎng)老保險的理念》課件
- 2024-2025學年第二學期英語教研組工作計劃
- 山東省海洋知識競賽(初中組)考試題庫500題(含答案)
- 服務行業(yè)人力資源薪酬體系管理與優(yōu)化
- 馬尼拉草皮施工方案
- 《蔚來發(fā)展》課件
- 人工智能融入土木水利碩士人才培養(yǎng)模式研究
- 2024年山東商務職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 醫(yī)學教育中的學習風格與個性化教學
評論
0/150
提交評論