計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程的概念_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程的概念_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程的概念_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程的概念_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程的概念_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

進(jìn)程概念進(jìn)程定義和特征進(jìn)程狀態(tài)及轉(zhuǎn)換進(jìn)程控制塊PCBLinux進(jìn)程狀態(tài)解析彈幕給出問(wèn)題課前學(xué)習(xí)中不理解的問(wèn)題希望老師重點(diǎn)講解的內(nèi)容3.2進(jìn)程概念分析進(jìn)程的定義(講授)分析總結(jié)進(jìn)程的特征分析說(shuō)明進(jìn)程映像包含哪些內(nèi)容?分析進(jìn)程與程序的區(qū)別與聯(lián)系?分析說(shuō)明進(jìn)程三種基本狀態(tài)的概念及轉(zhuǎn)換情況創(chuàng)建態(tài)和終止態(tài)的含義及轉(zhuǎn)換情況Linux/openEuler系統(tǒng)中進(jìn)程狀態(tài)設(shè)置(講授)進(jìn)程控制塊PCB的內(nèi)容(逐步討論)3.2進(jìn)程概念3.2.1進(jìn)程的定義及特征1.簡(jiǎn)單定義:一個(gè)程序的一次運(yùn)行過(guò)程。2.特征:動(dòng)態(tài)性:進(jìn)程最基本的特征并發(fā)性:程序在建立進(jìn)程后并發(fā)運(yùn)行獨(dú)立性:是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨(dú)立單位

異步性:進(jìn)程以不可預(yù)知的速度向前推進(jìn)定義:可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合上的一次運(yùn)行過(guò)程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。3.2進(jìn)程概念兩個(gè)廚師照著一份菜譜做菜菜譜材料煤氣灶鍋碗瓢盆3.2進(jìn)程概念3.進(jìn)程映像:進(jìn)程實(shí)體的組成321相關(guān)數(shù)據(jù)集(變量、工作空間,緩沖區(qū)等)棧:內(nèi)核棧/用戶棧可執(zhí)行的程序(段)進(jìn)程結(jié)構(gòu)特征3.2.1進(jìn)程的定義及特征4PCB擴(kuò)展閱讀:函數(shù)調(diào)用過(guò)程中棧到底是怎么壓入和彈出的?/question/22444939問(wèn)題:程序執(zhí)行過(guò)程中棧的作用是什么?PCB是進(jìn)程存在的唯一標(biāo)識(shí)哪個(gè)小組來(lái)分析一下進(jìn)程實(shí)體的組成部分?Shell>gcc–S–otest.stest.c3.2進(jìn)程概念從定義上看,進(jìn)程是程序處理數(shù)據(jù)的過(guò)程,而程序是一組指令的有序集合;進(jìn)程具有動(dòng)態(tài)性、并發(fā)性、獨(dú)立性和異步性等,而程序不具有這些特性;從進(jìn)程結(jié)構(gòu)特性上看,它包含程序、數(shù)據(jù)(棧)和PCB;進(jìn)程和程序并非一一對(duì)應(yīng):通過(guò)多次執(zhí)行,一個(gè)程序可對(duì)應(yīng)多個(gè)進(jìn)程;通過(guò)調(diào)用關(guān)系,一個(gè)進(jìn)程可執(zhí)行多個(gè)程序。4.進(jìn)程與程序的區(qū)別與聯(lián)系3.2.1進(jìn)程的定義及特征18思考題:討論2個(gè)程序在不同操作系統(tǒng)環(huán)境中的運(yùn)行情況

