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

下載本文檔

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

文檔簡(jiǎn)介

1第二部分進(jìn)程操作系統(tǒng)的主要任務(wù)是運(yùn)行程序——進(jìn)程管理為進(jìn)程分配資源讓進(jìn)程間交換信息保護(hù)進(jìn)程的資源不被其他進(jìn)程占用使多個(gè)進(jìn)程可以同步單/多[核]處理器的多道程序系統(tǒng)中,多個(gè)進(jìn)程可以同時(shí)交叉/同步執(zhí)行——并發(fā),它是應(yīng)用程序編寫和操作系統(tǒng)設(shè)計(jì)中的難題在一個(gè)進(jìn)程中引入(共享進(jìn)程資源的)多個(gè)線程,在提高系統(tǒng)的運(yùn)行效率的同時(shí),也增加了進(jìn)程管理的難度2第二部分導(dǎo)讀第3章進(jìn)程描述和控制操作系統(tǒng)的主要任務(wù)是進(jìn)程管理進(jìn)程在3種狀態(tài)間轉(zhuǎn)換——就緒、運(yùn)行、阻塞描述進(jìn)程的數(shù)據(jù)結(jié)構(gòu)——進(jìn)程控制塊(進(jìn)程表)進(jìn)程調(diào)度、進(jìn)程間的共享和同步本章介紹用于進(jìn)程管理的數(shù)據(jù)結(jié)構(gòu)和技術(shù)第4章線程進(jìn)程負(fù)責(zé)管理資源的所有權(quán)、線程負(fù)責(zé)指令流的執(zhí)行一個(gè)進(jìn)程可含多個(gè)線程,多線程技術(shù)可優(yōu)化程序結(jié)構(gòu)、提高系統(tǒng)性能第5/6章并發(fā):互斥與同步/死鎖與饑餓并發(fā)是多道程序操作系統(tǒng)的設(shè)計(jì)基礎(chǔ)支持并發(fā)的重要機(jī)制——信號(hào)量、管程和消息傳遞多進(jìn)程/線程共享資源——代碼、數(shù)據(jù)、物理資源(處理器、存儲(chǔ)器、I/O設(shè)備等)互斥——在一個(gè)時(shí)間內(nèi)只允許一個(gè)進(jìn)程/線程訪問共享資源同步——進(jìn)程/線程間交換信息協(xié)調(diào)動(dòng)作死鎖——多個(gè)進(jìn)程相互等待其他進(jìn)程的操作完成。死鎖難預(yù)測(cè)、無通用解決方法。處理死鎖問題的3個(gè)主要手段——預(yù)防、避免和檢測(cè)饑餓——一個(gè)就緒的進(jìn)程一直不能運(yùn)行(進(jìn)程調(diào)度問題)3第3章

進(jìn)程描述和控制內(nèi)容提要進(jìn)程的概念進(jìn)程的狀態(tài)進(jìn)程的描述進(jìn)程的控制操作系統(tǒng)的執(zhí)行安全問題(進(jìn)程的訪問權(quán)限)Unix的進(jìn)程管理

43.1

