操作系統(tǒng)第二章進程的描述與控制-1)_第1頁
操作系統(tǒng)第二章進程的描述與控制-1)_第2頁
操作系統(tǒng)第二章進程的描述與控制-1)_第3頁
操作系統(tǒng)第二章進程的描述與控制-1)_第4頁
操作系統(tǒng)第二章進程的描述與控制-1)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章第二章 進程的描述與控制進程的描述與控制 軟件工程學院計算機應用系目錄目錄1. 進程的基本概念進程的基本概念 2. 進程控制進程控制 3. 進程同步進程同步 4. 經典進程同步問題經典進程同步問題 5. 進程通信進程通信 6. 線程的基本概念線程的基本概念 是一個是一個有向無循環(huán)圖有向無循環(huán)圖,圖中每個結點表示一個語句、一段,圖中每個結點表示一個語句、一段程序或一個進程程序或一個進程1.前驅圖前驅圖有向邊有向邊 Vi , Vj 表示表示Vj僅在僅在 Vi執(zhí)行完后才能開始執(zhí)行執(zhí)行完后才能開始執(zhí)行 S1S3S7S6S4S2S52.1 進程的基本概念進程的基本概念 順序執(zhí)行的特征順序執(zhí)行的特征

2、 順序性順序性 封閉性封閉性 可再現(xiàn)性可再現(xiàn)性 :程序的運行結果與其推進速度無關程序的運行結果與其推進速度無關 例:程序段例:程序段 read(disk,&a,4); /*從磁盤讀從磁盤讀a*/ c=a+2; printf(“c=%fn”,c);2. 2. 程序的順序執(zhí)行程序的順序執(zhí)行ICPI C P3. 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行 (1)概念)概念 (2)特征)特征間斷間斷( (異步異步) )性:性:“運行暫停運行運行暫停運行”;失去封閉性失去封閉性不可再現(xiàn)性:不可再現(xiàn)性:進程的運行結果與其推進速度有關。進程的運行結果與其推進速度有關。 2.1 2.1 進程的基本概念進程的基本概念

3、4. 進程的定義及特征進程的定義及特征n簡單定義簡單定義:一個程序的一次運行過程。一個程序的一次運行過程。n 特征:特征: 動態(tài)性:動態(tài)性:進程最基本的特征進程最基本的特征 結構特征結構特征: 程序數(shù)據程序數(shù)據PCB 321該程序所需的相關該程序所需的相關數(shù)據數(shù)據(變量、工作變量、工作空間,緩沖區(qū)等空間,緩沖區(qū)等)該程序的執(zhí)行上該程序的執(zhí)行上下文下文(Context)一個可執(zhí)行的程一個可執(zhí)行的程序序2.1 2.1 進程的基本概念進程的基本概念 獨立性:獨立性:是系統(tǒng)進行資源分配和調度的獨立單位,是能獨是系統(tǒng)進行資源分配和調度的獨立單位,是能獨立運行的基本單位立運行的基本單位 并發(fā)性:并發(fā)性:程

4、序在建立進程后并發(fā)運行程序在建立進程后并發(fā)運行 異步性:異步性:進程以不可預知的速度向前推進進程以不可預知的速度向前推進 進程特征進程特征n定義:定義:可并發(fā)執(zhí)行的程序在一個數(shù)據集合上的一可并發(fā)執(zhí)行的程序在一個數(shù)據集合上的一次運行過程,是系統(tǒng)進行資源分配和調度的一個獨次運行過程,是系統(tǒng)進行資源分配和調度的一個獨立單位。立單位。2.1 2.1 進程的基本概念進程的基本概念 (1)從定義上看,進程是程序處理數(shù)據的過程,而程序是從定義上看,進程是程序處理數(shù)據的過程,而程序是一組指令的有序集合;一組指令的有序集合; (2)進程具有動態(tài)性、并發(fā)性、獨立性和異步性等,而程進程具有動態(tài)性、并發(fā)性、獨立性和異