程序A:打印工資報(bào)表的程序;程序B:計(jì)算1000以內(nèi)所有素?cái)?shù)并依次顯示計(jì)算結(jié)果。3.2進(jìn)程概念(1)在不支持多進(jìn)程的操作系統(tǒng)下運(yùn)行:順序執(zhí)行A、B,你看到的處理過(guò)程是怎樣的?(2)在支持多進(jìn)程的操作系統(tǒng)下運(yùn)行,你看到的處理過(guò)程是怎樣的?進(jìn)程和程序的一個(gè)本質(zhì)區(qū)別是()前者分時(shí)使用CPU,后者獨(dú)占CPU前者存儲(chǔ)在內(nèi)存,后者存儲(chǔ)在外存前者在一個(gè)文件中,后者在多個(gè)文件中前者為動(dòng)態(tài)的,后者為靜態(tài)的ABCD提交單選題10分并發(fā)進(jìn)程執(zhí)行的相對(duì)速度是()由進(jìn)程的程序結(jié)構(gòu)決定的由進(jìn)程自己來(lái)控制的與進(jìn)程調(diào)度策略有關(guān)的在進(jìn)程被創(chuàng)建時(shí)確定的ABCD提交單選題10分3.2進(jìn)程概念就緒狀態(tài):

進(jìn)程分配到必要的資源,等待獲得CPU執(zhí)行的狀態(tài)。組織成一個(gè)或多個(gè)就緒隊(duì)列。運(yùn)行狀態(tài):

進(jìn)程已經(jīng)分配到CPU,正在CPU上執(zhí)行時(shí)的狀態(tài)阻塞狀態(tài)(等待狀態(tài)、睡眠狀態(tài)):

正在執(zhí)行的進(jìn)程由于等待某事件的發(fā)生而暫時(shí)無(wú)法繼續(xù)執(zhí)行時(shí),便放棄處理機(jī)而處于暫停狀態(tài)。組織成一個(gè)或多個(gè)阻塞隊(duì)列。3.2.2進(jìn)程狀態(tài)及轉(zhuǎn)換1.三種基本狀態(tài)及轉(zhuǎn)換進(jìn)程有哪三種基本狀態(tài)?各自的含義是什么?運(yùn)行態(tài)就緒態(tài)阻塞態(tài)等待事件

(系統(tǒng)服務(wù)請(qǐng)求,如請(qǐng)求I/O)

被調(diào)度或分派時(shí)間片用完事件發(fā)生3.2進(jìn)程概念3.2.2

進(jìn)程狀態(tài)及轉(zhuǎn)換1.三種基本狀態(tài)及轉(zhuǎn)換問(wèn)題:正在運(yùn)行的進(jìn)程當(dāng)時(shí)間片用完了會(huì)轉(zhuǎn)變成什么狀態(tài)呢?問(wèn)題:正在運(yùn)行的進(jìn)程需要等待某個(gè)事件的發(fā)生,如I/O操作的完成,會(huì)轉(zhuǎn)變成什么狀態(tài)呢?問(wèn)題:處于等待狀態(tài)的進(jìn)程,當(dāng)所等待的事件已經(jīng)發(fā)生時(shí),會(huì)轉(zhuǎn)變成什么狀態(tài)呢?問(wèn)題:處于等待狀態(tài)的進(jìn)程,當(dāng)所等待的事件已經(jīng)發(fā)生時(shí),能否直接轉(zhuǎn)變成運(yùn)行態(tài)呢?進(jìn)程三種基本狀態(tài)是如何轉(zhuǎn)換的?3.2進(jìn)程概念3.2.2

進(jìn)程狀態(tài)及轉(zhuǎn)換3.創(chuàng)建狀態(tài)和終止?fàn)顟B(tài)運(yùn)行態(tài)就緒態(tài)阻塞態(tài)等待事件

被調(diào)度或分派時(shí)間片用完事件發(fā)生創(chuàng)建態(tài)創(chuàng)建完成終止態(tài)終止問(wèn)題:創(chuàng)建狀態(tài)和終止?fàn)顟B(tài)的含義?引入后會(huì)增加哪些狀態(tài)轉(zhuǎn)換?TASK_RUNNING 可執(zhí)行狀態(tài)TASK_INTERRUPTIBLE 可中斷睡眠狀態(tài)TASK_UNINTERRUPTIBLE 不可中斷睡眠狀態(tài)TASK_STOPPED 暫停狀態(tài)TASK_TRACED跟蹤狀態(tài)TASK_DEAD