進(jìn)程概念順序與并發(fā)程序的順序執(zhí)行(單道單線程批處理)一個(gè)具有獨(dú)立功能的程序獨(dú)占處理機(jī)直至最終結(jié)束的過程順序執(zhí)行的特征順序性:只有前一個(gè)操作結(jié)束,才能執(zhí)行后續(xù)操作封閉性:程序運(yùn)行時(shí)獨(dú)占全機(jī)資源,執(zhí)行過程不受外界影響可再現(xiàn)性:結(jié)果與執(zhí)行速度無關(guān)符合現(xiàn)代計(jì)算機(jī)的馮諾依曼體系結(jié)構(gòu)的要求(程序的代碼和數(shù)據(jù)存儲(chǔ)在內(nèi)存,指令按順序執(zhí)行)程序的并發(fā)執(zhí)行(多道批處理,單道多線程批處理)指一組在邏輯上互相獨(dú)立的程序或程序段在執(zhí)行過程中,其執(zhí)行時(shí)間在宏觀上互相重疊,一個(gè)程序段的執(zhí)行尚未結(jié)束,另一個(gè)程序段的執(zhí)行已經(jīng)開始的這種執(zhí)行方式與計(jì)算機(jī)的馮諾依曼體系結(jié)構(gòu)的要求相悖5程序的并發(fā)執(zhí)行程序并發(fā)執(zhí)行的兩種情形多道程序系統(tǒng):多道程序的并發(fā)執(zhí)行單道程序也可包含若干能并發(fā)執(zhí)行的程序段,如:Read(a);Read(b);程序并發(fā)執(zhí)行的特征間斷性:共享資源→相互制約→執(zhí)行-暫停-執(zhí)行失去封閉性:一個(gè)程序的執(zhí)行受到其他程序的影響不可再現(xiàn)性:程序執(zhí)行的結(jié)果與其執(zhí)行的相對(duì)速度有關(guān),是不確定的好處——充分利用系統(tǒng)資源,提高系統(tǒng)處理能力壞處——破壞了計(jì)算機(jī)馮·諾依曼體系結(jié)構(gòu)的順序執(zhí)行特性,引起一系列難解決的問題(如互斥、同步、死鎖、饑餓)6進(jìn)程的定義進(jìn)程(process,n.過程/工序、vt.處理/加工、vi.列隊(duì)行進(jìn))進(jìn)程是程序的一次執(zhí)行進(jìn)程是正在運(yùn)行的一個(gè)程序?qū)嵗M(jìn)程是分配給處理器并由處理器執(zhí)行的實(shí)體(由兩個(gè)基本元素——程序代碼和相關(guān)數(shù)據(jù)集組成)進(jìn)程是可以和別的計(jì)算并發(fā)執(zhí)行的計(jì)算進(jìn)程是一個(gè)數(shù)據(jù)結(jié)構(gòu)及能在其上進(jìn)行操作的一個(gè)程序進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時(shí)所發(fā)生的活動(dòng)進(jìn)程是程序在一個(gè)數(shù)據(jù)集上的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位7進(jìn)程的特征動(dòng)態(tài)性:有一定的生命周期并發(fā)性:多個(gè)進(jìn)程實(shí)體,同時(shí)存在于內(nèi)存中,能在一段時(shí)間內(nèi)(不一定是同一時(shí)刻)同時(shí)運(yùn)行獨(dú)立性:進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位異步性:進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn),即多個(gè)進(jìn)程按異步方式運(yùn)行結(jié)構(gòu)特征:進(jìn)程實(shí)體是由程序段、數(shù)據(jù)段及進(jìn)程控制塊等部分組成——進(jìn)程映像(processimage)8進(jìn)程控制塊用來描述進(jìn)程用于進(jìn)程的管理與調(diào)度進(jìn)程控制塊(PCB=ProcessControlBlock)為下述信息的列表:標(biāo)識(shí)符(identifier)——唯一標(biāo)識(shí)進(jìn)程狀態(tài)(state)——進(jìn)程的當(dāng)前狀態(tài)(運(yùn)行/就緒/等待)優(yōu)先級(jí)(priority)——相對(duì)于其他進(jìn)程的優(yōu)先級(jí)別程序計(jì)數(shù)器(PC=ProgramCounter)——即將被執(zhí)行的下一條程序指令的地址內(nèi)存指針(memorypointers)——包括指向程序代碼、相關(guān)數(shù)據(jù)和共享內(nèi)存的指針上下文數(shù)據(jù)(contextdata)——進(jìn)程被中斷時(shí)處理器寄存器中的數(shù)據(jù)I/O狀態(tài)信息(I/Ostatusinformation)——包括顯式I/O請(qǐng)求、分配給進(jìn)程的I/O設(shè)備、被解除使用的文件列表等記帳信息(accountinginformation)——包括占用處理器時(shí)間、時(shí)鐘數(shù)總和、時(shí)間限制、賬號(hào)等93.2進(jìn)程狀態(tài)進(jìn)程并發(fā)執(zhí)行中會(huì)有哪些不同行為?軌跡(trace)——進(jìn)程執(zhí)行的指令序列分派程序(dispatcher)——讓處理器從一個(gè)進(jìn)程切換到另一個(gè)進(jìn)程,即進(jìn)程調(diào)度程序分派(CPU)程序10各進(jìn)程獨(dú)立運(yùn)行的軌跡11三個(gè)進(jìn)程并發(fā)執(zhí)行時(shí)的軌跡12進(jìn)程的狀態(tài)如何描述進(jìn)程在執(zhí)行過程中的不同行為及其變化?——建立進(jìn)程狀態(tài)模型(processstate

model)兩狀態(tài)模型——運(yùn)行態(tài)(running)、未運(yùn)行態(tài)(notrunning)三狀態(tài)模型——運(yùn)行態(tài)、就緒態(tài)(ready)、等待態(tài)/阻塞態(tài)(waiting/blocked),相當(dāng)于將兩狀態(tài)模型中的“未運(yùn)行態(tài)”進(jìn)一步劃分為“就緒態(tài)”和“阻塞態(tài)”。是進(jìn)程的三個(gè)基本狀態(tài)五狀態(tài)模型——運(yùn)行態(tài)、就緒態(tài)、等待態(tài)/阻塞態(tài)、新建態(tài)(new)、退出態(tài)(exit),相當(dāng)于在三狀態(tài)模型之上又增加了“新建”和“退出”兩個(gè)狀態(tài)六/七狀態(tài)模型——一種有掛起態(tài)的進(jìn)程模型。為節(jié)省內(nèi)存,可將部分處于阻塞態(tài)(和就緒態(tài))的進(jìn)程,從內(nèi)存中換出到(作為虛擬內(nèi)存一部分的)磁盤的掛起隊(duì)列中。為此,增加進(jìn)程的一個(gè)/兩個(gè)掛起態(tài)(suspendstate):(阻塞)掛起態(tài)/就緒掛起態(tài)和阻塞掛起態(tài)133.2.1

