資源描述:
《進(jìn)程的描述和控制》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第二章進(jìn)程的描述和控制2.1前趨圖和程序執(zhí)行2.2進(jìn)程的描述#includemain(){floata,b,c;scanf(“%f,%f”,&a,&b);c=a+b;printf(“%f+%f=%f”,a,b,c);}//輸入I//計(jì)算C//輸出PICP2.1前趨圖和程序執(zhí)行程序順序執(zhí)行順序性封閉性可再現(xiàn)性前趨圖1.直接前趨2.直接后繼;3.初始結(jié)點(diǎn);4.終止結(jié)點(diǎn)案例:觀察者/報(bào)告者觀察者:報(bào)告者:beginbeginrepeatrepeatwaitacargothroughdelayat
2、imeN=N+1;printN;N=0;untiluntilEndend初始N=n時(shí)不同執(zhí)行序列:N=N+1;printN;printN;PrintN;N=0;N=N+1;N=0;N=N+1;N=0;結(jié)果各不相同:打印n+1,N=0;打印n,N=1打印n,N=0;程序的并發(fā)執(zhí)行相比單道程序的順序執(zhí)行,程序的并發(fā)執(zhí)行具有幾個(gè)明顯的特征:間斷性(資源共享)失去封閉性(資源共享)不可再現(xiàn)性(循環(huán)程序訪問共享單元)2.2進(jìn)程的描述進(jìn)程的概念進(jìn)程是程序的一次執(zhí)行;進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時(shí)所發(fā)生的活動(dòng)
3、;進(jìn)程是可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行過程;進(jìn)程是具有獨(dú)立功能的程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行過程,它是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位;進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。進(jìn)程、程序的區(qū)別和聯(lián)系1)動(dòng)態(tài)性。進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過程,因此動(dòng)態(tài)性是進(jìn)程的最基本特征。它還表現(xiàn)為有生命周期的,即由創(chuàng)建而產(chǎn)生,有調(diào)度而執(zhí)行,由撤消而消亡。而程序只是一組有序指令的集合,是靜態(tài)的。2)并發(fā)性。指多個(gè)進(jìn)程能在一段時(shí)間內(nèi)同時(shí)運(yùn)行,并發(fā)性是進(jìn)程的重要特性。引入進(jìn)程的目的也正是為了使
4、其程序能和其它進(jìn)程的程序并發(fā)執(zhí)行。3)獨(dú)立性。指進(jìn)程是一個(gè)能獨(dú)立運(yùn)行、獨(dú)立分配資源和獨(dú)立調(diào)度的基本單位,凡未建立進(jìn)程的程序,都不能作為一個(gè)獨(dú)立的單位參加運(yùn)行。4)異步性。指進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn),即按異步的方式運(yùn)行。進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換進(jìn)程在其生命期內(nèi)被劃分為三種基本狀態(tài):就緒狀態(tài)、執(zhí)行狀態(tài)、阻塞狀態(tài)。就緒狀態(tài)(Ready)剛被創(chuàng)建;或等待事件發(fā)生被喚醒。執(zhí)行狀態(tài)(Running):獲得處理機(jī)的使用權(quán)。阻塞狀態(tài)(Blocked):等待某個(gè)事件的發(fā)生。運(yùn)行態(tài)阻塞態(tài)就緒態(tài)進(jìn)程就緒,可以運(yùn)行狀
5、態(tài)轉(zhuǎn)換:進(jìn)程等待外部事件,阻塞OS決定由哪個(gè)進(jìn)程占用CPU,進(jìn)程調(diào)度進(jìn)程的三種基本狀態(tài)進(jìn)程的五狀態(tài)圖活動(dòng)就緒執(zhí)行活動(dòng)阻塞靜止阻塞靜止就緒wakeup(喚醒)事件發(fā)生掛起suspend時(shí)間片完被調(diào)度schoduler解掛active掛起suspend解掛active掛起suspend等待事件sleep事件發(fā)生wakeup(喚醒)進(jìn)程的七狀態(tài)圖在單處理機(jī)計(jì)算機(jī)系統(tǒng)中,如果有n個(gè)進(jìn)程,運(yùn)行狀態(tài)的進(jìn)程最多幾個(gè)?最少幾個(gè)?等待狀態(tài)的進(jìn)程最多幾個(gè)?最少幾個(gè)?就緒狀態(tài)的進(jìn)程最多幾個(gè)?最少幾個(gè)?進(jìn)程管理中的數(shù)據(jù)結(jié)構(gòu)內(nèi)存設(shè)備
6、文件進(jìn)程內(nèi)存表設(shè)備表文件表進(jìn)程1進(jìn)程2進(jìn)程3...進(jìn)程n進(jìn)程實(shí)體及其所用資源列表進(jìn)程1...進(jìn)程實(shí)體及其所用資源列表進(jìn)程n進(jìn)程控制塊的作用進(jìn)程實(shí)體:進(jìn)程控制塊PCB(ProcessControlBlock)程序段用戶數(shù)據(jù)作用:作為獨(dú)立運(yùn)行基本單位的標(biāo)志能實(shí)現(xiàn)間斷性運(yùn)行方式提供進(jìn)程管理所需信息提供進(jìn)程調(diào)度所需信息實(shí)現(xiàn)和其它進(jìn)程的同步和通信進(jìn)程控制塊中的信息1)進(jìn)程標(biāo)識(shí)信息進(jìn)程的標(biāo)識(shí)號(hào)(processID,PID),唯一、父進(jìn)程ID、用戶ID2)處理機(jī)狀態(tài)CPU寄存器、用戶可見寄存器、控制和狀態(tài)寄存器、程序計(jì)數(shù)
7、器狀態(tài)信息:中斷允許/禁止標(biāo)志、執(zhí)行模式等3)進(jìn)程調(diào)度信息進(jìn)程狀態(tài)、優(yōu)先級(jí)、事件數(shù)據(jù)結(jié)構(gòu):隊(duì)列等進(jìn)程間通信4)進(jìn)程控制信息程序和數(shù)據(jù)地址、進(jìn)程同步和通信機(jī)制、內(nèi)存管理信息、計(jì)帳信息、I/O狀態(tài)信息進(jìn)程控制塊的組織方式系統(tǒng)感知進(jìn)程的唯一實(shí)體、常駐內(nèi)存進(jìn)程控制塊的組織方式有以下三種:線性方式:線性表鏈接方式:隊(duì)列,按照進(jìn)程狀態(tài)分類索引方式:索引表執(zhí)行指針就緒隊(duì)列指針阻塞隊(duì)列指針空閑隊(duì)列指針PCB14PCB23PCB30PCB48PCB5PCB67PCB79PCB80PCB91鏈接PCB1PCB2PCB3PCB4
8、PCB5PCB6PCB7執(zhí)行指針就緒表指針阻塞表指針?biāo)饕伎碱}假設(shè)在時(shí)間5時(shí),系統(tǒng)資源只有處理器和內(nèi)存被使用.考慮如下事件:時(shí)間5:P1執(zhí)行對(duì)磁盤單元3讀操作時(shí)間15:P5的時(shí)間片結(jié)束時(shí)間18:P7執(zhí)行對(duì)磁盤單元3寫操作時(shí)間20:P3執(zhí)行對(duì)磁盤單元2讀操作時(shí)間24:P5執(zhí)行對(duì)磁盤單元3寫操作時(shí)間28:P5被換出時(shí)間33:P3讀磁盤單元2操作完成,產(chǎn)生中斷時(shí)間36:P1讀磁盤單元3操作完成,產(chǎn)生中斷時(shí)間38:P8結(jié)