終止態(tài)TASK_WAKEKILL可響應(yīng)致命信號(hào)的不可中斷睡眠態(tài)EXIT_ZOMBIE僵尸態(tài)EXIT_DEAD終止態(tài)

3.2.3Linux/openEuler進(jìn)程狀態(tài)解析1.進(jìn)程狀態(tài)設(shè)置2.6.24

3.2進(jìn)程概念stateexit_state更多狀態(tài)查看:task_struct結(jié)構(gòu):/include/linux/sched.h3.2.3Linux/openEuler系統(tǒng)進(jìn)程狀態(tài)解析2.Linux/openEuler進(jìn)程狀態(tài)轉(zhuǎn)換

在進(jìn)程狀態(tài)轉(zhuǎn)換時(shí),下列哪一種狀態(tài)轉(zhuǎn)換是不可能發(fā)生的?就緒態(tài)→運(yùn)行態(tài)運(yùn)行態(tài)→就緒態(tài)運(yùn)行態(tài)→等待態(tài)阻塞態(tài)→運(yùn)行態(tài)ABCD提交單選題10分某進(jìn)程在運(yùn)行過(guò)程中需要等待從磁盤上讀入數(shù)據(jù),此時(shí)該進(jìn)程的狀態(tài)將()。從就緒變?yōu)檫\(yùn)行從運(yùn)行變?yōu)榫途w從運(yùn)行變?yōu)樽枞麖淖枞優(yōu)榫途wABCD提交單選題10分3.2.2

進(jìn)程狀態(tài)及轉(zhuǎn)換思考題:對(duì)下列狀態(tài)轉(zhuǎn)換圖,回答后面的問(wèn)題。

運(yùn)行1234

阻塞

就緒(1)狀態(tài)轉(zhuǎn)換1的發(fā)生是否會(huì)引起狀態(tài)轉(zhuǎn)換3的發(fā)生?需要什么條件?(2)狀態(tài)轉(zhuǎn)換4的發(fā)生是否會(huì)引起狀態(tài)轉(zhuǎn)換3的發(fā)生?需要什么條件?1、進(jìn)程的組成①程序、數(shù)據(jù)

描述進(jìn)程本身應(yīng)完成的功能

②棧

過(guò)程調(diào)用相關(guān)信息:返址、參數(shù)傳遞、局部變量等③PCB進(jìn)程存在的唯一標(biāo)識(shí)記錄進(jìn)程的動(dòng)態(tài)特征、與其他進(jìn)程和系統(tǒng)資源的關(guān)系。3.2進(jìn)程概念3.2.4

進(jìn)程控制塊PCB

(processcontrolblock)程序數(shù)據(jù)PCB棧3.2進(jìn)程概念3.2.4進(jìn)程控制塊(PCB)2.進(jìn)程控制塊的內(nèi)容

進(jìn)程標(biāo)識(shí)信息:進(jìn)程標(biāo)識(shí)符:PID用戶標(biāo)識(shí)符家族關(guān)系

進(jìn)程調(diào)度信息:進(jìn)程狀態(tài);進(jìn)程優(yōu)先級(jí);進(jìn)程的時(shí)間片;等待事件;其他調(diào)度相關(guān)信息進(jìn)程標(biāo)識(shí)信息進(jìn)程調(diào)度信息進(jìn)程現(xiàn)場(chǎng)信息進(jìn)程控制信息openEuler系統(tǒng):task_structkernel/include/linux/

sched.h3.2進(jìn)程概念3.2.4進(jìn)程控制塊(PCB)2

.進(jìn)程控制塊的內(nèi)容