兩狀態(tài)進(jìn)程模型143.2.2

進(jìn)程的創(chuàng)建與終止OS創(chuàng)建一個(gè)進(jìn)程的工作建立管理進(jìn)程的數(shù)據(jù)結(jié)構(gòu)為進(jìn)程分配內(nèi)存空間創(chuàng)建進(jìn)程映像導(dǎo)致進(jìn)程創(chuàng)建的原因(P83表3.1)新的批處理作業(yè)——運(yùn)行新程序交互登錄——終端用戶登錄到系統(tǒng)(多用戶操作系統(tǒng))OS提供服務(wù)——操作系統(tǒng)為用戶創(chuàng)建進(jìn)程以提供服務(wù)(如控制打印機(jī))進(jìn)程派生——由現(xiàn)有進(jìn)程創(chuàng)建若干新進(jìn)程(可提高模塊化和開發(fā)并發(fā)性)15進(jìn)程的創(chuàng)建相關(guān)概念進(jìn)程派生(processspawning,產(chǎn)卵/大量生產(chǎn))——指OS為一進(jìn)程的顯式請(qǐng)求創(chuàng)建新進(jìn)程。如打印服務(wù)器進(jìn)程為每一個(gè)打印請(qǐng)求產(chǎn)生一個(gè)新進(jìn)程父進(jìn)程(parentprocess)——派生另一進(jìn)程的進(jìn)程子進(jìn)程(childprocess)——被派生的進(jìn)程進(jìn)程樹(processtree)——多級(jí)父子進(jìn)程構(gòu)成的樹狀結(jié)構(gòu)16進(jìn)程的終止原因(P84表3.2)批作業(yè)Halt指令或調(diào)用終止服務(wù)交互式用戶退出系統(tǒng),關(guān)閉終端用戶結(jié)束一個(gè)應(yīng)用程序錯(cuò)誤和故障:(運(yùn)行/等待)超時(shí)、內(nèi)存不足、越界、保護(hù)錯(cuò)誤、算術(shù)錯(cuò)誤、I/O失敗、無效指令、特權(quán)指令、數(shù)據(jù)誤用有的OS允許:由父進(jìn)程終止子進(jìn)程

