進(jìn)程描述與控制_第1頁(yè)
進(jìn)程描述與控制_第2頁(yè)
進(jìn)程描述與控制_第3頁(yè)
進(jìn)程描述與控制_第4頁(yè)
進(jìn)程描述與控制_第5頁(yè)
已閱讀5頁(yè),還剩132頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

進(jìn)程描述和控制Chapter3本章主要內(nèi)容進(jìn)程狀態(tài)兩狀態(tài)模型五狀態(tài)模型七狀態(tài)模型進(jìn)程描述進(jìn)程控制UNIXSVR4進(jìn)程管理程序的順序執(zhí)行1.基本概念程序:一個(gè)在時(shí)間上按嚴(yán)格次序、順序執(zhí)行的操作序列。程序的順序執(zhí)行:一個(gè)具有獨(dú)立功能的程序獨(dú)占處理機(jī),直至得到最終結(jié)果的過(guò)程。操作:數(shù)據(jù)處理的一種規(guī)則,一經(jīng)啟動(dòng)就需要在有限時(shí)間內(nèi)完成。計(jì)算:若干操作嚴(yán)格順序執(zhí)行的集合。程序的順序執(zhí)行的例子程序的順序執(zhí)行的特征順序性:一個(gè)程序的各個(gè)部分的執(zhí)行,嚴(yán)格地按照某種先后次序執(zhí)行;封閉性:程序在封閉的環(huán)境下運(yùn)行,即程序運(yùn)行時(shí)獨(dú)占全部系統(tǒng)資源;

可再現(xiàn)性:只要程序執(zhí)行時(shí)的環(huán)境和初始條件相同,當(dāng)程序重復(fù)執(zhí)行時(shí),不論它是從頭到尾不停頓地執(zhí)行,還是“停停走走”地執(zhí)行,都將獲得相同的結(jié)果。程序順序執(zhí)行的特性,為程序員檢測(cè)和校正程序的錯(cuò)誤帶來(lái)很大方便。

程序的并發(fā)執(zhí)行使一個(gè)程序分成若干個(gè)可同時(shí)執(zhí)行的程序模塊的方法稱(chēng)為并發(fā)程序設(shè)計(jì),能夠并發(fā)執(zhí)行的程序成為并發(fā)程序,程序段的執(zhí)行在時(shí)間上是重疊

程序的并發(fā)執(zhí)行的特征不可再現(xiàn)性:由于程序的并發(fā)執(zhí)行,打破了由另一程序獨(dú)占系統(tǒng)資源的封閉性,因而破壞了可再現(xiàn)性。間斷性:程序并發(fā)執(zhí)行時(shí),由于它們共享資源或程序之間相互合作完成一項(xiàng)共同任務(wù),因而使程序之間相互制約。通信性:對(duì)于相互合作的程序,為了更有效地協(xié)調(diào)運(yùn)行,相互之間進(jìn)行通信。獨(dú)立性:并發(fā)程序在運(yùn)行過(guò)程中,既然是作為一個(gè)獨(dú)立的運(yùn)行實(shí)體,它也必然具有作為一個(gè)單位去獲得資源的獨(dú)立性。

進(jìn)程的引入背景單機(jī)多用戶(hù),多任務(wù),人機(jī)交互的需求需要程序并行,從而產(chǎn)生分時(shí)服務(wù)系統(tǒng)程序越來(lái)越大,使得計(jì)算機(jī)內(nèi)存不能同時(shí)將它們裝下,但計(jì)算機(jī)必須對(duì)用戶(hù)的請(qǐng)求做出響應(yīng)

在這種情況下,為了描述程序在計(jì)算機(jī)系統(tǒng)內(nèi)的執(zhí)行情況引入了進(jìn)程的概念進(jìn)程是現(xiàn)代OS的基本處理對(duì)象,它不同于程序,但又與程序有密切聯(lián)系。程序(用戶(hù)任務(wù)):在外存中表現(xiàn)為“文件”,是靜態(tài)的;在內(nèi)存中表現(xiàn)為“進(jìn)程”,是動(dòng)態(tài)的。進(jìn)程同程序的比較程序是指令的有序集合,其本身沒(méi)有任何運(yùn)行的含義,是一個(gè)靜態(tài)的概念。而進(jìn)程是程序在處理機(jī)上的一次執(zhí)行過(guò)程,它是一個(gè)動(dòng)態(tài)的概念。程序可以作為一種軟件資料長(zhǎng)期存在,而進(jìn)程是有一定生命期的。程序是永久的,進(jìn)程是暫時(shí)的。進(jìn)程更能真實(shí)地描述并發(fā),而程序不能進(jìn)程是由程序和數(shù)據(jù)、進(jìn)程控制塊等組成的進(jìn)程具有創(chuàng)建其他進(jìn)程的功能,而程序沒(méi)有同一程序同時(shí)運(yùn)行于若干個(gè)數(shù)據(jù)集合上,它將屬于若干個(gè)不同的進(jìn)程。也就是說(shuō)同一程序可以對(duì)應(yīng)多個(gè)進(jìn)程