5、步性等,而程序不具有這些特性;序不具有這些特性; (3)從進程結構特性上看,它包含程序、數(shù)據和從進程結構特性上看,它包含程序、數(shù)據和PCB; (4)進程和程序并非一一對應:進程和程序并非一一對應:通過多次執(zhí)行,一個程序通過多次執(zhí)行,一個程序可對應多個進程;通過調用關系,一個進程可執(zhí)行多個程可對應多個進程;通過調用關系,一個進程可執(zhí)行多個程序。序。 進程與程序的區(qū)進程與程序的區(qū)別別2.1 進程的基本概念進程的基本概念 就緒狀態(tài):就緒狀態(tài):進程分配到必要的資源,等待獲得進程分配到必要的資源,等待獲得CPUCPU執(zhí)行的狀執(zhí)行的狀態(tài)。態(tài)。 組織成一個或多個就緒隊列。組織成一個或多個就緒隊列。 運行狀態(tài)

6、運行狀態(tài):進程分配到必要的資源,在進程分配到必要的資源,在CPUCPU上執(zhí)行時的狀態(tài)上執(zhí)行時的狀態(tài) 阻塞狀態(tài)(等待狀態(tài))阻塞狀態(tài)(等待狀態(tài)):正在執(zhí)行的進程由于發(fā)生某事正在執(zhí)行的進程由于發(fā)生某事件而暫時無法繼續(xù)執(zhí)行時,便放棄處理機而處于暫停狀態(tài)。件而暫時無法繼續(xù)執(zhí)行時,便放棄處理機而處于暫停狀態(tài)。組織成一個或多個阻塞隊列。組織成一個或多個阻塞隊列。5. 進程的狀態(tài)進程的狀態(tài) (1)三種基本狀態(tài)三種基本狀態(tài)進程三種基本狀態(tài)的轉換進程三種基本狀態(tài)的轉換運行運行就緒就緒阻塞阻塞等待事件等待事件 (系統(tǒng)服務請求,系統(tǒng)服務請求,如請求如請求I/O) 被調度或分派被調度或分派 時間片時間片用完用完 事件發(fā)

7、生事件發(fā)生進程三種基本狀態(tài)的轉換:進程三種基本狀態(tài)的轉換:思考問題:思考問題:1.在進程狀態(tài)轉換時,下列哪一種狀態(tài)轉換是不可能發(fā)生的?在進程狀態(tài)轉換時,下列哪一種狀態(tài)轉換是不可能發(fā)生的? A)就緒態(tài)就緒態(tài)運行態(tài)運行態(tài) B)運行態(tài)運行態(tài)就緒態(tài)就緒態(tài) C)運行態(tài)運行態(tài)等待態(tài)等待態(tài) D)阻塞態(tài)阻塞態(tài)運行態(tài)運行態(tài) 答案:答案:D2某進程在運行過程中需要等待從磁盤上讀入數(shù)據,此時該進某進程在運行過程中需要等待從磁盤上讀入數(shù)據,此時該進程的狀態(tài)將(程的狀態(tài)將( )。)。 A.從就緒變?yōu)檫\行從就緒變?yōu)檫\行 B.從運行變?yōu)榫途w從運行變?yōu)榫途w C.從運行變?yōu)樽枞麖倪\行變?yōu)樽枞?D.從阻塞變?yōu)榫途w從阻塞變?yōu)榫途w

8、答案:答案:C2.1 進程的基本概念進程的基本概念 引人掛起狀態(tài)的原因:引人掛起狀態(tài)的原因:(1 1)操作系統(tǒng)的需要;()操作系統(tǒng)的需要;(2 2)終端用戶的需要;)終端用戶的需要;(3 3)父進程請求;)父進程請求; (4 4)負荷調節(jié)的需要;)負荷調節(jié)的需要;(5 5)對換的需要。)對換的需要。 進程狀態(tài)的轉換:進程狀態(tài)的轉換: (2)掛起狀態(tài):掛起狀態(tài):靜止狀靜止狀態(tài)態(tài)靜止就緒靜止就緒靜止阻塞靜止阻塞掛起掛起掛起掛起激活激活激活激活(1 1)活動就緒)活動就緒 靜止就緒靜止就緒 (2 2)活動阻塞)活動阻塞 靜止阻塞靜止阻塞(3 3)靜止就緒)靜止就緒 活動就緒活動就緒 (4 4)靜止阻