當(dāng)父進(jìn)程終止時(shí)自動(dòng)終止其所有子進(jìn)程173.2.3五狀態(tài)模型圖3.618五狀態(tài)的排隊(duì)模型193.2.4

進(jìn)程的掛起狀態(tài)交換進(jìn)程映像整體地或部分地從主存轉(zhuǎn)移到輔存中(換出),或從輔存轉(zhuǎn)移到主存中(換入)。引入原因:實(shí)存不足:沒有使用虛存的系統(tǒng)中,多個(gè)進(jìn)程完全進(jìn)入主存CPU時(shí)間浪費(fèi):I/O速度比計(jì)算速度慢很多=>可能出現(xiàn)主存中的多個(gè)進(jìn)程全部阻塞等待I/O調(diào)度策略:其他作業(yè)因沒有主存空間不能投入運(yùn)行20進(jìn)程的掛起狀態(tài)(續(xù))交換(swapping):主存中沒有處于就緒態(tài)的進(jìn)程把主存中某個(gè)進(jìn)程的部分或全部移到(swapout)磁盤/固態(tài)硬盤——掛起(進(jìn)入掛起隊(duì)列)將掛起隊(duì)列中的一個(gè)進(jìn)程或新進(jìn)程移入(swapin)主存交換是一種I/O操作。過于頻繁的交換,可能導(dǎo)致系統(tǒng)整體性能的惡化21有掛起態(tài)的

進(jìn)程狀態(tài)