OS的大多數(shù)需求與進(jìn)程有關(guān)交替執(zhí)行多個(gè)進(jìn)程,在合理的響應(yīng)時(shí)間范圍內(nèi)使處理器的使用率最大。給進(jìn)程分配資源,同時(shí)避免死鎖支持進(jìn)程間的通信和用戶(hù)創(chuàng)建進(jìn)程什么是進(jìn)程進(jìn)程的定義有很多種:一個(gè)正在執(zhí)行的程序計(jì)算機(jī)中正在運(yùn)行的程序的一個(gè)實(shí)例可以分配給處理器并有處理執(zhí)行的一個(gè)實(shí)體由一個(gè)順序的執(zhí)行線(xiàn)程、一個(gè)當(dāng)前狀態(tài)和一組相關(guān)的系統(tǒng)資源所描述的活動(dòng)單元進(jìn)程控制塊PCBOS維持的用于管理進(jìn)程的數(shù)據(jù)結(jié)構(gòu)用于中斷與恢復(fù)由OS創(chuàng)建、管理支持多道程序設(shè)計(jì)、多處理的關(guān)鍵工具PCB是進(jìn)程存在的唯一證明PCB應(yīng)該包含與進(jìn)程相關(guān)的所有信息標(biāo)識(shí)符狀態(tài)優(yōu)先級(jí)進(jìn)程控制塊PCBOS維持的用于管理進(jìn)程的數(shù)據(jù)結(jié)構(gòu)用于中斷與恢復(fù)由OS創(chuàng)建、管理支持多道程序設(shè)計(jì)、多處理的關(guān)鍵工具PCB是一個(gè)結(jié)構(gòu)體,由操作系統(tǒng)創(chuàng)建和維護(hù)PCB是進(jìn)程存在的唯一證明PCB包含與進(jìn)程相關(guān)的所有信息標(biāo)識(shí)符狀態(tài)優(yōu)先級(jí)程序計(jì)數(shù)器內(nèi)存指針上下文IO狀態(tài)進(jìn)程的身份證每個(gè)進(jìn)程唯一兩個(gè)進(jìn)程,其它屬性可以相同,標(biāo)識(shí)符一定不同追查進(jìn)程其它屬性的入口只要知道進(jìn)程的標(biāo)識(shí)符,就可通過(guò)查找PCB獲得關(guān)于這個(gè)進(jìn)程的其它信息進(jìn)程標(biāo)識(shí)符進(jìn)程的特征(注意與程序的對(duì)比)動(dòng)態(tài)性:有一定的生命期并發(fā)性:多個(gè)進(jìn)程實(shí)體,同存于內(nèi)存中,能在一段時(shí)間內(nèi)同時(shí)運(yùn)行獨(dú)立性:進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位異步性:進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn),i.e.進(jìn)程按異步方式運(yùn)行結(jié)構(gòu)特征:進(jìn)程實(shí)體是由程序段、數(shù)據(jù)段及進(jìn)程控制塊等部分組成--進(jìn)程映像從研究進(jìn)程的執(zhí)行軌跡出發(fā),觀(guān)察進(jìn)程在執(zhí)行過(guò)程中經(jīng)歷了哪些狀態(tài)每種狀態(tài)各自的特點(diǎn)操作系統(tǒng)根據(jù)進(jìn)程所處的不同狀態(tài),區(qū)別管理3.2進(jìn)程狀態(tài)請(qǐng)注意,只有進(jìn)程才有狀態(tài)一說(shuō),程序無(wú)所謂狀態(tài)進(jìn)程的軌跡(進(jìn)程代碼+調(diào)度器代碼)用來(lái)描述執(zhí)行的指令序列可以用軌跡來(lái)描述單個(gè)進(jìn)程的行為分派器(調(diào)度器)使一個(gè)進(jìn)程切換到另一個(gè)進(jìn)程3.2進(jìn)程狀態(tài)所謂調(diào)度器,即翻牌子選擇器進(jìn)程執(zhí)行的例子處理器執(zhí)行到第13個(gè)指令周期時(shí)三個(gè)進(jìn)程在存儲(chǔ)器中的布局進(jìn)程的軌跡等待I/O操作進(jìn)程A和C最初執(zhí)行的12條指令,進(jìn)程B執(zhí)行4條指令TracefromProcessor’s

pointofviewTimeoutI/OTimeoutTimeoutTimeslice:6instructioncycles3.2.1兩狀態(tài)進(jìn)程模型OS為了描述進(jìn)程的各個(gè)階段的特征,控制和管理進(jìn)程,定義了各種進(jìn)程狀態(tài),理論上可分為二態(tài)、五態(tài)等一個(gè)進(jìn)程可以處于兩種狀態(tài)之一:運(yùn)行未運(yùn)行兩狀態(tài)進(jìn)程模型為了控制進(jìn)程,需要描述它們的行為進(jìn)程可以處于以下兩種狀態(tài)之一運(yùn)行態(tài)未運(yùn)行態(tài)隊(duì)列輪狀圖分派器從隊(duì)列中選擇一個(gè)進(jìn)程在處理機(jī)上執(zhí)行。被中斷的進(jìn)程轉(zhuǎn)移到進(jìn)程等待隊(duì)列,或者,因?yàn)槿蝿?wù)結(jié)束而離開(kāi)系統(tǒng)。未運(yùn)行的進(jìn)程必須保持在某種類(lèi)型的隊(duì)列中,等待執(zhí)行。牌子列表3.2.2進(jìn)程何時(shí)創(chuàng)建創(chuàng)建的原因新的批作業(yè)交互登錄提供一項(xiàng)服務(wù)而創(chuàng)建,如打印由現(xiàn)有的進(jìn)程生成進(jìn)程派生:OS為另一個(gè)進(jìn)程的顯示請(qǐng)求創(chuàng)建一個(gè)進(jìn)程動(dòng)作建立管理該進(jìn)程的數(shù)據(jù)結(jié)構(gòu)在主存中給它分配地址空間3.2.2進(jìn)程何時(shí)終止批處理作業(yè)中發(fā)出Halt指令用戶(hù)退出系統(tǒng)結(jié)束一個(gè)應(yīng)用程序錯(cuò)誤和故障條件進(jìn)程終止的原因正常完成超過(guò)時(shí)限無(wú)可用存儲(chǔ)器越界保護(hù)錯(cuò)誤例如寫(xiě)入一個(gè)只讀文件算術(shù)錯(cuò)誤時(shí)間超出進(jìn)程等待某一事件發(fā)生的時(shí)間超過(guò)了規(guī)定的最大值進(jìn)程終止的原因I/O失敗無(wú)效指令試圖執(zhí)行一個(gè)不存在的指令特權(quán)指令數(shù)據(jù)誤用操作員或操作系統(tǒng)干涉例如,如果存在死鎖父進(jìn)程終止父進(jìn)程請(qǐng)求3.2.3五狀態(tài)模型在兩狀態(tài)進(jìn)程模型實(shí)現(xiàn)中,非運(yùn)行狀態(tài)的進(jìn)程存在著:已經(jīng)就緒等待執(zhí)行的進(jìn)程處于阻塞狀態(tài)等待I/O操作結(jié)束的進(jìn)程分派程序不能只考慮隊(duì)列中最老的進(jìn)程,而應(yīng)該查找那些未被阻塞且在隊(duì)列中時(shí)間最長(zhǎng)的進(jìn)程將非運(yùn)行狀態(tài)分成兩個(gè)狀態(tài):就緒(ready)阻塞(blocked)進(jìn)程的三種基本狀態(tài)

就緒(Ready)狀態(tài)2)執(zhí)行狀態(tài)3)阻塞狀態(tài)進(jìn)程的三種基本狀態(tài)及其轉(zhuǎn)換

