《計算機操作系統(tǒng) 》課件-3.2進程的概念_第1頁
《計算機操作系統(tǒng) 》課件-3.2進程的概念_第2頁
《計算機操作系統(tǒng) 》課件-3.2進程的概念_第3頁
《計算機操作系統(tǒng) 》課件-3.2進程的概念_第4頁
《計算機操作系統(tǒng) 》課件-3.2進程的概念_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

進程定義和特征

進程狀態(tài)及轉(zhuǎn)換進程控制塊PCBLinux進程狀態(tài)解析3.2進程概念3.2進程概念3.2.1進程的定義及特征1.簡單定義:一個程序的一次運行過程。2.特征:動態(tài)性:進程最基本的特征并發(fā)性:程序在建立進程后并發(fā)運行獨立性:是系統(tǒng)進行資源分配和調(diào)度的獨立單位

異步性:進程以不可預(yù)知的速度向前推進定義:可并發(fā)執(zhí)行的程序在一個數(shù)據(jù)集合上的一次運行過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。3.2進程概念3.進程映像:進程實體的組成321相關(guān)數(shù)據(jù)集(變量、工作空間,緩沖區(qū)等)棧:內(nèi)核棧/用戶??蓤?zhí)行的程序(段)進程結(jié)構(gòu)特征3.2.1進程的定義及特征4PCB3.2進程概念從定義上看,進程是程序處理數(shù)據(jù)的過程,而程序是一組指令的有序集合;進程具有動態(tài)性、并發(fā)性、獨立性和異步性等,而程序不具有這些特性;從進程結(jié)構(gòu)特性上看,它包含程序、數(shù)據(jù)(棧)和PCB;進程和程序并非一一對應(yīng):通過多次執(zhí)行,一個程序可對應(yīng)多個進程;通過調(diào)用關(guān)系,一個進程可執(zhí)行多個程序。4.進程與程序的區(qū)別3.2.1進程的定義及特征一個廚師照著一份菜譜做菜18例:討論2個程序在不同操作系統(tǒng)環(huán)境中的運行情況

程序A:打印工資報表的程序;

程序B:計算1000以內(nèi)所有素數(shù)并依次顯示計算結(jié)果。3.2進程概念(1)在不支持多進程的操作系統(tǒng)下運行:順序執(zhí)行A、B

可以看到,先是打印機不停地打印工資報表,打完后,接著運行程序B,不停地計算,最后顯示所計算的結(jié)果。(2)在支持多進程的操作系統(tǒng)下運行建立進程A、B;對應(yīng)的程序分別是程序A、B;進程A是I/O量較大的進程,進程B是計算量較大的進程,在系統(tǒng)進程調(diào)度的控制下,兩個進程并發(fā)執(zhí)行。可以看到打印機不斷打印工資報表;而處理機不停地計算,并依次在屏幕上顯示計算結(jié)果。16討論3個排序程序在不同操作系統(tǒng)環(huán)境中的運行情況

程序A:冒泡排序算法,在屏幕的左1/3處開設(shè)窗口顯示其排序過程;

程序B:堆排序算法,在屏幕的中1/3處開設(shè)窗口顯示其排序過程;

程序C:快速排序算法,在屏幕的右1/3處開設(shè)窗口顯示其排序過程。思考題:3.2進程概念(1)在不支持多進程的操作系統(tǒng)下順序運行A、B、C(2)在支持多進程的操作系統(tǒng)下并發(fā)運行A、B、C3.2進程概念就緒狀態(tài):

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

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

正在執(zhí)行的進程由于等待某事件的發(fā)生而暫時無法繼續(xù)執(zhí)行時,便放棄處理機而處于暫停狀態(tài)。組織成一個或多個阻塞隊列。3.2.2進程狀態(tài)及轉(zhuǎn)換1.

三種基本狀態(tài)運行態(tài)就緒態(tài)阻塞態(tài)等待事件

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

被調(diào)度或分派

時間片用完

事件發(fā)生3.2進程概念3.2.2

進程狀態(tài)及轉(zhuǎn)換2.三種基本狀態(tài)轉(zhuǎn)換圖3.2進程概念3.2.2

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

被調(diào)度或分派

時間片用完

事件發(fā)生創(chuàng)建態(tài)

創(chuàng)建完成終止態(tài)終止思考問題:1.在進程狀態(tài)轉(zhuǎn)換時,下列哪一種狀態(tài)轉(zhuǎn)換是不可能發(fā)生的?

A)就緒態(tài)→運行態(tài)B)運行態(tài)→就緒態(tài)

C)運行態(tài)→等待態(tài)D)阻塞態(tài)→運行態(tài)2.某進程在運行過程中需要等待從磁盤上讀入數(shù)據(jù),此時該進程的狀態(tài)將()。

A.從就緒變?yōu)檫\行B.從運行變?yōu)榫途w

C.從運行變?yōu)樽枞鸇.從阻塞變?yōu)榫途w3.2進程概念3.2.2