轉(zhuǎn)換圖6態(tài)模型7態(tài)模型22有掛起狀態(tài)的新轉(zhuǎn)換阻塞阻塞/掛起阻塞/掛起就緒/掛起就緒/掛起就緒就緒就緒/掛起還需考慮下列新轉(zhuǎn)換新建就緒/掛起阻塞/掛起阻塞運(yùn)行就緒/掛起各種狀態(tài)退出23掛起狀態(tài)的特點(diǎn)處于掛起態(tài)的進(jìn)程不能立即執(zhí)行被掛起的進(jìn)程可能正在等待一個(gè)事件可通過代理來掛起進(jìn)程(以阻止進(jìn)程執(zhí)行)被代理掛起的進(jìn)程,只能通過代理顯式地命令操作系統(tǒng),才能進(jìn)行狀態(tài)轉(zhuǎn)換24導(dǎo)致進(jìn)程掛起的原因(P90表3.3)交換(釋放內(nèi)存空間)交互式用戶請(qǐng)求(為了調(diào)試等)定時(shí)(如周期性執(zhí)行的進(jìn)程)父進(jìn)程請(qǐng)求(為檢查、修改、協(xié)調(diào)等)其他OS原因(如后臺(tái)進(jìn)程、問題進(jìn)程)253.3進(jìn)程描述操作系統(tǒng)是資源管理者進(jìn)程是資源分配的對(duì)象處理器I/OI/O主存P1P2PnI/O虛擬內(nèi)存計(jì)算機(jī)資源進(jìn)程與資源P1正在運(yùn)行(在內(nèi)存并占用CPU)P2就緒(在內(nèi)存等待)Pn被掛起(在外存等待調(diào)入內(nèi)存)263.3.1OS的控制結(jié)構(gòu)OS把進(jìn)程和系統(tǒng)資源當(dāng)作實(shí)體OS構(gòu)造、維護(hù)每個(gè)被管理實(shí)體的信息表273.3.2進(jìn)程控制結(jié)構(gòu)進(jìn)程的物理表示:進(jìn)程映像(ProcessImage)用戶程序用戶數(shù)據(jù)系統(tǒng)棧(跟蹤過程調(diào)用和過程間參數(shù)傳遞)進(jìn)程控制塊(ProcessControlBlock,PCB)——由OS維護(hù)的用于記錄和控制進(jìn)程屬性的集合進(jìn)程映像的位置:取決于OS采用的存儲(chǔ)管理方案整體在連續(xù)或不連續(xù)的主存區(qū)域中部分在主存中,主體在連續(xù)的輔存區(qū)域中28進(jìn)程屬性進(jìn)程標(biāo)識(shí)信息進(jìn)程標(biāo)識(shí)符(processID)父進(jìn)程標(biāo)識(shí)符用戶標(biāo)識(shí)符(userID)處理器狀態(tài)信息用戶可見寄存器控制和狀態(tài)寄存器棧指針(指向棧頂)29進(jìn)程屬性(續(xù))進(jìn)程控制信息調(diào)度和狀態(tài)信息(進(jìn)程狀態(tài),優(yōu)先級(jí),相關(guān)調(diào)度信息,等待的事件)數(shù)據(jù)結(jié)構(gòu)(鏈接到隊(duì)列、環(huán)或其他結(jié)構(gòu)的信息)進(jìn)程間通信進(jìn)程特權(quán)存儲(chǔ)管理(該進(jìn)程虛存空間的指針)資源所有權(quán)和使用情況30進(jìn)程控制塊的組織鏈表同一狀態(tài)的進(jìn)程其PCB成一鏈表,多個(gè)狀態(tài)對(duì)應(yīng)多個(gè)不同的鏈表各狀態(tài)的進(jìn)程形成不同的鏈表:就緒鏈表、阻塞鏈表31進(jìn)程鏈表結(jié)構(gòu)進(jìn)程調(diào)度中的排隊(duì)結(jié)構(gòu)可用鏈表方式實(shí)現(xiàn)32進(jìn)程控制塊的組織(續(xù))

索引(index)表同一狀態(tài)的進(jìn)程歸入一個(gè)索引表(由index指向PCB),多個(gè)狀態(tài)對(duì)應(yīng)多個(gè)不同的索引表各狀態(tài)的進(jìn)程形成不同的索引表:如就緒索引表、阻塞索引表等33虛存中的用戶進(jìn)程示意圖34進(jìn)程控制塊PCB的作用PCB=ProcessControlBlock(進(jìn)程控制塊)PCB是OS中最重要的數(shù)據(jù)結(jié)構(gòu),涉及進(jìn)程調(diào)度、資源分配、中斷處理、性能監(jiān)控和分析等PCB的訪問與保護(hù):通過專門的例程訪問PCB353.4進(jìn)程控制進(jìn)程控制的功能:完成進(jìn)程的創(chuàng)建、撤銷以及進(jìn)程的狀態(tài)轉(zhuǎn)換(進(jìn)程切換/調(diào)度)進(jìn)程控制由原語(primitive)完成

36原語內(nèi)核在執(zhí)行某些基本操作時(shí),往往利用原語操作實(shí)現(xiàn)原語(primitive):由若干條指令構(gòu)成、在系統(tǒng)模式下執(zhí)行,用于完成一定功能的一個(gè)過程原語是一種廣義指令,相當(dāng)于擴(kuò)充了的機(jī)器指令集原語是原子操作(atomicoperation),即一個(gè)操作中的所有動(dòng)作,要么全做,要么全不做原子操作是一個(gè)不可分割的操作!373.4.1執(zhí)行模式兩類指令特權(quán)指令(privilegedinstruction)

:允許操作系統(tǒng)使用,不允許一般用戶使用非特權(quán)指令(nonprivilegedinstruction)

:操作系統(tǒng)和用戶均可使用