3.2.3五狀態(tài)模型運(yùn)行態(tài)占用CPU運(yùn)行,運(yùn)行態(tài)進(jìn)程數(shù)目不大于CPU數(shù)目就緒態(tài)已占有除CPU之外的所有請(qǐng)求資源,只等待分配CPU即可運(yùn)行阻塞態(tài)進(jìn)程運(yùn)行時(shí)需要等待I/O操作或其它相關(guān)事件無(wú)法繼續(xù)運(yùn)行新建態(tài)PCB已經(jīng)創(chuàng)建,但還沒(méi)有加載到主存中的新進(jìn)程,退出態(tài)進(jìn)程完成或致命錯(cuò)誤而結(jié)束進(jìn)程狀態(tài)轉(zhuǎn)換的事件類(lèi)型1、Null→新建:創(chuàng)建執(zhí)行一個(gè)程序的新進(jìn)程,原因見(jiàn)表3.12、新建→就緒:OS準(zhǔn)備好再接納一個(gè)進(jìn)程時(shí),即為其建立PCB和資源分配的過(guò)程3、就緒→運(yùn)行:從就緒進(jìn)程表中選擇一個(gè)進(jìn)程進(jìn)入運(yùn)行態(tài)4、運(yùn)行→退出:進(jìn)程完成或取消進(jìn)程狀態(tài)轉(zhuǎn)換5、運(yùn)行→就緒:1、(時(shí)間片用盡)正在運(yùn)行的進(jìn)程到達(dá)了“允許不中斷執(zhí)行”的最大時(shí)間。2、(搶占)有更高優(yōu)先級(jí)的進(jìn)程處于就緒狀態(tài)6、運(yùn)行→阻塞:進(jìn)程請(qǐng)求的事件未完成,如I/O未完成,申請(qǐng)資源等7、阻塞→就緒:當(dāng)所等待的事件發(fā)生時(shí),如I/O完成,申請(qǐng)資源成功等8、就緒/阻塞→退出:父進(jìn)程終止一個(gè)子進(jìn)程,或者父進(jìn)程終止導(dǎo)致相關(guān)的所有子進(jìn)程終止(任何一個(gè)狀態(tài)都可以→退出)指令周期數(shù)五狀態(tài)的隊(duì)列模型進(jìn)入系統(tǒng)的每個(gè)進(jìn)程被放置在就緒隊(duì)列中,當(dāng)OS選擇另一個(gè)進(jìn)程運(yùn)行時(shí),將從就緒隊(duì)列中選擇3.2.4被掛起的進(jìn)程五狀態(tài)模型的問(wèn)題沒(méi)有使用虛存的系統(tǒng),所有隊(duì)列中的所有進(jìn)程必須駐留在主存中I/O活動(dòng)比計(jì)算速度慢很多即使是多道程序設(shè)計(jì),大多時(shí)候CPU仍然可能是空閑的怎么辦?擴(kuò)充主存,以適應(yīng)更多的進(jìn)程主存價(jià)格問(wèn)題程序?qū)Υ鎯?chǔ)器空間的要求的增長(zhǎng)速度快交換:把主存中某個(gè)進(jìn)程的一部分或全部移到磁盤(pán)中(系統(tǒng)中最快的I/O操作)內(nèi)存不足內(nèi)存不足硬盤(pán)頂上3.2.4被掛起的進(jìn)程把主存中某個(gè)進(jìn)程的一部分或全部移到磁盤(pán)中換出到磁盤(pán)時(shí)阻塞狀態(tài)變成掛起狀態(tài)掛起隊(duì)列:暫時(shí)保存從主存中被“驅(qū)逐”出的進(jìn)程隊(duì)列(或說(shuō)被掛起來(lái)的進(jìn)程隊(duì)列)增加兩個(gè)新?tīng)顟B(tài)阻塞/掛起:進(jìn)程在輔存中并等待一個(gè)事件就緒/掛起:進(jìn)程在輔存中,但是只要被載入主存就可以執(zhí)行掛起的動(dòng)機(jī)有兩個(gè):回收內(nèi)存暫停進(jìn)程有一個(gè)掛起狀態(tài)不足:可能會(huì)把仍被阻塞的進(jìn)程取回主存,這將沒(méi)有任何意義激活掛起事件發(fā)生事件發(fā)生等待事件掛起調(diào)度超時(shí)釋放活動(dòng)激活七狀態(tài)進(jìn)程模型

-有兩個(gè)掛起狀態(tài)新?tīng)顟B(tài)轉(zhuǎn)換阻塞-->阻塞掛起當(dāng)內(nèi)存緊缺造成所有進(jìn)程都阻塞時(shí),OS會(huì)將一些阻塞進(jìn)程掛起,使得至少一個(gè)進(jìn)程轉(zhuǎn)化為就緒進(jìn)程阻塞掛起-->就緒掛起當(dāng)?shù)却氖录l(fā)生時(shí)(狀態(tài)信息已在OS中)就緒掛起-->就緒1、內(nèi)存富余,且沒(méi)有就緒進(jìn)程時(shí);2、有就緒進(jìn)程,但掛起的進(jìn)程優(yōu)先級(jí)較高時(shí)就緒-->就緒掛起(較少見(jiàn))1、為了釋放內(nèi)存(在這之前,應(yīng)優(yōu)先執(zhí)行阻塞-->阻塞掛起);2、為了暫停進(jìn)程進(jìn)程掛起的原因表3.3(p90)理清七狀態(tài)中的四個(gè)關(guān)鍵狀態(tài)狀態(tài)運(yùn)行條件滿(mǎn)足運(yùn)行條件不滿(mǎn)足在內(nèi)存中就緒阻塞不在內(nèi)存中就緒掛起阻塞掛起3.3進(jìn)程描述P1:正在運(yùn)行,至少一部分在主存中,控制著兩個(gè)I/O設(shè)備P2:被阻塞,正在等待分配給P1的I/O設(shè)備Pn:已經(jīng)被換出,處于掛起狀態(tài)最基本的問(wèn)題:OS為了控制進(jìn)程和管理資源需要哪些信息?3.3.1操作系統(tǒng)的控制結(jié)構(gòu)操作系統(tǒng)必須掌握關(guān)于每個(gè)進(jìn)程和資源當(dāng)前狀態(tài)的信息方法:構(gòu)造并維護(hù)它所管理的每個(gè)實(shí)體的信息表內(nèi)存I/O設(shè)備文件進(jìn)程PCB0PCB1PCB2PCBnPCB指針0PCB指針1PCB指針2PCB指針n存儲(chǔ)表用于跟蹤主存和虛擬內(nèi)存包括的信息:分配給進(jìn)程的主存分配給進(jìn)程的虛擬內(nèi)存主存塊或虛存塊的任何保護(hù)屬性,如哪些進(jìn)程可以訪(fǎng)問(wèn)某些共享存儲(chǔ)器區(qū)域管理虛存所需要的任何信息I/O表管理計(jì)算機(jī)系統(tǒng)中的I/O設(shè)備和通道包括的信息I/O設(shè)備可用或者已分配I/O操作的狀態(tài)作為I/O傳送的源和目標(biāo)的主存單元文件表管理文件包括的信息:文件是否存在文件在輔存中的位置當(dāng)前狀態(tài)其它屬性大部分信息可能由文件管理系統(tǒng)維護(hù)和使用進(jìn)程表管理進(jìn)程包括的信息:進(jìn)程的位置管理時(shí)所必需的屬性進(jìn)程ID進(jìn)程狀態(tài)存儲(chǔ)器中的位置3.3.2進(jìn)程控制結(jié)構(gòu)管理和控制進(jìn)程的前提條件進(jìn)程的位置進(jìn)程屬性進(jìn)程ID進(jìn)程狀態(tài)存儲(chǔ)器中的位置進(jìn)程位置進(jìn)程的物理表示是?進(jìn)程必須包括一個(gè)或一組被執(zhí)行的程序局部變量、全局變量任何已定義常量的數(shù)據(jù)單元棧進(jìn)程控制塊(PCB)進(jìn)程屬性的集合進(jìn)程映像(processimage)程序、數(shù)據(jù)、棧和屬性的集合進(jìn)程映像的位置依賴(lài)于使用的存儲(chǔ)管理方案