9、塞)靜止阻塞 活動阻塞活動阻塞 (5) (5) 運行狀態(tài)運行狀態(tài) 靜止就緒靜止就緒掛起掛起Linux中進程的掛起與激活:中進程的掛起與激活:#ctrl+z:掛起進程,當前進程放到后臺暫停執(zhí)行:掛起進程,當前進程放到后臺暫停執(zhí)行#jobs:查看被掛起的進程號查看被掛起的進程號激活進程:兩種方法:激活進程:兩種方法: fg 進程號:將掛起的進程放回到前臺執(zhí)行進程號:將掛起的進程放回到前臺執(zhí)行 bg 進程號:將掛起的進程放回到后臺執(zhí)行進程號:將掛起的進程放回到后臺執(zhí)行 具有掛起狀態(tài)的進程狀態(tài)轉換具有掛起狀態(tài)的進程狀態(tài)轉換活動就緒活動就緒運行運行活動阻塞活動阻塞靜止阻塞靜止阻塞靜止就緒靜止就緒wake

10、up (喚醒喚醒)事件發(fā)生事件發(fā)生掛起掛起suspend時間片完時間片完被調度被調度scheduler激活激活active掛起掛起suspend激活激活active掛起掛起suspend等待事件等待事件sleep事件發(fā)生事件發(fā)生wakeup (喚醒喚醒)2.1進程的基本概念進程的基本概念(3)創(chuàng)建狀態(tài)和終止狀態(tài)創(chuàng)建狀態(tài)和終止狀態(tài)(1)NULL 創(chuàng)建創(chuàng)建 (2)創(chuàng)建)創(chuàng)建 活動就緒活動就緒(3)創(chuàng)建)創(chuàng)建 靜止就緒靜止就緒(4)執(zhí)行)執(zhí)行 終止終止補充:進程管理功能:補充:進程管理功能:(1 1)進程控制:)進程控制:控制進程狀態(tài)轉換;(2 2)進程同步:)進程同步:進程間運行順序的協(xié)調:互斥方

11、式;互斥方式;同步方式:同步方式: (3 3)進程通信:)進程通信:進程間的信息交換直接通信;直接通信;間接通信。間接通信。 (4 4)進程調度:)進程調度:進程間競爭臨界資源進程間競爭臨界資源進程間相互合作進程間相互合作OSOS內核的內核的概念概念OS內核的功能:內核的功能: 進程進程( (線程線程) )管理;管理; 低級存儲器管理;低級存儲器管理; 中斷和陷入處理;中斷和陷入處理; “內核內核”指的是一個提供硬件抽象層、磁盤及文件系統(tǒng)控指的是一個提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務等功能的系統(tǒng)軟件,是一個操作系統(tǒng)的核心,制、多任務等功能的系統(tǒng)軟件,是一個操作系統(tǒng)的核心,常駐內存。常駐

12、內存。2.1 進程的基本概念進程的基本概念 程序:程序:描述進程要完成的功能描述進程要完成的功能 數(shù)據集合:數(shù)據集合:包含程序運行所需的數(shù)據和工包含程序運行所需的數(shù)據和工作區(qū)作區(qū) 進程控制塊(進程控制塊(PCBPCB):):包含進程的描述信息包含進程的描述信息和控制信息,是進程動態(tài)特性的反映和控制信息,是進程動態(tài)特性的反映 5.進程控制塊進程控制塊PCB程序和數(shù)據集合是進程的實體程序和數(shù)據集合是進程的實體進程控制塊是進程存在的唯一標志進程控制塊是進程存在的唯一標志進程控制塊是由進程控制塊是由OSOS維護維護的用來記錄的用來記錄進程相關進程相關信息信息的一塊內存。的一塊內存。2.1 進程的基本概