進程狀態(tài)及轉(zhuǎn)換思考問題:3.若一個用戶進程通過read系統(tǒng)調(diào)用讀取一個磁盤文件中的數(shù)據(jù),則下列關(guān)于此過程的描述中,正確的有哪些?(

)A.若該文件的數(shù)據(jù)不在內(nèi)存中,則該進程進入睡眠等待狀態(tài)B.請求read系統(tǒng)調(diào)用會導(dǎo)致CPU從用戶態(tài)切換到核心態(tài)C.Read系統(tǒng)調(diào)用的參數(shù)應(yīng)包含文件的名稱D.read系統(tǒng)調(diào)用結(jié)束后會重新讓該進程進入就緒狀態(tài)或運行狀態(tài)3.2.2

進程狀態(tài)及轉(zhuǎn)換3.2.2

進程狀態(tài)及轉(zhuǎn)換課堂分組討論:對下列狀態(tài)轉(zhuǎn)換圖,回答后面的問題。

運行1234

阻塞

就緒(1)變遷1的發(fā)生是否會引起變遷3的發(fā)生?需要什么條件?(2)變遷4的發(fā)生是否會引起變遷3的發(fā)生?需要什么條件?(3)為支持上圖中進程的狀態(tài)變遷,系統(tǒng)應(yīng)提供哪些進程控制原語?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)致命信號的不可中斷睡眠態(tài)EXIT_ZOMBIE僵尸態(tài)EXIT_DEAD終止態(tài)3.2.3Linux進程狀態(tài)解析1.Linux進程狀態(tài)設(shè)置2.6.24

進程正在被CPU執(zhí)行,或者已經(jīng)準備就緒,隨時可以執(zhí)行處于等待中的進程,待等待條件為真時被喚醒,也可以被信號或者中斷喚醒。處于等待中的進程,待資源有效時喚醒,但不可以由其它進程通過信號(signal)或中斷喚醒進程暫停執(zhí)行。當(dāng)接收到SIGSTOP等信號時,進程進入該狀態(tài),接收到SIGCONT信號后,進程重新回到TASK_RUNNING。表示進程的執(zhí)行被終止,很快將從系統(tǒng)消失的狀態(tài)。表示進程的最終狀態(tài)。父進程已經(jīng)使用wait4()或waitpid()系統(tǒng)調(diào)用來收集了信息,因此進程將由系統(tǒng)刪除。3.2進程概念進程被調(diào)試器暫停下來,等待跟蹤進程進行相關(guān)處理。進程已經(jīng)終止,且不需要父進程收集其信息,很快將被銷毀。與TASK_UNINTERRUPTBLE類似,但是可響應(yīng)致命信號stateexit_state3.2.3Linux進程狀態(tài)解析2.Linux進程狀態(tài)轉(zhuǎn)換

201、進程的組成程序PCB①程序、數(shù)據(jù)

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

②棧

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

進程控制塊PCB

(processcontrolblock)數(shù)據(jù)棧3.2進程概念3.2.4進程控制塊(PCB)2.進程控制塊的內(nèi)容進程標識信息:進程標識符:PID用戶標識符家族關(guān)系

進程調(diào)度信息:進程狀態(tài);進程優(yōu)先級;進程的時間片;等待事件;其他調(diào)度相關(guān)信息進程標識信息進程調(diào)度信息進程現(xiàn)場信息進程控制信息3.2進程概念3.2.4進程控制塊(PCB)2

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

進程現(xiàn)場信息:通用寄存器內(nèi)容;段寄存器內(nèi)容;指令計數(shù)器的值;程序狀態(tài)字(PSW);棧指針中斷允許位、陷入標志、任務(wù)嵌套標志、特權(quán)標志、溢出標志、符號標志、零標志、進位標志等32位CPU有8個32位的通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP

。EAX:稱為累加器,可用于乘、除、輸入/輸出等操作;EBX:稱為基地址寄存器,可作為存儲器指針來使用;ECX:稱為計數(shù)寄存器,控制循環(huán)次數(shù);EDX:稱為數(shù)據(jù)寄存器,在進行乘、除運算時,作為默認的操作數(shù)參與運算,也可用于存放I/O的端口地址。ESI:變址寄存器,是內(nèi)存移動和比較操作的源地址寄存器;EDI:變址寄存器,是內(nèi)存移動和比較操作的目標地址寄存器EBP:指針寄存器,存放堆棧幀的始址;ESP:指針寄存器,當(dāng)前堆棧棧頂位置。段寄存器是根據(jù)內(nèi)存分段的管理模式而設(shè)置的。內(nèi)存單元的物理地址由段寄存器的值和一個偏移量組合而成。32位CPU有6個,16位CPU有4個

。CS:代碼段寄存器,其值為代碼段的段地址;DS:數(shù)據(jù)段寄存器,其值為數(shù)據(jù)段的地址;ES:附加段寄存器,其值為附加數(shù)據(jù)段的地址;SS:堆棧段寄存器,其值為堆棧段的地址;FS:附加段寄存器,其值為附加數(shù)據(jù)段的地址;GS:附加段寄存器,其值為附加數(shù)據(jù)段的地址。

3.2進程概念

進程控制信息:

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

進程同步信息進程通信信息;

資源管理信息;

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論