資源描述:
《進(jìn)程 進(jìn)程控制處理機(jī)調(diào)度 進(jìn)程的同步與通信.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、3.2進(jìn)程、進(jìn)程控制和處理機(jī)調(diào)度3.3進(jìn)程的同步與通信一、單道程序工作環(huán)境下程序的順序執(zhí)行與特征1.程序的順序執(zhí)行:一個(gè)程序通??煞殖扇舾蓚€(gè)程序段,它們必須按照某種先后次序執(zhí)行,僅當(dāng)前一操作執(zhí)行完后,才能執(zhí)行后繼操作。2、特征:(1)順序性(2)封閉性(3)可再現(xiàn)性二、多道程序工作環(huán)境下程序的并發(fā)執(zhí)行與特征1、程序的并發(fā)執(zhí)行:多個(gè)程序交替執(zhí)行2、特征:(1)間斷性(2)非封閉性:機(jī)內(nèi)狀況有多個(gè)程序改變(3)不可再現(xiàn)性:運(yùn)行結(jié)果與速度有關(guān)三、進(jìn)程概念:可并發(fā)執(zhí)行的有獨(dú)立功能的程序在某個(gè)數(shù)據(jù)集合上的運(yùn)行過程1、進(jìn)程與程序的區(qū)別:程序是靜態(tài)的永久的,進(jìn)
2、程是動(dòng)態(tài)的暫時(shí)的進(jìn)程與程序的聯(lián)系:一個(gè)進(jìn)程可執(zhí)行多個(gè)程序一個(gè)程序可構(gòu)成多個(gè)進(jìn)程2、進(jìn)程的特征:①動(dòng)態(tài)性:進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過程,有生命周期②并發(fā)性:多個(gè)進(jìn)程能在一段時(shí)間內(nèi)同時(shí)運(yùn)行,資源共享③獨(dú)立性:進(jìn)程是系統(tǒng)分配資源的獨(dú)立單位,各進(jìn)程獨(dú)立運(yùn)行(它們的地址空間相互獨(dú)立)。注意:凡未建立進(jìn)程的程序,都不能作為一個(gè)獨(dú)立的單位參加運(yùn)行。進(jìn)程是分配資源的單位,線程是分配CPU的單位④異步性:由于進(jìn)程并發(fā)運(yùn)行相互制約,所以各自按獨(dú)立的、不可預(yù)知的速度向前推進(jìn)。⑤結(jié)構(gòu)性:PCB(進(jìn)程控制塊)組成程序段數(shù)據(jù)段PCB3、進(jìn)程的分類:系統(tǒng)進(jìn)程、用戶進(jìn)程4、進(jìn)
3、程的狀態(tài)與轉(zhuǎn)換進(jìn)程的3種基本狀態(tài):活動(dòng)狀態(tài)①就緒(準(zhǔn)備)狀態(tài)當(dāng)進(jìn)程已分配到除CPU以外的所有必要的資源后,只要能再獲得處理機(jī),便能立即執(zhí)行。在一個(gè)系統(tǒng)中,可以有多個(gè)進(jìn)程同時(shí)處于就緒狀態(tài),通常把它們排成一個(gè)隊(duì)列,稱為就緒隊(duì)列。②執(zhí)行狀態(tài)指進(jìn)程已獲得處理機(jī),其程序正在執(zhí)行。在單處理機(jī)系統(tǒng)中,最多只能有一個(gè)進(jìn)程處于正在執(zhí)行狀態(tài)。③阻塞(等待、睡眠)狀態(tài)進(jìn)程因發(fā)生某事件(等待某事件的發(fā)生,如請求I/O、申請緩沖空間等)不具備運(yùn)行條件,而暫停執(zhí)行時(shí)的狀態(tài),亦即進(jìn)程的執(zhí)行受到阻塞。通常將處于阻塞狀態(tài)的進(jìn)程排成一個(gè)隊(duì)列,稱為阻塞隊(duì)列。一般還增加兩個(gè)基本狀態(tài):④
4、新建狀態(tài):剛剛被創(chuàng)建,但未提交進(jìn)入就緒隊(duì)列尾部時(shí)的狀態(tài)11/11①退出狀態(tài):已被系統(tǒng)或進(jìn)程終止,等待善后處理后退出掛起狀態(tài)(靜止):暫不接受調(diào)度,并釋放部分系統(tǒng)資源,從內(nèi)存轉(zhuǎn)移到外存①就掛②等掛轉(zhuǎn)換類型及原因:就緒執(zhí)行等待退出新建就掛等掛進(jìn)程的狀態(tài)及其轉(zhuǎn)換注意:活動(dòng)狀態(tài)有兩個(gè)不可轉(zhuǎn)換兩個(gè)激活三個(gè)掛起兩個(gè)(新建后)提交4、進(jìn)程控制塊PCB(1)作用:創(chuàng)建時(shí)設(shè)置是進(jìn)程存在與否的唯一標(biāo)記OS依據(jù)PCB才能感知、管理、控制進(jìn)程(2)PCB內(nèi)容:進(jìn)程標(biāo)識(shí)符、進(jìn)程調(diào)度信息、處理機(jī)狀態(tài)信息、進(jìn)程控制信息下圖示出了PCB的內(nèi)容。主要有:進(jìn)程標(biāo)識(shí)符現(xiàn)行狀態(tài)現(xiàn)場保留
5、區(qū)程序與數(shù)據(jù)地址互斥與同步機(jī)構(gòu)進(jìn)程通信機(jī)構(gòu)進(jìn)程優(yōu)先數(shù)資源清單鏈接字(隊(duì)列指針)家族聯(lián)系11/11①進(jìn)程標(biāo)識(shí)符用于唯一地標(biāo)識(shí)一個(gè)進(jìn)程②家族關(guān)系用于說明本進(jìn)程與其它家族成員之間的關(guān)系③現(xiàn)行狀態(tài):說明進(jìn)程的當(dāng)前狀態(tài),以作為調(diào)度程序分配處理機(jī)的依據(jù)。當(dāng)進(jìn)程處于阻塞狀態(tài)時(shí),要在PCB中說明阻塞的原因;
④現(xiàn)場保留區(qū):用于保存進(jìn)程由執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài)時(shí)的CPU現(xiàn)場信息。⑤程序和數(shù)據(jù)地址:該進(jìn)程的程序和數(shù)據(jù)存放在內(nèi)存或外存中的地址。用以把進(jìn)程控制塊與其程序和數(shù)據(jù)聯(lián)系起來。⑥進(jìn)程的優(yōu)先級(jí)表示進(jìn)程使用CPU時(shí)優(yōu)先級(jí)別的一個(gè)整數(shù)。優(yōu)先級(jí)高的進(jìn)程可優(yōu)先獲得處理機(jī);⑦
6、互斥與同步機(jī)構(gòu)實(shí)現(xiàn)進(jìn)程間的互斥與同步時(shí)所必須的機(jī)構(gòu)。例如,信號(hào)量或鎖等;⑧資源清單它列出了進(jìn)程所需資源及當(dāng)前已分配到的資源;⑨鏈接字也稱為進(jìn)程隊(duì)列指針進(jìn)程的組織方式:通過鏈接(或索引)等方式形成就緒隊(duì)列(索引表)、等待隊(duì)列(索引表),便于對進(jìn)程進(jìn)行有效管理。一、進(jìn)程控制:定義——建立、撤消、狀態(tài)轉(zhuǎn)化1、幾個(gè)概念(1)原語(primitive)定義:完成某一特定功能的程序段,其執(zhí)行是不可分割的。換言之,在一個(gè)操作中的所有動(dòng)作,要么全做,要么全不做。特點(diǎn):不允許中斷,不允許并發(fā)(2)OS內(nèi)核:OS常駐內(nèi)存的程序和數(shù)據(jù)(3)內(nèi)核基本功能:由原語完成——
7、中斷處理進(jìn)程控制:建立、撤消、狀態(tài)轉(zhuǎn)化資源管理:時(shí)鐘、I/0設(shè)備、文件系統(tǒng)2、進(jìn)程創(chuàng)建和撤消原語(1)創(chuàng)建原語一個(gè)進(jìn)程可借助于創(chuàng)建原語來創(chuàng)建一個(gè)新進(jìn)程(父進(jìn)程,子進(jìn)程,進(jìn)程樹)。子進(jìn)程繼承父進(jìn)程的所有資源。創(chuàng)建一個(gè)新進(jìn)程的主要工作是:申請一空閑PCB→無空閑PCB,則創(chuàng)建失敗;否則產(chǎn)生PID(進(jìn)程標(biāo)識(shí))→申請必要的資源→初始化PCB→插入就緒隊(duì)列尾部(2)撤消進(jìn)程原語找出被撤消進(jìn)程的PCB→該進(jìn)程若正在執(zhí)行,則終止該進(jìn)程的執(zhí)行→該進(jìn)程若有子進(jìn)程,則撤消其所有子進(jìn)程→將該進(jìn)程所擁有的全部資源,歸還給父進(jìn)程或系統(tǒng)→11/11將被撤消進(jìn)程的PCB從所在
8、隊(duì)列(或鏈表)中清除,放回到空閑PCB隊(duì)列。(1)進(jìn)程的阻塞原語①進(jìn)程的阻塞是進(jìn)程自身的一種主動(dòng)行為:正在執(zhí)行的進(jìn)程,當(dāng)出現(xiàn)請求操作系統(tǒng)