13、念進程的基本概念 進程標識符:進程標識符: 內部標識符、外部標識符內部標識符、外部標識符 處理機狀態(tài)信息:處理機狀態(tài)信息:(1 1)通用寄存器;)通用寄存器;(2 2)段寄存器;)段寄存器;(3 3)指令計數(shù)器;)指令計數(shù)器;(4 4)程序狀態(tài)字)程序狀態(tài)字(PSW)(PSW); 進程控制塊(進程控制塊(PCB)內容內容3232位位CPUCPU有有8 8個個3232位的位的通用寄存器通用寄存器EAXEAX、EBXEBX、ECXECX、EDXEDX、ESIESI、EDIEDI、EBPEBP和和ESPESP 。EAXEAX:稱為累加器,可用于乘、除、輸入:稱為累加器,可用于乘、除、輸入/ /輸出等

14、操作;輸出等操作;EBX:EBX:稱為基地址寄存器稱為基地址寄存器, , 可作為存儲器指針來使用;可作為存儲器指針來使用; ECX:ECX:稱為計數(shù)寄存器稱為計數(shù)寄存器, , 控制循環(huán)次數(shù);控制循環(huán)次數(shù);EDX:EDX:稱為數(shù)據寄存器稱為數(shù)據寄存器, ,在進行乘、除運算時,作為默認的操作在進行乘、除運算時,作為默認的操作數(shù)參與運算,也可用于存放數(shù)參與運算,也可用于存放I/OI/O的端口地址。的端口地址。ESIESI:變址寄存器,是內存移動和比較操作的源地址寄存器;:變址寄存器,是內存移動和比較操作的源地址寄存器;EDIEDI:變址寄存器,是內存移動和比較操作的目標地址寄存器:變址寄存器,是內存

15、移動和比較操作的目標地址寄存器EBPEBP:指針寄存器,存放堆棧幀的始址;:指針寄存器,存放堆棧幀的始址;ESP: ESP: 指針寄存器,當前堆棧棧頂位置。指針寄存器,當前堆棧棧頂位置。段寄存器是根據內存分段的管理模式而設置的。內存單元的段寄存器是根據內存分段的管理模式而設置的。內存單元的物理地址由段寄存器的值和一個偏移量組合而成。物理地址由段寄存器的值和一個偏移量組合而成。3232位位CPUCPU有有6 6個,個,1616位位CPUCPU有有4 4個個 。CSCS:代碼段寄存器,其值為代碼段的段地址;:代碼段寄存器,其值為代碼段的段地址;DSDS:數(shù)據段寄存器,其值為數(shù)據段的地址;:數(shù)據段寄

16、存器,其值為數(shù)據段的地址;ESES:附加段寄存器,其值為附加數(shù)據段的地址;:附加段寄存器,其值為附加數(shù)據段的地址;SSSS:堆棧段寄存器,其值為堆棧段的地址;:堆棧段寄存器,其值為堆棧段的地址;FSFS:附加段寄存器,其值為附加數(shù)據段的地址;:附加段寄存器,其值為附加數(shù)據段的地址;GSGS:附加段寄存器,其值為附加數(shù)據段的地址。:附加段寄存器,其值為附加數(shù)據段的地址。中斷允許位、陷入標志、中斷允許位、陷入標志、任務嵌套標志、特權標任務嵌套標志、特權標志、溢出標志、符號標志、溢出標志、符號標志、零標志、進位標志志、零標志、進位標志等等2.1 進程的基本概念進程的基本概念 進程控制信息:進程控制信

17、息:(1 1)程序和數(shù)據地址;)程序和數(shù)據地址;(2 2)進程同步和通信信息;)進程同步和通信信息;(3 3)資源清單;)資源清單;(4 4)鏈接指針)鏈接指針 進程控制塊內容進程控制塊內容 鏈接方式:鏈接方式: 索引方式索引方式 進程控制塊的組織方進程控制塊的組織方式式(1 1)就緒鏈表;)就緒鏈表;(2 2)執(zhí)行進程;)執(zhí)行進程;(3 3)阻塞鏈表;)阻塞鏈表;(4 4)空白鏈表。)空白鏈表。 進程調度信息:進程調度信息:(1 1)進程狀態(tài);)進程狀態(tài);(2 2)進程優(yōu)先級;)進程優(yōu)先級;(3 3)事件;)事件;(4 4)其他信息)其他信息2.2 進程控制進程控制原語原語(primitiv

18、e)(primitive): 由若干條指令構成的由若干條指令構成的“原子操作原子操作(atomic (atomic operation)”operation)”過程,完成某種特定的功能,作為一個過程,完成某種特定的功能,作為一個整體整體而而不可分割不可分割要么全都完成,要么全都不做。要么全都完成,要么全都不做。進程控制原語:進程控制原語:(1) 創(chuàng)建進程原語創(chuàng)建進程原語 (2) 終止進程原語終止進程原語 (3) 掛起進程原語掛起進程原語 (4) 激活進程原語激活進程原語(5) 阻塞進程原語阻塞進程原語 (6) 喚醒進程原語喚醒進程原語1進程圖概念:進程圖概念: 描述系統(tǒng)中進程的家族關系的有向圖