兩種執(zhí)行模式(CPU狀態(tài))用戶模式(usermode)/用戶態(tài)(userstate)/目態(tài)(targetstate,目標(biāo)狀態(tài)):只能執(zhí)行非特權(quán)指令;用戶程序在用戶模式下運(yùn)行(在Intelx86CPU中對(duì)應(yīng)于保護(hù)模式下的特權(quán)級(jí)[PrivilegeLevel][1~]3)系統(tǒng)模式(systemmode)/系統(tǒng)態(tài)(systemstate)/內(nèi)核模式(kernelmode)/內(nèi)核態(tài)(kernelstate)/特權(quán)模式(privilegedmode)/管態(tài)(supervisorystate,監(jiān)管狀態(tài)):能執(zhí)行指令全集,具有改變CPU執(zhí)行狀態(tài)的能力;操作系統(tǒng)(內(nèi)核)在系統(tǒng)模式下運(yùn)行(在Intelx86CPU中對(duì)應(yīng)于保護(hù)模式下的特權(quán)級(jí)0)WindowsNT的系統(tǒng)結(jié)構(gòu)用戶模式對(duì)應(yīng)于IntelCPU保護(hù)模式下的特權(quán)級(jí)ring3內(nèi)核模式對(duì)應(yīng)于IntelCPU保護(hù)模式下的特權(quán)級(jí)ring0IRP=I/OReqestPacket,I/O請(qǐng)求包HAL=HardwareAbstractionLayer,硬件抽象層39執(zhí)行模式與內(nèi)核內(nèi)核(kernel)OS中包含重要系統(tǒng)功能的部分,通常駐留主存,在系統(tǒng)模式下運(yùn)行,響應(yīng)來自進(jìn)程的調(diào)用(系統(tǒng)功能調(diào)用)和來自設(shè)備的中斷內(nèi)核的典型功能進(jìn)程管理:進(jìn)程的創(chuàng)建、撤銷、調(diào)度、切換、同步和通信以及PCB的管理等存儲(chǔ)管理:給進(jìn)程分配空間、交換、管理頁和段I/O管理:緩沖區(qū)管理、給進(jìn)程分配I/O通道和設(shè)備支持功能:中斷處理、審計(jì)、監(jiān)視40程序狀態(tài)字執(zhí)行模式的標(biāo)識(shí):PSW(ProgramStatusWord,程序狀態(tài)字)中專設(shè)“模式標(biāo)識(shí)位”。x86中的PSW叫EFLAGS(擴(kuò)展標(biāo)志)寄存器(其中的NT、VM、VIP、VIF屬于操作模式位)80286新增加了16位寄存器MSW(MachineStatusWord,機(jī)器狀態(tài)字)位0為PE(ProtectionEnable,啟用保護(hù)[模式])標(biāo)志,當(dāng)置該位(=1)時(shí)開啟保護(hù)模式;清零時(shí)進(jìn)入實(shí)模式位3是TS(TaskSwitch,任務(wù)切換)標(biāo)志MSW在80386中被擴(kuò)展為32位的CR0,80386另外還增加了CR2和CR3,它們用于控制頁存儲(chǔ)器管理(虛擬內(nèi)存)、高速緩存的啟用/禁止/操作、保護(hù)模式操作等功能執(zhí)行模式的切換兩種模式的相互轉(zhuǎn)換用戶模式→系統(tǒng)模式:唯一途徑是通過中斷機(jī)制(在x86CPU中,具體可通過使用調(diào)用門指令CALL進(jìn)行代碼轉(zhuǎn)移來實(shí)現(xiàn))系統(tǒng)模式→用戶模式:可通過修改PSW實(shí)現(xiàn),如指令CHM(x86CPU中沒有此指令,但可通過遠(yuǎn)程返回指令RETF進(jìn)行代碼轉(zhuǎn)移來實(shí)現(xiàn))423.4.2