進(jìn)程表中包含一個(gè)指向進(jìn)程映像的指針進(jìn)程控制塊(PCB)系統(tǒng)利用PCB來(lái)控制和管理進(jìn)程,所以PCB是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志可以把進(jìn)程控制塊信息分成三類(lèi):進(jìn)程標(biāo)識(shí)號(hào)進(jìn)程狀態(tài)信息(處理器狀態(tài)信息)進(jìn)程控制信息進(jìn)程控制塊PCB中的典型元素:標(biāo)識(shí)號(hào)同進(jìn)程控制塊一同存儲(chǔ)的數(shù)字標(biāo)識(shí)號(hào)進(jìn)程標(biāo)識(shí)號(hào)(簡(jiǎn)稱(chēng)進(jìn)程ID)創(chuàng)建這個(gè)進(jìn)程的進(jìn)程(父進(jìn)程)的標(biāo)識(shí)號(hào)用戶(hù)標(biāo)識(shí)號(hào)(簡(jiǎn)稱(chēng)用戶(hù)ID)

進(jìn)程控制塊處理器狀態(tài)信息用戶(hù)可見(jiàn)寄存器是處理器執(zhí)行的機(jī)器語(yǔ)言可以訪(fǎng)問(wèn)的寄存器。通常有8到32個(gè)此類(lèi)寄存器,而在一些RISC實(shí)現(xiàn)中有超過(guò)100個(gè)此類(lèi)寄存器進(jìn)程控制塊處理器狀態(tài)信息控制和狀態(tài)寄存器

用戶(hù)控制處理器操作的各種處理器寄存器,他們包括:程序計(jì)數(shù)器:包含將要取的下一條指令的地址條件碼:最近的算術(shù)或邏輯運(yùn)算的結(jié)果(例如符號(hào)、零、進(jìn)位、等于、溢出)狀態(tài)信息:包括中斷允許/禁止標(biāo)志,異常模式PentiumIIEFLAGS寄存器進(jìn)程控制塊處理器狀態(tài)信息棧指針每個(gè)進(jìn)程有一個(gè)或多個(gè)與之相關(guān)聯(lián)的后進(jìn)先出(LIFO)系統(tǒng)棧。棧用于保存參數(shù)和過(guò)程調(diào)用或系統(tǒng)調(diào)用的地址,棧指針指向棧頂在CPU中有幾個(gè)與棧有關(guān)的指針,如EBPESP等,它們的作用是什么?棧stack在計(jì)算機(jī)系統(tǒng)中,棧則是一個(gè)具有以上屬性的動(dòng)態(tài)內(nèi)存區(qū)域。程序可以將數(shù)據(jù)壓入棧中,也可以將數(shù)據(jù)從棧頂彈出。在i386機(jī)器中,棧頂由稱(chēng)為esp的寄存器進(jìn)行定位。壓棧的操作使得棧頂?shù)牡刂窚p小,彈出的操作使得棧頂?shù)牡刂吩龃?。棧在程序的運(yùn)行中有著舉足輕重的作用。最重要的是棧保存了一個(gè)函數(shù)調(diào)用時(shí)所需要的維護(hù)信息,這常常稱(chēng)之為堆棧幀。堆棧幀一般包含如下幾方面的信息:1.函數(shù)的返回地址和參數(shù)2.臨時(shí)變量:函數(shù)的非靜態(tài)局部變量。進(jìn)程控制塊進(jìn)程控制信息調(diào)度和狀態(tài)信息進(jìn)程狀態(tài):定義將被調(diào)度執(zhí)行的進(jìn)程的準(zhǔn)備情況(例如運(yùn)行、就緒、等待、停止)

優(yōu)先級(jí):用于描述進(jìn)程調(diào)度優(yōu)先級(jí)的一個(gè)或多個(gè)域。在某些系統(tǒng)中,需要多個(gè)值(例如默認(rèn)、當(dāng)前、最高許可)相關(guān)調(diào)度信息:這取決于所使用的調(diào)度算法。例如進(jìn)程等待的時(shí)間總量和進(jìn)程在上一次運(yùn)行時(shí)執(zhí)行時(shí)間總量?事件:進(jìn)程在繼續(xù)執(zhí)行前等待的事件進(jìn)程控制塊進(jìn)程控制信息數(shù)據(jù)結(jié)構(gòu)進(jìn)程可以鏈接到隊(duì)列、環(huán)或某些別的結(jié)構(gòu)中的其他進(jìn)程上,例如,所有具有某一特定優(yōu)先急切處于等待狀態(tài)的進(jìn)程可鏈接在一個(gè)隊(duì)列中;進(jìn)程還可以顯示與另一個(gè)進(jìn)程的父子(創(chuàng)建者-被創(chuàng)建者)關(guān)系。進(jìn)程控制塊為支持這些結(jié)構(gòu)需要包含指向其它進(jìn)程的指針進(jìn)程控制塊進(jìn)程控制信息進(jìn)程間通信與兩個(gè)獨(dú)立進(jìn)程間的通信相關(guān)聯(lián)的有各種標(biāo)記、信號(hào)和信息,進(jìn)程控制塊中維護(hù)著某些或全部此類(lèi)信息進(jìn)程特權(quán)進(jìn)程根據(jù)其可以訪(fǎng)問(wèn)的存儲(chǔ)器空間以及可以執(zhí)行的指令類(lèi)型被賦予各種特權(quán)。此外,特權(quán)還用于使用系統(tǒng)實(shí)用程序和服務(wù)進(jìn)程控制塊進(jìn)程控制信息存儲(chǔ)管理這一部分包括指向描述分配給該進(jìn)程的虛存空間的段和頁(yè)的指針資源的所有權(quán)和使用進(jìn)程控制的資源可以表示成諸如一個(gè)打開(kāi)的文件。還可能包括處理器或其他資源的使用歷史,調(diào)度程序可能會(huì)需要這些信息在虛存中的進(jìn)程映像處理器狀態(tài)信息處理器寄存器的內(nèi)容用戶(hù)可見(jiàn)寄存器控制和狀態(tài)寄存器棧指針程序狀態(tài)字(PSW)包含狀態(tài)信息例如:PentiumEFLAGS寄存器進(jìn)程控制塊的組織方式

為了有效地對(duì)進(jìn)程控制塊進(jìn)行管理,應(yīng)該采用適當(dāng)?shù)姆绞桨阉鼈兘M織起來(lái)。目前常用的組織方式有以下兩種:按鏈接方式組織PCB(隊(duì)列)-〉圖3.13不同狀態(tài)進(jìn)程分別組成隊(duì)列 運(yùn)行隊(duì)列、就緒隊(duì)列、等待隊(duì)列按索引方式組織PCB(表)對(duì)具有相同狀態(tài)的進(jìn)程,分別設(shè)置各自的PCB索引表,表明PCB在PCB表中的地址(其他方式:線(xiàn)性表或鏈表)3.4進(jìn)程控制1.進(jìn)程控制的主要任務(wù)