19、。描述系統(tǒng)中進程的家族關系的有向圖。(1)用戶登錄。用戶登錄。(2)作業(yè)調度。作業(yè)調度。 3. 引起創(chuàng)建進程的事件:引起創(chuàng)建進程的事件: (3) 提供服務。提供服務。 (4) 應用請求。應用請求。 4. 創(chuàng)建進程原語創(chuàng)建進程原語的工作大致描述為:的工作大致描述為: (1)申請空白申請空白PCB;(2) 為新進程分配資源;為新進程分配資源; (3) 初始化進程控制塊初始化進程控制塊PCB; (4) 將新進程插入就緒隊列。將新進程插入就緒隊列。 調用調用 alloc _task _struct()分配兩個頁面存分配兩個頁面存放放task_struct及及 系統(tǒng)堆棧系統(tǒng)堆棧調用調用get_pid()

20、獲得新建子進程獲得新建子進程PID1、調用調用copy _files()復制父進程已經打開的文件控制結構復制父進程已經打開的文件控制結構;2、調用調用copy _fs()復制父進程的根目錄復制父進程的根目錄、安裝點等安裝點等;3、調用調用copy _sighand ()復制父進程信號處理函數(shù)復制父進程信號處理函數(shù);4、調用調用copy_mm()復制父進程用戶地址空間復制父進程用戶地址空間調用調用 copy _ thread ()復制系統(tǒng)堆棧復制系統(tǒng)堆棧調用調用wake_ up_ process() 將子進將子進程插入可運行進程隊列程插入可運行進程隊列3. 終止進程原語終止進程原語1)正常結束正

21、常結束2) 異常結束異常結束3) 外界干預外界干預 引起進程終止的事件:引起進程終止的事件: OSOS父進程終止父進程終止父進程請求父進程請求(1)根據被終止進程的標識符,從)根據被終止進程的標識符,從PCB集合中集合中檢索出該進程的檢索出該進程的PCB,獲得該進程的狀態(tài),獲得該進程的狀態(tài)(2)若被終止進程正處于執(zhí)行狀態(tài),應立即終)若被終止進程正處于執(zhí)行狀態(tài),應立即終止該進程的執(zhí)行,并置調度標志為真。止該進程的執(zhí)行,并置調度標志為真。(3)若該進程還有子孫進程,終止其所有子孫)若該進程還有子孫進程,終止其所有子孫進程。進程。(4)回收資源)回收資源(5)回收)回收PCB 進程終止的過程:進程終止的過程: 1)請求系統(tǒng)服務請求系統(tǒng)服務 2) 啟動某種操作啟動某種操作 3) 新數(shù)據尚未到達新數(shù)據尚未到達4) 無新工作可做:服務進程無新工作可做:服務進程4. 阻塞與喚醒原語阻塞與喚醒原語 引起進程阻塞與喚醒的事件:引起進程阻塞與喚醒的事件: 1)停止當前進程執(zhí)行,并修改進程狀態(tài):停止當前進程執(zhí)行,并修改進程狀態(tài): 由由“執(zhí)行執(zhí)行”改為改為“阻塞阻塞”;2) 將將PCB插入插入阻塞阻塞隊列;隊列; 3) 轉轉調度程序重新進行調度。調度程序重新進行調度。 進程阻塞過程:進程阻塞過程: 1) 把被阻塞的進程從等待該

溫馨提示

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

評論

0/150

提交評論