進(jìn)程創(chuàng)建與撤銷用原語操作實(shí)現(xiàn)創(chuàng)建原語的主要操作給新進(jìn)程分配一個(gè)唯一的進(jìn)程標(biāo)識(shí)號(hào)給進(jìn)程分配空間(進(jìn)程映像)初始化進(jìn)程控制塊設(shè)置正確的鏈接創(chuàng)建或擴(kuò)充其他數(shù)據(jù)結(jié)構(gòu)(如審計(jì)文件)進(jìn)程的撤銷原語撤銷該進(jìn)程的所有子進(jìn)程收回進(jìn)程所占用的資源撤銷該進(jìn)程的PCB433.4.3

進(jìn)程切換進(jìn)程切換操作系統(tǒng)指定一個(gè)進(jìn)程為運(yùn)行態(tài),并將CPU控制權(quán)交給該進(jìn)程進(jìn)程切換的時(shí)機(jī)當(dāng)OS從正在運(yùn)行的進(jìn)程那里獲得控制權(quán)時(shí),可能進(jìn)行進(jìn)程切換44導(dǎo)致OS獲得控制權(quán)的事件中斷時(shí)鐘中斷:時(shí)間片到I/O中斷:I/O完成,高優(yōu)先級(jí)進(jìn)程就緒內(nèi)存失效:調(diào)頁時(shí)阻塞(所需內(nèi)存地址不在主存)陷阱(trap)/異常(exception):當(dāng)前執(zhí)行的指令出現(xiàn)錯(cuò)誤(主要指在處理器和內(nèi)存內(nèi)部產(chǎn)生的軟中斷,一般稱為內(nèi)中斷)系統(tǒng)調(diào)用(如申請(qǐng)I/O操作):用戶進(jìn)程會(huì)被置為阻塞態(tài)(系統(tǒng)調(diào)用一般是通過[由操作系統(tǒng)規(guī)定的]特定中斷來實(shí)現(xiàn),如DOS的21h號(hào)中斷、Linux的80h號(hào)中斷)總之,只有通過[軟/硬或內(nèi)/外]中斷,操作系統(tǒng)才能獲得控制權(quán)45進(jìn)程切換與執(zhí)行模式切換CPU響應(yīng)系統(tǒng)中斷時(shí)所做工作:(硬件)保存當(dāng)前正在執(zhí)行的程序的上下文環(huán)境把程序計(jì)數(shù)器置成中斷處理程序的開始地址從用戶模式切換到內(nèi)核模式,使得中斷處理代碼可以執(zhí)行特權(quán)指令中斷引發(fā)模式切換中斷并不一定引發(fā)進(jìn)程切換46進(jìn)程狀態(tài)的變化進(jìn)程切換的步驟保護(hù)處理器上下文環(huán)境(到哪里去?)更新當(dāng)前處于運(yùn)行態(tài)進(jìn)程PCB的控制信息(修改狀態(tài))該進(jìn)程PCB掛入相應(yīng)隊(duì)列(會(huì)是哪個(gè)隊(duì)列?)選擇一個(gè)就緒進(jìn)程(涉及多種不同算法)更新所選進(jìn)程的PCB(包括狀態(tài))更新存儲(chǔ)管理數(shù)據(jù)結(jié)構(gòu)(涉及地址轉(zhuǎn)換)恢復(fù)被選中進(jìn)程的處理器上下文環(huán)境(從哪里來?)473.5