進(jìn)程控制是對(duì)系統(tǒng)中所有進(jìn)程從產(chǎn)生、存在到消亡的全過(guò)程實(shí)行有效的管理和控制。進(jìn)程控制一般是由操作系統(tǒng)的內(nèi)核來(lái)實(shí)現(xiàn)。3.4.1執(zhí)行模式區(qū)分與OS相關(guān)聯(lián)以及與用戶(hù)程序相關(guān)聯(lián)的處理器執(zhí)行模式用戶(hù)模式較少特權(quán)模式用戶(hù)程序通常在該模式下運(yùn)行系統(tǒng)模式、控制模式或內(nèi)核模式較多特權(quán)模式操作系統(tǒng)的內(nèi)核典型功能(表3.7)3.4.2進(jìn)程創(chuàng)建(新建并填寫(xiě)PCB)給新進(jìn)程分配一個(gè)惟一的進(jìn)程標(biāo)識(shí)號(hào)給進(jìn)程分配空間進(jìn)程映像中的所有元素初始化進(jìn)程控制塊基于標(biāo)準(zhǔn)默認(rèn)值和為該進(jìn)程請(qǐng)求的屬性設(shè)置正確的連接例如,如果操作系統(tǒng)把每個(gè)調(diào)度隊(duì)列都保存成鏈表,則新進(jìn)程必須放置在就緒或就緒/掛起鏈表中創(chuàng)建或擴(kuò)充其它數(shù)據(jù)結(jié)構(gòu)例如,為每個(gè)進(jìn)程保存著一個(gè)計(jì)賬文件,用于編制賬單和性能評(píng)估3.4.3進(jìn)程切換在某一時(shí)刻,中斷正在運(yùn)行的進(jìn)程,OS指定另一個(gè)進(jìn)程為運(yùn)行狀態(tài),并把控制權(quán)交給它問(wèn)題:什么事件觸發(fā)進(jìn)程的切換認(rèn)識(shí)到模式切換與進(jìn)程切換的區(qū)別為實(shí)現(xiàn)進(jìn)程切換,OS必須對(duì)它控制的數(shù)據(jù)結(jié)構(gòu)作些什么問(wèn)題一:何時(shí)發(fā)生進(jìn)程切換一個(gè)進(jìn)程,時(shí)間片用完了,按道理OS應(yīng)該終止它的執(zhí)行,讓它進(jìn)入就緒態(tài);可是,OS怎么知道它時(shí)間片用完了?OS的代碼并不是時(shí)時(shí)刻刻都在執(zhí)行的答案是,要有一個(gè)定時(shí)器,OS每隔一段時(shí)間就去檢查一下,當(dāng)前正在運(yùn)行的進(jìn)程有沒(méi)有超過(guò)時(shí)間結(jié)論是,中斷發(fā)生時(shí)才能發(fā)生進(jìn)程切換事實(shí)上,除了啟動(dòng)階段,中斷是OS占有CPU的唯一機(jī)會(huì)說(shuō)一下中斷與異常每一本書(shū)的定義和分類(lèi)都不一樣INTEL提供的標(biāo)準(zhǔn)是:中斷Interrupt:又叫外部中斷,硬件中斷,異步中斷可屏蔽中斷不可屏蔽中斷異常exception:又叫內(nèi)部中斷,軟件中斷,同步中斷故障(fault)處理完后,執(zhí)行該進(jìn)程出錯(cuò)的那條指令陷阱(trap)處理完后,執(zhí)行該進(jìn)程下一條指令終止(abort)處理完后,該進(jìn)程別執(zhí)行拉與當(dāng)前指令無(wú)關(guān),是被外部事件打擾,隨機(jī)性回憶指令執(zhí)行流程,指令在執(zhí)行時(shí)不可能被中斷與當(dāng)前指令有關(guān),指令的執(zhí)行過(guò)程出現(xiàn)問(wèn)題2015考研計(jì)算機(jī)真題22.內(nèi)部異常(內(nèi)中斷)可分為故障(fault)、陷阱(trap)和終止(abort)三類(lèi)。下列有關(guān)內(nèi)部異常的敘述中,錯(cuò)誤的()

A.內(nèi)部異常的產(chǎn)生與當(dāng)前執(zhí)行指令相關(guān)

B.內(nèi)部異常的檢測(cè)由CPU內(nèi)部邏輯實(shí)現(xiàn)

C.內(nèi)部異常的響應(yīng)發(fā)生在指令執(zhí)行過(guò)程中

D.內(nèi)部異常處理的返回到發(fā)生異常的指令繼續(xù)執(zhí)行何時(shí)進(jìn)程切換1)中斷(與當(dāng)前進(jìn)程無(wú)關(guān),外部事件)時(shí)鐘中斷正在運(yùn)行的進(jìn)程的執(zhí)行時(shí)間是否已經(jīng)超過(guò)了最大允許時(shí)間段,如果超過(guò)了,進(jìn)程切換到就緒狀態(tài)I/O中斷內(nèi)存錯(cuò)誤???引用的虛存地址不在主存中,則必須從輔存中把包含這個(gè)引用的存儲(chǔ)器塊調(diào)入主存中,發(fā)生存儲(chǔ)器失效的進(jìn)程被置為阻塞狀態(tài)一個(gè)人走在路上,被別人打了何時(shí)切換進(jìn)程2)陷阱(與當(dāng)前進(jìn)程有關(guān),錯(cuò)誤和異常)錯(cuò)誤發(fā)生可能導(dǎo)致進(jìn)程被轉(zhuǎn)換到退出狀態(tài)3)系統(tǒng)調(diào)用(與當(dāng)前進(jìn)程有關(guān),進(jìn)程主動(dòng)故意發(fā)出,沒(méi)有錯(cuò)誤)外號(hào):自陷如打開(kāi)文件通常會(huì)導(dǎo)致把用戶(hù)進(jìn)程置為阻塞狀態(tài)一個(gè)人走在路上,不小心掉下水道坑里了一個(gè)人走在路上,自己挖坑把自己埋了問(wèn)題二:模式切換與進(jìn)程切換異同?相同之處:都涉及控制權(quán)轉(zhuǎn)移,保存舊的上下文,切換到新的上下文不同之處:模式切換是垂直方向的切換,進(jìn)程切換是水平方向的切換執(zhí)行模式的切換CPU響應(yīng)中斷時(shí)所做工作:(硬件)從用戶(hù)模式切換到內(nèi)核模式,使得中斷處理代碼可以包含有特權(quán)的指令保存當(dāng)前正在執(zhí)行的程序的上下文環(huán)境把程序計(jì)數(shù)器置成中斷處理程序的開(kāi)始地址(在用戶(hù)態(tài)發(fā)生的)中斷一定引發(fā)模式切換中斷不一定引發(fā)進(jìn)程切換因?yàn)橹袛嗖灰欢ㄒ鹫{(diào)度(當(dāng)前進(jìn)程時(shí)間片未用完),即使引起調(diào)度,也可能還是選擇了舊進(jìn)程。進(jìn)程切換時(shí)進(jìn)程狀態(tài)的變化進(jìn)程切換則會(huì)使OS環(huán)境產(chǎn)生實(shí)質(zhì)性的變化,一個(gè)完整的進(jìn)程切換步驟:保存處理器上下文環(huán)境,包括程序計(jì)數(shù)器和其它寄存器更新當(dāng)前處于運(yùn)行狀態(tài)的進(jìn)程的進(jìn)程控制塊把進(jìn)程的進(jìn)程控制塊移到相應(yīng)的隊(duì)列(就緒、在事件I處阻塞、就緒/掛起)選擇另一個(gè)進(jìn)程執(zhí)行進(jìn)程狀態(tài)變化更新所選擇進(jìn)程的進(jìn)程控制塊,包括把進(jìn)程的狀態(tài)變?yōu)檫\(yùn)行更新存儲(chǔ)管理數(shù)據(jù)結(jié)構(gòu)恢復(fù)被選擇進(jìn)程的上下文環(huán)境進(jìn)程切換流程1、A的超時(shí)中斷PCB

