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

下載本文檔

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

文檔簡介

進(jìn)程的描述與控制2023-2026ONEKEEPVIEWREPORTINGWENKUDESIGNWENKUDESIGNWENKUDESIGNWENKUDESIGNWENKU目錄CATALOGUE進(jìn)程基本概念進(jìn)程描述方法進(jìn)程控制原語及操作線程概念及多線程模型進(jìn)程同步與互斥問題死鎖問題及處理方法進(jìn)程基本概念PART01動態(tài)性進(jìn)程是程序的執(zhí)行過程,具有生命周期,包括創(chuàng)建、就緒、運(yùn)行、阻塞和終止等狀態(tài)。進(jìn)程定義進(jìn)程是操作系統(tǒng)中進(jìn)行資源分配和調(diào)度的基本單位,它是程序的執(zhí)行過程,具有動態(tài)性、并發(fā)性、獨(dú)立性和異步性等特征。并發(fā)性多個進(jìn)程可以在同一時間段內(nèi)并發(fā)執(zhí)行,提高系統(tǒng)資源利用率。異步性進(jìn)程的執(zhí)行順序和執(zhí)行時間是不確定的,由操作系統(tǒng)根據(jù)調(diào)度算法和資源情況來決定。獨(dú)立性進(jìn)程是操作系統(tǒng)中獨(dú)立存在的實(shí)體,擁有獨(dú)立的內(nèi)存空間和系統(tǒng)資源。進(jìn)程定義及特征程序是靜態(tài)的指令集合,而進(jìn)程是程序的執(zhí)行過程,具有動態(tài)性。程序可以脫離機(jī)器長期保存,而進(jìn)程是暫時的,隨著程序的執(zhí)行而創(chuàng)建和消亡。進(jìn)程是程序的執(zhí)行過程,程序是進(jìn)程的代碼部分。一個程序可以對應(yīng)多個進(jìn)程,而一個進(jìn)程只能對應(yīng)一個程序。進(jìn)程與程序關(guān)系程序與進(jìn)程的聯(lián)系程序與進(jìn)程的區(qū)別進(jìn)程的狀態(tài)包括創(chuàng)建態(tài)、就緒態(tài)、運(yùn)行態(tài)、阻塞態(tài)和終止態(tài)。進(jìn)程狀態(tài)進(jìn)程正在被創(chuàng)建時的狀態(tài)。創(chuàng)建態(tài)進(jìn)程已分配到除CPU以外的所有必要資源,等待獲得CPU時的狀態(tài)。就緒態(tài)進(jìn)程狀態(tài)及轉(zhuǎn)換運(yùn)行態(tài):進(jìn)程獲得CPU并正在執(zhí)行時的狀態(tài)。阻塞態(tài):進(jìn)程因等待某種事件發(fā)生(如I/O操作)而暫時不能執(zhí)行時的狀態(tài)。終止態(tài):進(jìn)程已完成其任務(wù)或遇到無法克服的錯誤而終止執(zhí)行時的狀態(tài)。狀態(tài)轉(zhuǎn)換:進(jìn)程的狀態(tài)轉(zhuǎn)換包括創(chuàng)建、就緒、運(yùn)行、阻塞和終止等狀態(tài)之間的轉(zhuǎn)換。例如,當(dāng)一個新的進(jìn)程被創(chuàng)建時,它進(jìn)入創(chuàng)建態(tài);當(dāng)它被調(diào)度到CPU上執(zhí)行時,它進(jìn)入運(yùn)行態(tài);當(dāng)它等待某種事件發(fā)生時,它進(jìn)入阻塞態(tài);當(dāng)它完成任務(wù)或遇到錯誤時,它進(jìn)入終止態(tài)。進(jìn)程狀態(tài)及轉(zhuǎn)換進(jìn)程描述方法PART02PCB是進(jìn)程存在的唯一標(biāo)識,包含進(jìn)程的標(biāo)識符、狀態(tài)、優(yōu)先級等控制和管理信息。PCB的作用PCB的組織方式PCB的內(nèi)容PCB可以采用線性方式或鏈接方式進(jìn)行組織,以便于對進(jìn)程進(jìn)行查找和管理。PCB通常包含進(jìn)程標(biāo)識符、處理機(jī)狀態(tài)、進(jìn)程調(diào)度信息、進(jìn)程控制信息等。030201進(jìn)程控制塊PCB將處于同一狀態(tài)的所有進(jìn)程的PCB鏈接在一起的數(shù)據(jù)結(jié)構(gòu)稱為進(jìn)程隊(duì)列。進(jìn)程隊(duì)列將系統(tǒng)中所有進(jìn)程的PCB鏈接在一起的數(shù)據(jù)結(jié)構(gòu)稱為進(jìn)程鏈表。進(jìn)程鏈表對進(jìn)程隊(duì)列和鏈表的主要操作包括創(chuàng)建、撤銷、阻塞、喚醒等。隊(duì)列與鏈表的操作進(jìn)程隊(duì)列與鏈表進(jìn)程間通信與同步機(jī)制進(jìn)程間通信是指在不同進(jìn)程之間傳遞數(shù)據(jù)和信息的技術(shù),常見的進(jìn)程間通信方式有管道、消息隊(duì)列、信號量等。同步機(jī)制同步機(jī)制用于協(xié)調(diào)多個進(jìn)程之間的執(zhí)行順序,以確保它們能夠正確地共享資源和協(xié)同工作。常見的同步機(jī)制有互斥鎖、條件變量、信號量等。進(jìn)程間通信與同步的實(shí)現(xiàn)不同的操作系統(tǒng)提供了不同的進(jìn)程間通信和同步機(jī)制的實(shí)現(xiàn)方式,例如Unix/Linux中的管道、FIFO、消息隊(duì)列、信號量等,Windows中的郵槽、命名管道等。進(jìn)程間通信進(jìn)程控制原語及操作PART03創(chuàng)建原語Create01創(chuàng)建一個新的進(jìn)程映像,包括PCB和相應(yīng)的程序、數(shù)據(jù)等02分配必要的資源,如內(nèi)存空間、I/O設(shè)備等將新進(jìn)程的狀態(tài)設(shè)置為就緒態(tài),并將其插入就緒隊(duì)列03若進(jìn)程處于執(zhí)行狀態(tài),則立即停止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真,以指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度若進(jìn)程還有子孫進(jìn)程,則應(yīng)將其所有子孫進(jìn)程予以終止將被終止進(jìn)程(PCB)從所在隊(duì)列(或鏈表)中移將該進(jìn)程所擁有的全部資源,或者歸還給其父進(jìn)程或系統(tǒng),或者歸還給創(chuàng)建該進(jìn)程的用戶從PCB集合中找到要終止的進(jìn)程的PCB終止原語Terminate阻塞原語Block當(dāng)進(jìn)程由于某種原因不能繼續(xù)運(yùn)行時,將調(diào)用阻塞原語Block把自己阻塞。具體執(zhí)行過程是:立即停止當(dāng)前進(jìn)程的執(zhí)行;把進(jìn)程控制塊中的現(xiàn)行狀態(tài)由“執(zhí)行”改為“阻塞”,并將其插入到具有相同實(shí)體的阻塞隊(duì)列中。喚醒原語Wakeup當(dāng)被阻塞的進(jìn)程所期待的事件出現(xiàn)時,如I/O完成或者其所期待的數(shù)據(jù)已經(jīng)到達(dá),則由有關(guān)進(jìn)程(比如,用完并釋放了該I/O設(shè)備的進(jìn)程)調(diào)用喚醒原語Wakeup,將等待該事件的進(jìn)程喚醒。具體執(zhí)行過程是:把被阻塞的進(jìn)程從等待該事件的阻塞隊(duì)列中移出;將其PCB中的現(xiàn)行狀態(tài)由“阻塞”改為“就緒”,然后再將該P(yáng)CB插入到就緒隊(duì)列中。阻塞原語Block和喚醒原語Wakeup掛起原語Suspend將指定進(jìn)程或處于阻塞狀態(tài)的同類進(jìn)程掛起。具體執(zhí)行過程是:檢查被掛起進(jìn)程的狀態(tài),若處于活動狀態(tài),則將其改為靜止?fàn)顟B(tài);若采用的是“掛起是獨(dú)立的”方式,則應(yīng)利用某種機(jī)制使該進(jìn)程以后不再被調(diào)度;若采用的是“掛起是下屬的”方式,則應(yīng)將其父進(jìn)程也掛起;若被掛起的進(jìn)程正在執(zhí)行,則應(yīng)立即停止執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真,以指示該進(jìn)程被掛起后應(yīng)重新進(jìn)行調(diào)度。激活原語Activate將指定進(jìn)程激活。具體執(zhí)行過程是:把指定進(jìn)程從靜止隊(duì)列中移出;若采用“激活是獨(dú)立的”方式,則應(yīng)再將進(jìn)程的靜止?fàn)顟B(tài)改為活動狀態(tài);若采用“激活是下屬的”方式,則應(yīng)將其所有祖先也都激活;如果采用的是“多層激活”方式,則應(yīng)將其所有子孫進(jìn)程都激活。掛起原語Suspend和激活原語Activate線程概念及多線程模型PART04ABCD線程定義及屬性與同屬一個進(jìn)程的其他線程共享進(jìn)程所擁有的全部資源。線程是進(jìn)程內(nèi)的一個執(zhí)行單元,是進(jìn)程內(nèi)可調(diào)度實(shí)體。線程有就緒、阻塞和運(yùn)行三種基本狀態(tài),也有創(chuàng)建狀態(tài)和終止?fàn)顟B(tài)。每個線程有自己的線程ID、寄存器組值、棧和棧指針、程序計(jì)數(shù)器PC、局部存儲區(qū)等。用戶級線程ULT與內(nèi)核級線程KLT用戶級線程ULT不依賴于操作系統(tǒng)核心,由應(yīng)用進(jìn)程利用線程庫提供創(chuàng)建、同步、調(diào)度和管理線程的函數(shù)來控制用戶線程。內(nèi)核級線程KLT依賴于操作系統(tǒng)核心,由內(nèi)核的內(nèi)部需求進(jìn)行創(chuàng)建和撤銷。多對一模型多個用戶級線程映射到一個內(nèi)核級線程,線程管理在用戶空間完成,內(nèi)核意識不到多線程的存在。一對一模型一個用戶級線程映射到一個內(nèi)核級線程,每個用戶進(jìn)程有與用戶級線程同數(shù)量的內(nèi)核級線程。多對多模型n個用戶級線程映射到m個內(nèi)核級線程(n>=m),克服了多對一模型和一對一模型并發(fā)度小的缺點(diǎn),又充分利用了多核處理器資源。多線程模型比較進(jìn)程同步與互斥問題PART05臨界區(qū)問題多個進(jìn)程同時訪問共享資源時,可能會導(dǎo)致數(shù)據(jù)不一致或資源訪問沖突。解決方案通過同步機(jī)制來協(xié)調(diào)進(jìn)程的執(zhí)行順序,確保同一時間只有一個進(jìn)程能夠訪問臨界區(qū)。臨界區(qū)問題與解決方案信號量是一個整型變量,用于表示可用資源的數(shù)量或進(jìn)程的執(zhí)行狀態(tài)。信號量定義通過P操作申請資源,若資源可用則獲取資源并繼續(xù)執(zhí)行;通過V操作釋放資源,使其他等待的進(jìn)程得以執(zhí)行。P/V操作實(shí)現(xiàn)進(jìn)程間的同步與互斥,保證對共享資源的正確訪問。信號量的作用信號量機(jī)制Semaphore管程是一種特殊的軟件模塊,提供了一組公共變量和同步操作,用于實(shí)現(xiàn)進(jìn)程間的同步與互斥。管程定義管程由Monitor結(jié)構(gòu)和過程兩部分組成,Monitor結(jié)構(gòu)包括共享變量和同步隊(duì)列,過程實(shí)現(xiàn)對共享變量的操作。Monitor結(jié)構(gòu)進(jìn)程通過調(diào)用管程的過程來訪問共享變量,管程通過同步隊(duì)列和條件變量來協(xié)調(diào)進(jìn)程的執(zhí)行順序,確保對共享變量的正確訪問。Monitor工作原理管程Monitor實(shí)現(xiàn)同步互斥死鎖問題及處理方法PART06死鎖是指兩個或兩個以上的進(jìn)程在執(zhí)行過程中,由于競爭資源或者由于彼此通信而造成的一種阻塞的現(xiàn)象,若無外力作用,它們都將無法向前推進(jìn)。死鎖概念互斥條件、請求和保持條件、不剝奪條件、環(huán)路等待條件。產(chǎn)生條件死鎖概念及產(chǎn)生條件破壞互斥條件允許進(jìn)程同時訪問某些資源。但是,有些資源是不能被多個進(jìn)程同時訪問的,這是由資源本身屬性所決定的,因此,這種辦法通常不可行。破壞不剝奪條件當(dāng)一進(jìn)程占有的資源又被其他進(jìn)程請求時,可以采用資源剝奪方式。破壞環(huán)路等待條件為了破壞環(huán)路等待條件,可采用順序資源分配法。首先給系統(tǒng)中的資源編號,規(guī)定每個進(jìn)程必須按編號遞增的順序請求資源,同類資源(即編號相同的資源)一次申請完。破壞請求和保持條件進(jìn)程在運(yùn)行前申請得到所有的資源,在其所需資源未滿足前,不使其投入運(yùn)行。一旦投入運(yùn)行后,這些資源就一直歸它所有,該進(jìn)程就不會請求其他任何資源了。死鎖預(yù)防策略分析銀行家算法該算法是由艾茲格·迪杰斯特拉在1965年為T.H.E.系統(tǒng)設(shè)計(jì)的一種避免死鎖產(chǎn)生的算法。它以一個銀行借貸系統(tǒng)的模擬來實(shí)現(xiàn)資源的分配和回收,保證系統(tǒng)的安全運(yùn)行。安全性算法通過判斷系統(tǒng)是否處于安全狀態(tài)來避免死鎖的發(fā)生。如果系統(tǒng)處于安全狀態(tài),則可以分配資源;否則,不分配資源。死鎖避免算法介紹死鎖檢測與恢復(fù)方法通過定時運(yùn)行死鎖檢測算法來發(fā)現(xiàn)死鎖。常見的死鎖檢測算法有資源分配圖算法和銀行家算法等。死鎖檢測當(dāng)檢測到死鎖時,需要采取一些措施來恢復(fù)系統(tǒng)的正常運(yùn)行。常見的死鎖恢復(fù)方法有進(jìn)程終止、資源搶占和進(jìn)程

溫馨提示

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

評論

0/150

提交評論