進(jìn)程現(xiàn)場(chǎng)信息:通用寄存器內(nèi)容PCB中會(huì)存放哪些現(xiàn)場(chǎng)信息?32位CPU有8個(gè)32位的通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP

。EAX:稱為累加器,可用于乘、除、輸入/輸出等操作;EBX:稱為基地址寄存器,可作為存儲(chǔ)器指針來(lái)使用;ECX:稱為計(jì)數(shù)寄存器,控制循環(huán)次數(shù);EDX:稱為數(shù)據(jù)寄存器,在進(jìn)行乘、除運(yùn)算時(shí),作為默認(rèn)的操作數(shù)參與運(yùn)算,也可用于存放I/O的端口地址。ESI:變址寄存器,是內(nèi)存移動(dòng)和比較操作的源地址寄存器;EDI:變址寄存器,是內(nèi)存移動(dòng)和比較操作的目標(biāo)地址寄存器EBP:指針寄存器,存放堆棧幀的始址;ESP:指針寄存器,當(dāng)前堆棧棧頂位置。3.2進(jìn)程概念3.2.4進(jìn)程控制塊(PCB)2

.進(jìn)程控制塊的內(nèi)容

進(jìn)程現(xiàn)場(chǎng)信息:通用寄存器內(nèi)容段寄存器內(nèi)容段寄存器是根據(jù)內(nèi)存分段的管理模式而設(shè)置的。內(nèi)存單元的物理地址由段寄存器的值和一個(gè)偏移量組合而成。32位CPU有6個(gè),16位CPU有4個(gè)

。CS:代碼段寄存器,其值為代碼段的段地址;DS:數(shù)據(jù)段寄存器,其值為數(shù)據(jù)段的地址;ES:附加段寄存器,其值為附加數(shù)據(jù)段的地址;SS:堆棧段寄存器,其值為堆棧段的地址;FS:附加段寄存器,其值為附加數(shù)據(jù)段的地址;GS:附加段寄存器,其值為附加數(shù)據(jù)段的地址。10movr1,[500]0500599100程序地址空間movr1,[500]01000150010256k-115991100內(nèi)存空間3.2進(jìn)程概念3.2.4進(jìn)程控制塊(PCB)2

.進(jìn)程控制塊的內(nèi)容

進(jìn)程現(xiàn)場(chǎng)信息:通用寄存器內(nèi)容段寄存器內(nèi)容指令計(jì)數(shù)器的值movr1,[500]01000150010256k-115991100內(nèi)存空間10movr1,[500]0500599100程序地址空間CS:IP段內(nèi)偏移量段始址3.2進(jìn)程概念3.2.4進(jìn)程控制塊(PCB)2

.進(jìn)程控制塊的內(nèi)容

進(jìn)程現(xiàn)場(chǎng)信息:通用寄存器內(nèi)容段寄存器內(nèi)容指令計(jì)數(shù)器的值程序狀態(tài)字(PSW)棧指針中斷允許位、陷入標(biāo)志、任務(wù)嵌套標(biāo)志、特權(quán)標(biāo)志、溢出標(biāo)志、符號(hào)標(biāo)志、零標(biāo)志、進(jìn)位標(biāo)志等openEuler系統(tǒng):kernel/arch/arm64/include/asm/

processor.h棧幀寄存器3.2進(jìn)程概念

進(jìn)程控制信息:

程序和數(shù)據(jù)地址;

進(jìn)程同步信息進(jìn)程通信信息;

資源管理信息;

鏈接指針3.2.4進(jìn)程控制塊2.進(jìn)程控制塊內(nèi)容PCB中會(huì)存放哪些進(jìn)程控制信息?3.進(jìn)程控制塊的組織方式:鏈表、樹(shù)3.2.4進(jìn)程控制塊3.進(jìn)程控制塊的組織方式:鏈表、樹(shù)

就緒隊(duì)列

執(zhí)行進(jìn)程

阻塞隊(duì)列

空白PCB隊(duì)列ready_q_star

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論