APCB

BPCB

C用戶(hù)棧Timeout內(nèi)核棧CPU響應(yīng)中斷時(shí)所做工作:(硬件)從用戶(hù)模式切換到內(nèi)核模式,使得中斷處理代碼可以包含有特權(quán)的指令保存當(dāng)前正在執(zhí)行的程序的上下文環(huán)境把程序計(jì)數(shù)器置成中斷處理程序的開(kāi)始地址用戶(hù)棧內(nèi)核棧用戶(hù)棧內(nèi)核棧進(jìn)程切換流程1、A的超時(shí)中斷PCB

APCB

BPCB

C用戶(hù)棧Timeout內(nèi)核棧CPU響應(yīng)中斷時(shí)所做工作:(軟件)繼續(xù)保存上下文環(huán)境把程序計(jì)數(shù)器置成中斷處理程序的開(kāi)始地址中斷處理程序開(kāi)始執(zhí)行,它發(fā)現(xiàn)中斷的事由是超時(shí),于是調(diào)用調(diào)度器用戶(hù)棧內(nèi)核棧用戶(hù)棧內(nèi)核棧進(jìn)程切換流程2、調(diào)度器的抉擇PCB

APCB

BPCB

C用戶(hù)棧內(nèi)核棧CPU響應(yīng)中斷時(shí)所做工作:(軟件)調(diào)度器保存處理器上下文環(huán)境,包括PC和其它寄存器更新A的PCB把PCBA移到相應(yīng)的隊(duì)列(就緒、阻塞、就緒/掛起)調(diào)度器執(zhí)行某種算法后,選擇B執(zhí)行用戶(hù)棧內(nèi)核棧用戶(hù)棧內(nèi)核棧進(jìn)程切換流程2、調(diào)度器的抉擇PCB

APCB

BPCB

C用戶(hù)棧內(nèi)核棧CPU響應(yīng)中斷時(shí)所做工作:(軟件)調(diào)度器更新B的PCB,包括把進(jìn)程的狀態(tài)變?yōu)檫\(yùn)行更新存儲(chǔ)管理數(shù)據(jù)結(jié)構(gòu)為B

(換密碼本)恢復(fù)B的上下文環(huán)境(從哪恢復(fù)?)用戶(hù)棧內(nèi)核棧用戶(hù)棧內(nèi)核棧進(jìn)程切換流程3、偽裝從B的中斷中返回BPCB

APCB

BPCB

C用戶(hù)棧內(nèi)核棧CPU響應(yīng)中斷時(shí)所做工作:(軟件)用戶(hù)棧內(nèi)核棧用戶(hù)棧內(nèi)核棧PSW和PC屬于B3.5操作系統(tǒng)的執(zhí)行模式一:無(wú)進(jìn)程的內(nèi)核在所有的進(jìn)程之外執(zhí)行操作系統(tǒng)內(nèi)核在正運(yùn)行的進(jìn)程被中斷或產(chǎn)生一個(gè)系統(tǒng)調(diào)用,保存進(jìn)程上下文,控制轉(zhuǎn)交給內(nèi)核OS有自己的存儲(chǔ)器區(qū)域和系統(tǒng)棧,用于控制過(guò)程調(diào)用核返回操作系統(tǒng)代碼作為一個(gè)在特權(quán)模式下工作的獨(dú)立實(shí)體被執(zhí)行進(jìn)程的概念僅適用用戶(hù)程序Windowsxp的任務(wù)管理器里,找得到中斷處理程序么?3.5操作系統(tǒng)的執(zhí)行模式二:在用戶(hù)進(jìn)程中執(zhí)行在用戶(hù)進(jìn)程的上下文環(huán)境中執(zhí)行所有操作系統(tǒng)軟件當(dāng)運(yùn)行OS代碼時(shí),進(jìn)程在內(nèi)核模式下執(zhí)行獨(dú)立的內(nèi)核棧用于管理調(diào)用/返回OS代碼和數(shù)據(jù)位于共享地址空間,被所有的用戶(hù)進(jìn)程共享當(dāng)發(fā)生一個(gè)中斷、陷阱或系統(tǒng)調(diào)用時(shí),處理器被置于內(nèi)核模式,控制轉(zhuǎn)交給OS保存模式上下文環(huán)境(不需進(jìn)程切換)模式切換,切換到一個(gè)操作系統(tǒng)的例程O(píng)S完成操作后,進(jìn)行模式切換,在當(dāng)前進(jìn)程中恢復(fù)被中斷的程序目前所有主流操作系統(tǒng)均采用這種模式優(yōu)勢(shì):模式切換的效率極高在32位平臺(tái)上每個(gè)進(jìn)程都可以獲得4GB大小的地址空間。在32位Linux系統(tǒng)中,高1GB空間是每個(gè)進(jìn)程共享的內(nèi)核地址空間,0~3GB的空間是每個(gè)進(jìn)程獨(dú)享的地址空間。操作系統(tǒng)的執(zhí)行基于進(jìn)程的OperatingSystem即把OS作為一組系統(tǒng)進(jìn)程來(lái)實(shí)現(xiàn),如圖3.14c主要的內(nèi)核函數(shù)被組織成獨(dú)立的進(jìn)程一些進(jìn)程切換函數(shù)在任何進(jìn)程之外執(zhí)行在多處理器或多機(jī)環(huán)境中都是十分有用的優(yōu)點(diǎn):模塊化登峰造極的微內(nèi)核架構(gòu)??!效率低963.5操作系統(tǒng)的執(zhí)行操作系統(tǒng)也是由處理器執(zhí)行的一個(gè)程序,那么,操作系統(tǒng)是一個(gè)進(jìn)程嗎?如果是,如何控制?3.5.1無(wú)進(jìn)程的內(nèi)核進(jìn)程的概念僅適用于用戶(hù)程序,操作系統(tǒng)代碼作為一個(gè)在特權(quán)模式下工作的獨(dú)立實(shí)體被執(zhí)行。應(yīng)用進(jìn)程應(yīng)用進(jìn)程內(nèi)核應(yīng)用進(jìn)程…核心態(tài)用戶(hù)態(tài)973.5.2在用戶(hù)進(jìn)程中執(zhí)行操作系統(tǒng)是用戶(hù)調(diào)用的一組例程,在用戶(hù)進(jìn)程環(huán)境中執(zhí)行,用于實(shí)現(xiàn)各種功能。核心態(tài)用戶(hù)態(tài)內(nèi)核函數(shù)內(nèi)核函數(shù)內(nèi)核函數(shù)應(yīng)用進(jìn)程應(yīng)用進(jìn)程…進(jìn)程切換函數(shù)應(yīng)用進(jìn)程983.5.3基于進(jìn)程的操作系統(tǒng)把操作系統(tǒng)作為一組系統(tǒng)進(jìn)程來(lái)實(shí)現(xiàn),主要的內(nèi)核函數(shù)被組織成獨(dú)立的進(jìn)程。進(jìn)程切換函數(shù)應(yīng)用進(jìn)程…OS函數(shù)…用戶(hù)態(tài)核心態(tài)應(yīng)用進(jìn)程O(píng)S函數(shù)應(yīng)用進(jìn)程O(píng)S函數(shù)2015考研計(jì)算機(jī)真題1.已知程序如下:

ints(intn)

{return(n<=0)?0:s(n-1)+n;}

voidmain()

{cout<<s(1);}程序運(yùn)行時(shí)使用棧來(lái)保存調(diào)用過(guò)程的信息,自棧底到棧頂保存的信息一次對(duì)應(yīng)的是

A.main()->S(1)->S(0)B.S(0)->S(1)->main()

C.main()->S(0)->S(1)D.S(1)->S(0)->main()2015考研計(jì)算機(jī)真題22.內(nèi)部異常(內(nèi)中斷)可分為故障(fault)、陷阱(trap)和終止(abort)三類(lèi)。下列有關(guān)內(nèi)部異常的敘述中,錯(cuò)誤的()

A.內(nèi)部異常的產(chǎn)生與當(dāng)前執(zhí)行指令相關(guān)

B.內(nèi)部異常的檢測(cè)由CPU內(nèi)部邏輯實(shí)現(xiàn)

C.內(nèi)部異常的響應(yīng)發(fā)生在指令執(zhí)行過(guò)程中

D.內(nèi)部異常處理的返回到發(fā)生異常的指令繼續(xù)執(zhí)行2015考研計(jì)算機(jī)真題23.處理外部中斷時(shí),應(yīng)該由操作系統(tǒng)保存的是()A.程序計(jì)數(shù)器(PC)的內(nèi)容B.通用寄存器的內(nèi)容C.快表(TLB)的內(nèi)容D.Cache中的內(nèi)容2015考研計(jì)算機(jī)真題24.假定下列指令已裝入指令寄存器。則執(zhí)行時(shí)不可能導(dǎo)致CPU從用戶(hù)態(tài)變?yōu)閮?nèi)核態(tài)(系統(tǒng)態(tài))的是()

A.DIVR0,R1;(R0)/(R1)→R0

B.INTn;產(chǎn)生軟中斷

C.NOTR0;寄存器R0的內(nèi)容取非

D.MOVR0,addr;把地址處的內(nèi)存數(shù)據(jù)放入寄存器R0中2015考研計(jì)算機(jī)真題25.下列選項(xiàng)中會(huì)導(dǎo)致進(jìn)程從執(zhí)行態(tài)變?yōu)榫途w態(tài)的事件是()A.執(zhí)行P(wait)操作

B.申請(qǐng)內(nèi)存失敗C.啟動(dòng)I/O設(shè)備

D.被高優(yōu)先級(jí)進(jìn)程搶占2014考研計(jì)算機(jī)真題25.下列指令,無(wú)法在用戶(hù)態(tài)執(zhí)行的是

A.trap指令

B.跳轉(zhuǎn)指令

C.壓棧指令

D.關(guān)中斷指令2013考研計(jì)算機(jī)真題22.下列關(guān)于中斷I/O方式和DMA方式比較的敘述中,錯(cuò)誤的是A.中斷I/O方式請(qǐng)求的是CPU處理時(shí)間,DMA方式請(qǐng)求的是總線(xiàn)使用權(quán)B.中斷響應(yīng)發(fā)生在一條指令執(zhí)行結(jié)束后,DMA響應(yīng)發(fā)生在一個(gè)總線(xiàn)事務(wù)完成后C.中斷I/O方式下數(shù)據(jù)傳送通過(guò)軟件完成,DMA方式下數(shù)據(jù)傳送由硬件完成D.中斷I/O方式適用于所有外部設(shè)備,DMA方式僅適用于快速外部設(shè)備2013考研計(jì)算機(jī)真題28.下列選項(xiàng)中,會(huì)導(dǎo)致用戶(hù)進(jìn)程從用戶(hù)態(tài)切換到內(nèi)核態(tài)的操作是I.整數(shù)除以零II.sin()函數(shù)調(diào)用III.read系統(tǒng)調(diào)用A.僅I、IIB.僅I、IIIC.僅II、IIID.I、II和III2013考研計(jì)算機(jī)真題29.計(jì)算機(jī)開(kāi)機(jī)后,操作系統(tǒng)最終被加載到A.BIOSB.ROMC.EPROMD.RAM2012考研計(jì)算機(jī)真題23、下列選項(xiàng)中,不可能在用戶(hù)態(tài)發(fā)生的事件是()A.系統(tǒng)調(diào)用B.外部中斷C.進(jìn)程切換D.缺頁(yè)2012考研計(jì)算機(jī)真題24、中斷處理和子程序調(diào)用都需要壓棧以保護(hù)現(xiàn)場(chǎng),中斷處理一定會(huì)保存而子程序調(diào)用不需要保存其內(nèi)容的是()A.程序計(jì)數(shù)器B.程序狀態(tài)字寄存器C.通用數(shù)據(jù)寄存器D.通用地址寄存器2012考研計(jì)算機(jī)真題30、若某單處理器多進(jìn)程系統(tǒng)中有多個(gè)就緒態(tài)進(jìn)程,則下列關(guān)于處理機(jī)調(diào)度的敘述中錯(cuò)誤的是()A.在進(jìn)程結(jié)束時(shí)能進(jìn)行處理機(jī)調(diào)度B.創(chuàng)建新進(jìn)程后能進(jìn)行處理機(jī)調(diào)度C.在進(jìn)程處于臨界區(qū)時(shí)不能進(jìn)行處理機(jī)調(diào)度D.在系統(tǒng)調(diào)用完成并返回用戶(hù)態(tài)時(shí)能進(jìn)行處理機(jī)調(diào)度2012考研計(jì)算機(jī)真題31、下列關(guān)于進(jìn)程和線(xiàn)程的敘述中,正確的是()A.不管系統(tǒng)是否支持線(xiàn)程,進(jìn)程都是資源分配的基本單位B.線(xiàn)程是資源分配的基本單位,進(jìn)程是調(diào)度的基本單位C.系統(tǒng)級(jí)線(xiàn)程和用戶(hù)級(jí)線(xiàn)程的切換都需要內(nèi)核的支持D.同一進(jìn)程中的各個(gè)線(xiàn)程擁有各自不一的地址空間2011考研計(jì)算機(jī)真題24在下列代碼中,在用戶(hù)態(tài)執(zhí)行的是A進(jìn)程調(diào)度程序B中斷處理程序C系統(tǒng)調(diào)用程序D命令解釋程序(shell)2011考研計(jì)算機(jī)真題25在支持多線(xiàn)程的系統(tǒng)中,進(jìn)程P創(chuàng)建的若干個(gè)線(xiàn)程不能共享的是()A進(jìn)程P的代碼段B進(jìn)程P打開(kāi)的文件C進(jìn)程P的全局變量D進(jìn)程P的棧指針UNIXSVR4進(jìn)程管理大部分操作系統(tǒng)在用戶(hù)進(jìn)程環(huán)境中執(zhí)行,UNIX便是在用戶(hù)進(jìn)程中執(zhí)行的OSUNIX進(jìn)程狀態(tài)

