資源描述:
《第二章進程管理》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、第二章進程管理?多道程序設(shè)計?進程?進程間的相互作用?進程間的通信?進程控制?進程調(diào)度(CPU調(diào)度)?死鎖2.1多道程序設(shè)計?順序程序并發(fā)程序多道程序設(shè)計2.1.1.順序程序程序:指令或語句序列,體現(xiàn)了某種算法,所有程序是順序的順序環(huán)境:在計算機系統(tǒng)中只有一個程序在運行,這個程序獨占系統(tǒng)中所有資源,其執(zhí)行不受外界影響。特征:程序執(zhí)行的順序性:程序執(zhí)行的封閉性:獨占資源,執(zhí)行過程中不受外界影響。程序結(jié)果的可再現(xiàn)性:程序運行結(jié)果與程序執(zhí)行速度無關(guān),只要初始狀態(tài)相同,結(jié)果應(yīng)相同。2.1.2并發(fā)程序并發(fā)環(huán)境:在一定時間內(nèi)物
2、理機器上有兩個或兩個以上的程序同處于開始運行但尚未結(jié)束的狀態(tài),并且次序不是事先確定的。特征:(D不可再現(xiàn)性:并發(fā)程序執(zhí)行的結(jié)果與其執(zhí)行的相對速度有關(guān),是不確定的。(2)在并發(fā)環(huán)境下程序的執(zhí)行是間斷性的。⑶資源共享^系統(tǒng)中資源被多個進程使用。(4)制約性:進程之間可相互作用(相互制約),可分為直接作用和間接作用。(5)程序和計算不再對應(yīng)。(計算:一個程序的執(zhí)行。)引入并發(fā)的目的:引入并發(fā)是為了提高資源利用率,從而提高系統(tǒng)效率。并發(fā)與并行概念的區(qū)別:concurrency,parallel2.1.3多道程序設(shè)計定義:M
3、uitiprogramming多道程序設(shè)計是指允許多個程序同時進入內(nèi)存并運行。(引入目的是為了提高系統(tǒng)效率)與并發(fā)不完全是一個概念,但效果相似。考慮因素:在多道程序環(huán)境下如何向用戶提供服務(wù);在并發(fā)程序之間如何正確傳遞消息(通訊)如何對CPU進行調(diào)度,保證每個用戶相對公平地得到CPU(CPU是一個只可調(diào)度,不可分配的資源。)如何管理其它資源:當(dāng)各用戶對資源使用上發(fā)生沖突時,如何處理競爭。對CPU只能通過調(diào)度來解決競爭問題,而對于其它資源通過申請一分配一使用一回收的辦法進行管理,當(dāng)且僅當(dāng)占有CPU的時候才可以申請,否則
4、要排隊等候。2.1.4與時間有關(guān)的錯誤一個飛機訂票系統(tǒng),兩個終端,運行Tl、T2進程T1:T2:Read(x);read(x);ifx>=lthenifx>=lthenx:=xT;x:=xT;write(x);write(x);??????Cobeginget;copy;put;CoendIstg初始狀態(tài)3,4,?.?,m22(1,2)g,C,p4,5,???,m33(1,2,3)g,P,C4,5,..?,m33(1,2,2)C,g,P4,5,???,m32(1,2,2)C,P,g4,5,???,m32(1,2,2
5、)P,C,g4,5,?.?,m32(1,2,2)p,g,c4,5,???,m33(1,2,2)設(shè)信息長度為m,有多少種可能性?2.2.1進程的概念定義:Process進程是具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調(diào)度的獨立單位。程序與進程之間的區(qū)別:進程更能真實地描述并發(fā),而程序不能。進程是由程序和數(shù)據(jù)兩部分組成的。程序是動態(tài)的,進程是動態(tài)的。進程有生命周期,有誕生有消亡,短暫的。而程序是相對長久的。一個程序可對應(yīng)多個進程,反之亦然。進程具有創(chuàng)建其它進程的功能,而程序沒有。進程的分類
6、:系統(tǒng)進程:用戶進程:(系統(tǒng)進程優(yōu)先于用戶進程)2.2.2進程的基本狀態(tài)及其轉(zhuǎn)換進程的三種基本狀態(tài):進程在生命消亡前處于且僅處于三種基本狀態(tài)之一。不同系統(tǒng)設(shè)置的進程狀態(tài)數(shù)目不同。運行態(tài)(Running):進程占有CPU,并在CPU上運行。就緒態(tài)(Ready):一個進程已經(jīng)具備運行條件,但由于無CPU暫時不能運行的狀態(tài)。(當(dāng)調(diào)度給其CPU時,立即可以運行)等待態(tài)(Blocked):阻塞態(tài)、掛起態(tài)、封鎖態(tài).凍結(jié)態(tài)、睡眠態(tài)指進程因等待某種事件的發(fā)生而暫時不能運行的狀態(tài)。(即使CPU空閑,該進程也不可運行)狀態(tài)轉(zhuǎn)換:在進程
7、運行過程中,由于自身進展情況及外界環(huán)境的變化,這三種基本狀態(tài)可以依據(jù)一定的條件相互轉(zhuǎn)換。就緒一運行:被調(diào)度程序選中;運行一就緒:時間片到時,或有更高優(yōu)先級的進程出現(xiàn);運行一等待:等待某事件發(fā)生;等待一就緒:等待的事件發(fā)生了。2.2.3進程控制塊(ProcessControlBlock)概念:系統(tǒng)為了管理進程設(shè)置的一個專門的數(shù)據(jù)結(jié)構(gòu),用它來記錄進程的外部特征,描述進程的運動變化過程。系統(tǒng)利用PCB來控制和管理進程,所以PCB是系統(tǒng)感知進程存在的唯一標(biāo)志。進程與PCB是_一對應(yīng)的。PCB的內(nèi)容:調(diào)度信息、:進程名;進程
8、的內(nèi)部標(biāo)識;用戶名;進程狀態(tài);進程優(yōu)先級;進程的存儲信息(起始地址,長度);進程資源清單;進程家族關(guān)系;進程的隊列指針;進程的消息隊列指針;進程當(dāng)前打開的文件。現(xiàn)場信息:記錄了重要的寄存器;(虛)時鐘等內(nèi)容。PCB表:系統(tǒng)把所有PCB組織在一起,并把它們放在內(nèi)存的固定區(qū)域,就構(gòu)成了PCB表。PCB表的大小決定了系統(tǒng)中最多可同時存在的進程個數(shù),稱為系統(tǒng)的并發(fā)度