OS的執(zhí)行非進(jìn)程內(nèi)核(Non-processkernel)——傳統(tǒng)方法進(jìn)程概念僅適用于用戶程序OS代碼是在特權(quán)模式下工作的獨(dú)立實(shí)體48OS的執(zhí)行(續(xù))在用戶進(jìn)程中執(zhí)行(ExecutionWithinUserProcesses)OS是用戶進(jìn)程調(diào)用的一組例程,OS代碼為所有進(jìn)程映像共享執(zhí)行OS代碼時(shí)切換到系統(tǒng)模式(不需進(jìn)程切換)49OS的執(zhí)行(續(xù))基于進(jìn)程的OS(Process-BasedOperatingSystem)主要內(nèi)核功能被組織成獨(dú)立進(jìn)程適合多處理器和多機(jī)環(huán)境503.6安全問題進(jìn)程權(quán)限最高權(quán)限——(系統(tǒng))管理員、超級(jí)用戶、根用戶關(guān)鍵問題——阻止/探測(cè)用戶或惡意程序獲取系統(tǒng)權(quán)限的企圖513.6.1系統(tǒng)訪問威脅分類:入侵者、惡意軟件入侵者——通常指黑客和解密高手冒充者——穿透系統(tǒng)的訪問控制,冒用合法賬戶的帳號(hào)濫用職權(quán)者——合法用戶濫用權(quán)限或訪問未授權(quán)的數(shù)據(jù)秘密用戶——利用系統(tǒng)的管理控制來逃避審計(jì)和訪問限制惡意軟件——利用計(jì)算機(jī)系統(tǒng)漏洞的程序分類:寄生、獨(dú)立;能進(jìn)行復(fù)制(如病毒、蠕蟲)、不能自我復(fù)制(如邏輯炸彈、后門、僵尸)寄生——需要宿主程序,為程序片斷。如病毒、邏輯炸彈、后門獨(dú)立——可被操作系統(tǒng)調(diào)度運(yùn)行的獨(dú)立程序,如蠕蟲、僵尸523.6.2對(duì)抗措施入侵檢測(cè)——IDS(Intrusiondetectionsystems,入侵檢測(cè)系統(tǒng))組成——感應(yīng)器(收集數(shù)據(jù))、分析器(判斷入侵是否發(fā)生)、用戶界面(用于查看和控制)分類——基于宿主、基于網(wǎng)絡(luò)用戶認(rèn)證(authentication)——安全的基礎(chǔ)和主體。方法:知道——密碼、身份證號(hào)碼、預(yù)知的問題答案擁有——通行卡、智能卡、物理鑰匙自身(靜態(tài)生物識(shí)別)——指紋、虹膜、人臉行為(動(dòng)態(tài)生物識(shí)別)——語音模式、筆跡特征、輸入節(jié)奏訪問控制——通過對(duì)用戶授權(quán),調(diào)節(jié)用戶與系統(tǒng)資源之間的關(guān)系防火墻——保護(hù)本地系統(tǒng)和網(wǎng)絡(luò)不受外部網(wǎng)絡(luò)的安全威脅。傳統(tǒng)的防火墻是一種專用計(jì)算機(jī),是本地系統(tǒng)與外部網(wǎng)絡(luò)的接口(世界最大的防火墻在中國(guó)的國(guó)安部)533.7UnixSVR4進(jìn)程管理操作系統(tǒng)的大部分在用戶進(jìn)程環(huán)境中執(zhí)行543.7.1Unix進(jìn)程狀態(tài)及轉(zhuǎn)換9態(tài)模型——7態(tài)模型的變形兩個(gè)運(yùn)行態(tài)——內(nèi)核&用戶兩個(gè)就緒態(tài)——內(nèi)存&搶占553.7.2UnixSVR4進(jìn)程描述進(jìn)程映像由三部分組成用戶級(jí)上下文:進(jìn)程正文(代碼)、進(jìn)程數(shù)據(jù)、用戶棧、共享內(nèi)存區(qū)寄存器上下文:程序計(jì)數(shù)器、狀態(tài)寄存器、棧指針、通用寄存器系統(tǒng)級(jí)上下文:進(jìn)程表項(xiàng)、U區(qū)、本進(jìn)程的內(nèi)存區(qū)表、內(nèi)核棧563.7.3UnixSVR4進(jìn)程控制進(jìn)程創(chuàng)建(由父進(jìn)程派生):fork()(分叉、派生)為新進(jìn)程分配一個(gè)空閑的進(jìn)程表項(xiàng)為新進(jìn)程指定一個(gè)唯一的進(jìn)程ID拷貝父進(jìn)程的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論