




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第二章第二章 進程的描述與控制進程的描述與控制 軟件工程學院計算機應用系目錄目錄1. 進程的基本概念進程的基本概念 2. 進程控制進程控制 3. 進程同步進程同步 4. 經典進程同步問題經典進程同步問題 5. 進程通信進程通信 6. 線程的基本概念線程的基本概念 是一個是一個有向無循環圖有向無循環圖,圖中每個結點表示一個語句、一段,圖中每個結點表示一個語句、一段程序或一個進程程序或一個進程1.前驅圖前驅圖有向邊有向邊 Vi , Vj 表示表示Vj僅在僅在 Vi執行完后才能開始執行執行完后才能開始執行 S1S3S7S6S4S2S52.1 進程的基本概念進程的基本概念 順序執行的特征順序執行的特征
2、 順序性順序性 封閉性封閉性 可再現性可再現性 :程序的運行結果與其推進速度無關程序的運行結果與其推進速度無關 例:程序段例:程序段 read(disk,&a,4); /*從磁盤讀從磁盤讀a*/ c=a+2; printf(“c=%fn”,c);2. 2. 程序的順序執行程序的順序執行ICPI C P3. 程序的并發執行程序的并發執行 (1)概念)概念 (2)特征)特征間斷間斷( (異步異步) )性:性:“運行暫停運行運行暫停運行”;失去封閉性失去封閉性不可再現性:不可再現性:進程的運行結果與其推進速度有關。進程的運行結果與其推進速度有關。 2.1 2.1 進程的基本概念進程的基本概念
3、4. 進程的定義及特征進程的定義及特征n簡單定義簡單定義:一個程序的一次運行過程。一個程序的一次運行過程。n 特征:特征: 動態性:動態性:進程最基本的特征進程最基本的特征 結構特征結構特征: 程序數據程序數據PCB 321該程序所需的相關該程序所需的相關數據數據(變量、工作變量、工作空間,緩沖區等空間,緩沖區等)該程序的執行上該程序的執行上下文下文(Context)一個可執行的程一個可執行的程序序2.1 2.1 進程的基本概念進程的基本概念 獨立性:獨立性:是系統進行資源分配和調度的獨立單位,是能獨是系統進行資源分配和調度的獨立單位,是能獨立運行的基本單位立運行的基本單位 并發性:并發性:程
4、序在建立進程后并發運行程序在建立進程后并發運行 異步性:異步性:進程以不可預知的速度向前推進進程以不可預知的速度向前推進 進程特征進程特征n定義:定義:可并發執行的程序在一個數據集合上的一可并發執行的程序在一個數據集合上的一次運行過程,是系統進行資源分配和調度的一個獨次運行過程,是系統進行資源分配和調度的一個獨立單位。立單位。2.1 2.1 進程的基本概念進程的基本概念 (1)從定義上看,進程是程序處理數據的過程,而程序是從定義上看,進程是程序處理數據的過程,而程序是一組指令的有序集合;一組指令的有序集合; (2)進程具有動態性、并發性、獨立性和異步性等,而程進程具有動態性、并發性、獨立性和異
5、步性等,而程序不具有這些特性;序不具有這些特性; (3)從進程結構特性上看,它包含程序、數據和從進程結構特性上看,它包含程序、數據和PCB; (4)進程和程序并非一一對應:進程和程序并非一一對應:通過多次執行,一個程序通過多次執行,一個程序可對應多個進程;通過調用關系,一個進程可執行多個程可對應多個進程;通過調用關系,一個進程可執行多個程序。序。 進程與程序的區進程與程序的區別別2.1 進程的基本概念進程的基本概念 就緒狀態:就緒狀態:進程分配到必要的資源,等待獲得進程分配到必要的資源,等待獲得CPUCPU執行的狀執行的狀態。態。 組織成一個或多個就緒隊列。組織成一個或多個就緒隊列。 運行狀態
6、運行狀態:進程分配到必要的資源,在進程分配到必要的資源,在CPUCPU上執行時的狀態上執行時的狀態 阻塞狀態(等待狀態)阻塞狀態(等待狀態):正在執行的進程由于發生某事正在執行的進程由于發生某事件而暫時無法繼續執行時,便放棄處理機而處于暫停狀態。件而暫時無法繼續執行時,便放棄處理機而處于暫停狀態。組織成一個或多個阻塞隊列。組織成一個或多個阻塞隊列。5. 進程的狀態進程的狀態 (1)三種基本狀態三種基本狀態進程三種基本狀態的轉換進程三種基本狀態的轉換運行運行就緒就緒阻塞阻塞等待事件等待事件 (系統服務請求,系統服務請求,如請求如請求I/O) 被調度或分派被調度或分派 時間片時間片用完用完 事件發
7、生事件發生進程三種基本狀態的轉換:進程三種基本狀態的轉換:思考問題:思考問題:1.在進程狀態轉換時,下列哪一種狀態轉換是不可能發生的?在進程狀態轉換時,下列哪一種狀態轉換是不可能發生的? A)就緒態就緒態運行態運行態 B)運行態運行態就緒態就緒態 C)運行態運行態等待態等待態 D)阻塞態阻塞態運行態運行態 答案:答案:D2某進程在運行過程中需要等待從磁盤上讀入數據,此時該進某進程在運行過程中需要等待從磁盤上讀入數據,此時該進程的狀態將(程的狀態將( )。)。 A.從就緒變為運行從就緒變為運行 B.從運行變為就緒從運行變為就緒 C.從運行變為阻塞從運行變為阻塞 D.從阻塞變為就緒從阻塞變為就緒
8、答案:答案:C2.1 進程的基本概念進程的基本概念 引人掛起狀態的原因:引人掛起狀態的原因:(1 1)操作系統的需要;()操作系統的需要;(2 2)終端用戶的需要;)終端用戶的需要;(3 3)父進程請求;)父進程請求; (4 4)負荷調節的需要;)負荷調節的需要;(5 5)對換的需要。)對換的需要。 進程狀態的轉換:進程狀態的轉換: (2)掛起狀態:掛起狀態:靜止狀靜止狀態態靜止就緒靜止就緒靜止阻塞靜止阻塞掛起掛起掛起掛起激活激活激活激活(1 1)活動就緒)活動就緒 靜止就緒靜止就緒 (2 2)活動阻塞)活動阻塞 靜止阻塞靜止阻塞(3 3)靜止就緒)靜止就緒 活動就緒活動就緒 (4 4)靜止阻
9、塞)靜止阻塞 活動阻塞活動阻塞 (5) (5) 運行狀態運行狀態 靜止就緒靜止就緒掛起掛起Linux中進程的掛起與激活:中進程的掛起與激活:#ctrl+z:掛起進程,當前進程放到后臺暫停執行:掛起進程,當前進程放到后臺暫停執行#jobs:查看被掛起的進程號查看被掛起的進程號激活進程:兩種方法:激活進程:兩種方法: fg 進程號:將掛起的進程放回到前臺執行進程號:將掛起的進程放回到前臺執行 bg 進程號:將掛起的進程放回到后臺執行進程號:將掛起的進程放回到后臺執行 具有掛起狀態的進程狀態轉換具有掛起狀態的進程狀態轉換活動就緒活動就緒運行運行活動阻塞活動阻塞靜止阻塞靜止阻塞靜止就緒靜止就緒wake
10、up (喚醒喚醒)事件發生事件發生掛起掛起suspend時間片完時間片完被調度被調度scheduler激活激活active掛起掛起suspend激活激活active掛起掛起suspend等待事件等待事件sleep事件發生事件發生wakeup (喚醒喚醒)2.1進程的基本概念進程的基本概念(3)創建狀態和終止狀態創建狀態和終止狀態(1)NULL 創建創建 (2)創建)創建 活動就緒活動就緒(3)創建)創建 靜止就緒靜止就緒(4)執行)執行 終止終止補充:進程管理功能:補充:進程管理功能:(1 1)進程控制:)進程控制:控制進程狀態轉換;(2 2)進程同步:)進程同步:進程間運行順序的協調:互斥方
11、式;互斥方式;同步方式:同步方式: (3 3)進程通信:)進程通信:進程間的信息交換直接通信;直接通信;間接通信。間接通信。 (4 4)進程調度:)進程調度:進程間競爭臨界資源進程間競爭臨界資源進程間相互合作進程間相互合作OSOS內核的內核的概念概念OS內核的功能:內核的功能: 進程進程( (線程線程) )管理;管理; 低級存儲器管理;低級存儲器管理; 中斷和陷入處理;中斷和陷入處理; “內核內核”指的是一個提供硬件抽象層、磁盤及文件系統控指的是一個提供硬件抽象層、磁盤及文件系統控制、多任務等功能的系統軟件,是一個操作系統的核心,制、多任務等功能的系統軟件,是一個操作系統的核心,常駐內存。常駐
12、內存。2.1 進程的基本概念進程的基本概念 程序:程序:描述進程要完成的功能描述進程要完成的功能 數據集合:數據集合:包含程序運行所需的數據和工包含程序運行所需的數據和工作區作區 進程控制塊(進程控制塊(PCBPCB):):包含進程的描述信息包含進程的描述信息和控制信息,是進程動態特性的反映和控制信息,是進程動態特性的反映 5.進程控制塊進程控制塊PCB程序和數據集合是進程的實體程序和數據集合是進程的實體進程控制塊是進程存在的唯一標志進程控制塊是進程存在的唯一標志進程控制塊是由進程控制塊是由OSOS維護維護的用來記錄的用來記錄進程相關進程相關信息信息的一塊內存。的一塊內存。2.1 進程的基本概
13、念進程的基本概念 進程標識符:進程標識符: 內部標識符、外部標識符內部標識符、外部標識符 處理機狀態信息:處理機狀態信息:(1 1)通用寄存器;)通用寄存器;(2 2)段寄存器;)段寄存器;(3 3)指令計數器;)指令計數器;(4 4)程序狀態字)程序狀態字(PSW)(PSW); 進程控制塊(進程控制塊(PCB)內容內容3232位位CPUCPU有有8 8個個3232位的位的通用寄存器通用寄存器EAXEAX、EBXEBX、ECXECX、EDXEDX、ESIESI、EDIEDI、EBPEBP和和ESPESP 。EAXEAX:稱為累加器,可用于乘、除、輸入:稱為累加器,可用于乘、除、輸入/ /輸出等
14、操作;輸出等操作;EBX:EBX:稱為基地址寄存器稱為基地址寄存器, , 可作為存儲器指針來使用;可作為存儲器指針來使用; ECX:ECX:稱為計數寄存器稱為計數寄存器, , 控制循環次數;控制循環次數;EDX:EDX:稱為數據寄存器稱為數據寄存器, ,在進行乘、除運算時,作為默認的操作在進行乘、除運算時,作為默認的操作數參與運算,也可用于存放數參與運算,也可用于存放I/OI/O的端口地址。的端口地址。ESIESI:變址寄存器,是內存移動和比較操作的源地址寄存器;:變址寄存器,是內存移動和比較操作的源地址寄存器;EDIEDI:變址寄存器,是內存移動和比較操作的目標地址寄存器:變址寄存器,是內存
15、移動和比較操作的目標地址寄存器EBPEBP:指針寄存器,存放堆棧幀的始址;:指針寄存器,存放堆棧幀的始址;ESP: ESP: 指針寄存器,當前堆棧棧頂位置。指針寄存器,當前堆棧棧頂位置。段寄存器是根據內存分段的管理模式而設置的。內存單元的段寄存器是根據內存分段的管理模式而設置的。內存單元的物理地址由段寄存器的值和一個偏移量組合而成。物理地址由段寄存器的值和一個偏移量組合而成。3232位位CPUCPU有有6 6個,個,1616位位CPUCPU有有4 4個個 。CSCS:代碼段寄存器,其值為代碼段的段地址;:代碼段寄存器,其值為代碼段的段地址;DSDS:數據段寄存器,其值為數據段的地址;:數據段寄
16、存器,其值為數據段的地址;ESES:附加段寄存器,其值為附加數據段的地址;:附加段寄存器,其值為附加數據段的地址;SSSS:堆棧段寄存器,其值為堆棧段的地址;:堆棧段寄存器,其值為堆棧段的地址;FSFS:附加段寄存器,其值為附加數據段的地址;:附加段寄存器,其值為附加數據段的地址;GSGS:附加段寄存器,其值為附加數據段的地址。:附加段寄存器,其值為附加數據段的地址。中斷允許位、陷入標志、中斷允許位、陷入標志、任務嵌套標志、特權標任務嵌套標志、特權標志、溢出標志、符號標志、溢出標志、符號標志、零標志、進位標志志、零標志、進位標志等等2.1 進程的基本概念進程的基本概念 進程控制信息:進程控制信
17、息:(1 1)程序和數據地址;)程序和數據地址;(2 2)進程同步和通信信息;)進程同步和通信信息;(3 3)資源清單;)資源清單;(4 4)鏈接指針)鏈接指針 進程控制塊內容進程控制塊內容 鏈接方式:鏈接方式: 索引方式索引方式 進程控制塊的組織方進程控制塊的組織方式式(1 1)就緒鏈表;)就緒鏈表;(2 2)執行進程;)執行進程;(3 3)阻塞鏈表;)阻塞鏈表;(4 4)空白鏈表。)空白鏈表。 進程調度信息:進程調度信息:(1 1)進程狀態;)進程狀態;(2 2)進程優先級;)進程優先級;(3 3)事件;)事件;(4 4)其他信息)其他信息2.2 進程控制進程控制原語原語(primitiv
18、e)(primitive): 由若干條指令構成的由若干條指令構成的“原子操作原子操作(atomic (atomic operation)”operation)”過程,完成某種特定的功能,作為一個過程,完成某種特定的功能,作為一個整體整體而而不可分割不可分割要么全都完成,要么全都不做。要么全都完成,要么全都不做。進程控制原語:進程控制原語:(1) 創建進程原語創建進程原語 (2) 終止進程原語終止進程原語 (3) 掛起進程原語掛起進程原語 (4) 激活進程原語激活進程原語(5) 阻塞進程原語阻塞進程原語 (6) 喚醒進程原語喚醒進程原語1進程圖概念:進程圖概念: 描述系統中進程的家族關系的有向圖
19、。描述系統中進程的家族關系的有向圖。(1)用戶登錄。用戶登錄。(2)作業調度。作業調度。 3. 引起創建進程的事件:引起創建進程的事件: (3) 提供服務。提供服務。 (4) 應用請求。應用請求。 4. 創建進程原語創建進程原語的工作大致描述為:的工作大致描述為: (1)申請空白申請空白PCB;(2) 為新進程分配資源;為新進程分配資源; (3) 初始化進程控制塊初始化進程控制塊PCB; (4) 將新進程插入就緒隊列。將新進程插入就緒隊列。 調用調用 alloc _task _struct()分配兩個頁面存分配兩個頁面存放放task_struct及及 系統堆棧系統堆棧調用調用get_pid()
20、獲得新建子進程獲得新建子進程PID1、調用調用copy _files()復制父進程已經打開的文件控制結構復制父進程已經打開的文件控制結構;2、調用調用copy _fs()復制父進程的根目錄復制父進程的根目錄、安裝點等安裝點等;3、調用調用copy _sighand ()復制父進程信號處理函數復制父進程信號處理函數;4、調用調用copy_mm()復制父進程用戶地址空間復制父進程用戶地址空間調用調用 copy _ thread ()復制系統堆棧復制系統堆棧調用調用wake_ up_ process() 將子進將子進程插入可運行進程隊列程插入可運行進程隊列3. 終止進程原語終止進程原語1)正常結束正
21、常結束2) 異常結束異常結束3) 外界干預外界干預 引起進程終止的事件:引起進程終止的事件: OSOS父進程終止父進程終止父進程請求父進程請求(1)根據被終止進程的標識符,從)根據被終止進程的標識符,從PCB集合中集合中檢索出該進程的檢索出該進程的PCB,獲得該進程的狀態,獲得該進程的狀態(2)若被終止進程正處于執行狀態,應立即終)若被終止進程正處于執行狀態,應立即終止該進程的執行,并置調度標志為真。止該進程的執行,并置調度標志為真。(3)若該進程還有子孫進程,終止其所有子孫)若該進程還有子孫進程,終止其所有子孫進程。進程。(4)回收資源)回收資源(5)回收)回收PCB 進程終止的過程:進程終止的過程: 1)請求系統服務請求系統服務 2) 啟動某種操作啟動某種操作 3) 新數據尚未到達新數據尚未到達4) 無新工作可做:服務進程無新工作可做:服務進程4. 阻塞與喚醒原語阻塞與喚醒原語 引起進程阻塞與喚醒的事件:引起進程阻塞與喚醒的事件: 1)停止當前進程執行,并修改進程狀態:停止當前進程執行,并修改進程狀態: 由由“執行執行”改為改為“阻塞阻塞”;2) 將將PCB插入插入阻塞阻塞隊列;隊列; 3) 轉轉調度程序重新進行調度。調度程序重新進行調度。 進程阻塞過程:進程阻塞過程: 1) 把被阻塞的進程從等待該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《康復護理普及課程》課件
- 線組長管理心得報告
- 《氣象信息分析》課件
- 《急性扁桃體炎》課件
- 《腦出血教學查房》課件
- 通蘇嘉甬鐵路嘉興經開段管線遷改工程-500千伏汾翔5829線-汾云5830線遷改工程報告書
- 安全紅綠燈系統設計與應用
- 《航天爐工藝介紹》課件
- 員工崗位體系管理辦法
- 企業社保管理體系構建與實施
- 《孝經》教學課件
- Copley驅動器用戶指南
- 生物有機肥生產技術可行性分析報告
- 供水管網巡查管理制度
- 工程設計資質專業人員專業對照表
- 胸痛中心培訓課件胸痛中心的時鐘統一及時間管理胸痛中心時間節點管理要求
- 中醫外科學皮膚及性傳播疾病課件
- 《風扇及其系統設計》
- 孕期艾滋病檢測及服務流程
- 明渠均勻流計算公式
- 校園超市經營投標方案(完整技術標)
評論
0/150
提交評論