操作系統(tǒng)2 進(jìn)程管理

二、進(jìn)程管理
1.程序執(zhí)行的表示方法

2.進(jìn)程(可擁有資源的獨(dú)立單位)
2.1特征:動(dòng)態(tài)性、并發(fā)性、獨(dú)立性、異步性、結(jié)構(gòu)性
2.2狀態(tài):創(chuàng)建、就緒、執(zhí)行、阻塞

2.3數(shù)據(jù)結(jié)構(gòu):內(nèi)存表、設(shè)備表、文件表和進(jìn)程表(進(jìn)程控制塊PCB)
PCB的作用:作為獨(dú)立運(yùn)行基本單位的標(biāo)志、能實(shí)現(xiàn)間斷性運(yùn)行方式、提供進(jìn)程管理所需要的信息、提供進(jìn)程調(diào)度所需要的信息、實(shí)現(xiàn)與其它進(jìn)程的同步與通信。
PCB的結(jié)構(gòu):

PCB的組織方式:

3、進(jìn)程控制
3.1進(jìn)程的層次結(jié)構(gòu)與進(jìn)程圖

3.2進(jìn)程創(chuàng)建
引起進(jìn)程創(chuàng)建的事件:用戶登錄、作業(yè)調(diào)度、提供服務(wù)、應(yīng)用請(qǐng)求
創(chuàng)建過(guò)程:OS調(diào)用進(jìn)程創(chuàng)建原語(yǔ)Creat
(1) 申請(qǐng)空白PCB,為新進(jìn)程申請(qǐng)獲得唯一的數(shù)字標(biāo)識(shí)符,并從PCB集合中索取一個(gè)空白PCB。
(2) 為新進(jìn)程分配其運(yùn)行所需的資源,包括各種物理和邏輯資源,如內(nèi)存、文件、I/O設(shè)備和CPU時(shí)間等。
(3) 初始化進(jìn)程控制塊(PCB)。
(4) 如果進(jìn)程就緒隊(duì)列能夠接納新進(jìn)程,便將新進(jìn)程插入就緒隊(duì)列。
3.3進(jìn)程終止
? 引起進(jìn)程終止的事件:正常結(jié)束、異常結(jié)束、外界干預(yù)
??終止過(guò)程:OS調(diào)用進(jìn)程終止原語(yǔ)
(1) 根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從PCB集合中檢索出該進(jìn)程的PCB,從中讀出該進(jìn)程的狀態(tài);
(2) 若被終止進(jìn)程正處于執(zhí)行狀態(tài),應(yīng)立即終止該進(jìn)程的執(zhí)行,并置調(diào)度標(biāo)志為真,用于指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度;
(3) 若該進(jìn)程還有子孫進(jìn)程,還應(yīng)將其所有子孫進(jìn)程也都予以終止,以防它們成為不可控的進(jìn)程;
(4) 將被終止進(jìn)程所擁有的全部資源或者歸還給其父進(jìn)程,或者歸還給系統(tǒng);
(5) 將被終止進(jìn)程(PCB)從所在隊(duì)列(或鏈表)中移出,等待其它程序來(lái)搜集信息。
3.4進(jìn)程阻塞與喚醒
阻塞:進(jìn)程調(diào)用阻塞原語(yǔ)block將自己阻塞,進(jìn)程阻塞是主動(dòng)行為
喚醒:有關(guān)進(jìn)程調(diào)用喚醒原語(yǔ)wakeup,等待該事件的進(jìn)程喚醒,進(jìn)程喚醒是被動(dòng)行為
3.5進(jìn)程的掛起與激活
掛起:OS利用掛起原語(yǔ)suspend將指定進(jìn)程或處于阻塞的進(jìn)程掛起
激活:OS將利用激活原語(yǔ)active將指定進(jìn)程激活
3.6原語(yǔ):由若干指令組成,用于完成一定功能。具有不可分割性,執(zhí)行過(guò)程中不允許被中斷。
4. 線程(調(diào)度和分派的基本單位)
4.1進(jìn)程與線程的比較:
??進(jìn)程是可擁有資源的獨(dú)立單位
??線程是調(diào)度和分派的基本單位。
擁有并發(fā)性、獨(dú)立性,支持多處理機(jī)系統(tǒng)
??線程的引入:減少程序并發(fā)執(zhí)行時(shí)所付出的時(shí)空開(kāi)銷,使OS具有更好的并發(fā)性。

4.2線程的狀態(tài)(執(zhí)行、就緒、阻塞)和線程控制塊(TCB)
4.3多線程O(píng)S中的進(jìn)程屬性
(1)擁有資源的基本單位。
(2)多個(gè)線程可并發(fā)執(zhí)行。
(3)進(jìn)程已不是可執(zhí)行的實(shí)體。
4.4線?程?的?實(shí)?現(xiàn)
?

5.多核、多線程與超線程