-9種進(jìn)程狀態(tài)用戶(hù)模式:運(yùn)行用戶(hù)進(jìn)程內(nèi)核模式:運(yùn)行系統(tǒng)進(jìn)程與七狀態(tài)的異同兩個(gè)睡眠狀態(tài)對(duì)應(yīng)七狀態(tài)的兩個(gè)阻塞狀態(tài)采用兩個(gè)運(yùn)行狀態(tài):用戶(hù)模式、內(nèi)核模式區(qū)分系統(tǒng)/用戶(hù)進(jìn)程的執(zhí)行區(qū)分兩個(gè)狀態(tài):在存儲(chǔ)器中就緒、被剝奪強(qiáng)調(diào)進(jìn)入被剝奪狀態(tài)的方式本質(zhì)上是同一個(gè)狀態(tài)構(gòu)成一條隊(duì)列UNIX進(jìn)程映像用戶(hù)上下文環(huán)境用戶(hù)程序的基本成分寄存器上下文環(huán)境系統(tǒng)級(jí)上下文環(huán)境OS管理進(jìn)程所需要的其余信息靜態(tài)部分:進(jìn)程表項(xiàng)、U區(qū)、本進(jìn)程區(qū)表動(dòng)態(tài)部分:內(nèi)核部分UNIXProcessImage進(jìn)程控制內(nèi)核系統(tǒng)調(diào)用Fork()創(chuàng)建進(jìn)程在父進(jìn)程的內(nèi)核模式下完成對(duì)父進(jìn)程返回子進(jìn)程的進(jìn)程號(hào),對(duì)子進(jìn)程返回零3進(jìn)程從運(yùn)行狀態(tài)進(jìn)入就緒狀態(tài)的原因可能是

D

A.被選中占有處理機(jī)

B.等待某一事件

C.等待的事件已發(fā)生

D.時(shí)間片用完4、一個(gè)進(jìn)程被喚醒意味著

B

A.該進(jìn)程重新占有了CPUB.進(jìn)程狀態(tài)變?yōu)榫途w

C.它的優(yōu)先權(quán)變?yōu)樽畲驞.其PCB移至就緒隊(duì)列的隊(duì)首29、在進(jìn)程管理中,一個(gè)進(jìn)程存在的惟一標(biāo)志是C

A、源程序和數(shù)據(jù)

B、作業(yè)說(shuō)明書(shū)

C、進(jìn)程控制塊

D、目標(biāo)程序和數(shù)據(jù)

6、正在執(zhí)行的進(jìn)程由于其時(shí)間片完而被暫停執(zhí)行,此時(shí)進(jìn)程應(yīng)從執(zhí)行狀態(tài)變?yōu)?/p>

D

A.

掛起阻塞

B.

阻塞

C.

掛起就緒

D.

就緒8已經(jīng)獲得除___C__以外的所有運(yùn)行所需資源的進(jìn)程處于就緒狀態(tài)。

A.存儲(chǔ)器

B.打印機(jī)

C.CPU

D.磁盤(pán)空間17、下列的進(jìn)程狀態(tài)變化中,C

變化是不可能發(fā)生的。

A、運(yùn)行→就緒

B、運(yùn)行→阻塞

C、阻塞→運(yùn)行

D、阻塞→就緒21、進(jìn)程狀態(tài)從就緒態(tài)到運(yùn)行態(tài)的轉(zhuǎn)化工作是由C

完成的。

A、作業(yè)調(diào)度

B、中級(jí)調(diào)度

C、進(jìn)程調(diào)度

D、設(shè)備調(diào)度

24、下列B

是進(jìn)程存在的標(biāo)志。

A、JCB

B、PCB

C、DCT

D、CHCT47、進(jìn)程控制塊是描述進(jìn)程狀態(tài)和特性的數(shù)據(jù)結(jié)構(gòu),一個(gè)進(jìn)程_D____。

A、可以有多個(gè)進(jìn)程控制塊

B.可以和其他進(jìn)程共用一個(gè)進(jìn)程控制塊

C.

可以沒(méi)有進(jìn)程控制塊

D.只能有惟一的進(jìn)程控制塊

48、對(duì)進(jìn)程的描述中,下列說(shuō)法錯(cuò)誤的是___D______

。

A.

一個(gè)進(jìn)程可以包含若干個(gè)程序

B.

一個(gè)程序可以對(duì)應(yīng)多個(gè)進(jìn)程

C.

進(jìn)程必須由程序作為其組成部分

D.

一個(gè)程序僅對(duì)應(yīng)一個(gè)進(jìn)程作業(yè)P74復(fù)習(xí)題2.52.10P75習(xí)題2.22.6P109復(fù)習(xí)題3.33.103.123.14P109習(xí)題3.2P109習(xí)題3.12進(jìn)程和程序的本質(zhì)區(qū)別是

D

A.存儲(chǔ)在內(nèi)存和外存B.順序和非順序執(zhí)行機(jī)器指令C.分時(shí)使用和獨(dú)占使用計(jì)算機(jī)資源D.動(dòng)態(tài)和靜態(tài)特征

3進(jìn)程從運(yùn)行狀態(tài)進(jìn)入就緒狀態(tài)的原因可能是

D

A.被選中占有處理機(jī)

B.等待某一事件

C.等待的事件已發(fā)生

D.時(shí)間片用完

4、一個(gè)進(jìn)程被喚醒意味著

B

A.該進(jìn)程重新占有了CPUB.進(jìn)程狀態(tài)變?yōu)榫途w

C.它的優(yōu)先權(quán)變?yōu)樽畲驞.其PCB移至就緒隊(duì)列的隊(duì)首

6、正在執(zhí)行的進(jìn)程由于其時(shí)間片完而被暫停執(zhí)行,此時(shí)進(jìn)程應(yīng)從執(zhí)行狀態(tài)變?yōu)?/p>

D

A.

掛起阻塞

B.

阻塞

C.

掛起就緒

D.

就緒

7、下列各項(xiàng)工作中

,

哪一個(gè)不是創(chuàng)建進(jìn)程必須的步驟

B

A.建立一個(gè)

PCB

進(jìn)程控制塊

B.由進(jìn)程調(diào)度程序?yàn)檫M(jìn)程調(diào)度

CPU

C.為進(jìn)程分配內(nèi)存等必要的資源

D.將

PCB

鏈入進(jìn)程就緒隊(duì)列

8已經(jīng)獲得除___C__以外的所有運(yùn)行所需資源的進(jìn)程處于就緒狀態(tài)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論