當(dāng)前位置:
首頁(yè) >
[OS复习]进程管理2
發(fā)布時(shí)間:2025/3/15
31
豆豆
生活随笔
收集整理的這篇文章主要介紹了
[OS复习]进程管理2
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
問(wèn)題:多個(gè)進(jìn)程競(jìng)爭(zhēng)內(nèi)存資源
方案二:采用虛擬存儲(chǔ)技術(shù),每個(gè)進(jìn)程只能裝入一部分程序和數(shù)據(jù)(存儲(chǔ)管理部分)
新創(chuàng)建的進(jìn)程;或換入一個(gè)以前掛起的進(jìn)程。通常為避免增加系統(tǒng)負(fù)載,系統(tǒng)會(huì)換入一個(gè)以前掛起的進(jìn)程執(zhí)行。
具有掛起狀態(tài)的狀態(tài)轉(zhuǎn)換模型 注: 1.阻塞->阻塞/掛起 :OS通常將阻塞進(jìn)程換出,以騰出內(nèi)存空間 2.阻塞/掛起->就緒/掛起:當(dāng)阻塞/掛起進(jìn)程等待的事件發(fā)生時(shí),可以將其轉(zhuǎn)換為就緒/掛起 3.就緒/掛起->就緒:OS需要調(diào)入一個(gè)進(jìn)程執(zhí)行.
系統(tǒng)模式->用戶模式 :執(zhí)行完系統(tǒng)調(diào)用的功能,返回到用戶程序
特殊情況:程序執(zhí)行到結(jié)束語(yǔ)句時(shí),切換到系統(tǒng)模式,不再返回到用戶程序.
2.3.3 操作系統(tǒng)內(nèi)核(Kernel) 操作系統(tǒng)的核心,是基于硬件的第一層軟件擴(kuò)充,提供操作系統(tǒng)最基本的功能,是操作系統(tǒng)工作的基礎(chǔ)。現(xiàn)代操作系統(tǒng)設(shè)計(jì)中,為減少系統(tǒng)本身的開(kāi)銷,往往將一些與硬件緊密相關(guān)的(如中斷處理程序、設(shè)備驅(qū)動(dòng)程序等)、基本的、公共的、運(yùn)行頻率較高的模塊(如時(shí)鐘管理、進(jìn)程調(diào)度等)以及關(guān)鍵性數(shù)據(jù)結(jié)構(gòu)獨(dú)立開(kāi)來(lái),使之常駐內(nèi)存,并對(duì)它們進(jìn)行特殊保護(hù)。通常把這一部分稱為操作系統(tǒng)的內(nèi)核。
##:用戶通過(guò)系統(tǒng)調(diào)用訪問(wèn)操作系統(tǒng)的功能,這些功能最終都通過(guò)操作系統(tǒng)內(nèi)核實(shí)現(xiàn)。 ##:不同的操作系統(tǒng)對(duì)內(nèi)核的定義和功能范圍的設(shè)定是不同的(操作系統(tǒng)內(nèi)核定義的理解不同)。
一般地,操作系統(tǒng)內(nèi)核的功能可以概括地劃分為資源管理功能和支撐功能。
##:資源管理,進(jìn)程管理(進(jìn)程創(chuàng)建和終止、調(diào)度、狀態(tài)轉(zhuǎn)換、同步和通信、管理PCB)、存儲(chǔ)管理(為進(jìn)程分配地址空間、對(duì)換、段/頁(yè)管理)和I/O設(shè)備管理(緩存管理、為進(jìn)程分配I/O通道和設(shè)備) ##:支撐功能,中斷處理、統(tǒng)計(jì)、監(jiān)測(cè)、時(shí)鐘管理、原語(yǔ)操作等。?
##:交互式用戶“注銷” ##:停止進(jìn)程(應(yīng)用程序)的執(zhí)行 ##:遇到錯(cuò)誤或故障
舉例:進(jìn)程A切換到進(jìn)程B的步驟: (1)首先,保護(hù)進(jìn)程A的現(xiàn)場(chǎng),將進(jìn)程A的當(dāng)前運(yùn)行信息(如程序執(zhí)行到的當(dāng)前位置,程序狀態(tài)字,所有的寄存器值等)保存到進(jìn)程A的PCB中。 (2)然后,恢復(fù)進(jìn)程B的現(xiàn)場(chǎng),從進(jìn)程B的PCB中獲取其執(zhí)行信息,將這些信息寫(xiě)入相應(yīng)的寄存器中,程序計(jì)數(shù)器指向進(jìn)程B將執(zhí)行的下一條指令。進(jìn)程B可能第一次開(kāi)始執(zhí)行,也可能是被中斷過(guò)的進(jìn)程,恢復(fù)執(zhí)行。不論是哪一種情況,進(jìn)程B的執(zhí)行信息都能在其PCB中找到。?
##: 處理機(jī)利用率,盡量提高處理機(jī)的利用率;
##: 提高系統(tǒng)吞吐量;
##: 盡量減少進(jìn)程的響應(yīng)時(shí)間
截止時(shí)間是指,實(shí)時(shí)系統(tǒng)中,某任務(wù)必須開(kāi)始執(zhí)行的最遲時(shí)間(開(kāi)始截止時(shí)間),或必須完成的最遲時(shí)間(完成截止時(shí)間)。常用于評(píng)價(jià)實(shí)時(shí)系統(tǒng)的性能。 ## 滿足系統(tǒng)的需求:系統(tǒng)吞吐量、處理機(jī)利用率、各類資源的平衡使用、公平性及優(yōu)先級(jí)?
吞吐量是指指單位時(shí)間內(nèi)系統(tǒng)所完成的作業(yè)數(shù),常用于評(píng)價(jià)批處理系統(tǒng)的性能。 處理機(jī)利用率是指,大、中型多用戶系統(tǒng),由于處理機(jī)價(jià)格昂貴,處理機(jī)利用率是衡量系統(tǒng)性能的一個(gè)重要指標(biāo),單用戶微機(jī)或某些實(shí)時(shí)系統(tǒng),則并非很重要。? 各類資源的平衡使用,多道程序系統(tǒng)的目標(biāo)之一就是為了提高系統(tǒng)資源的利用率,因此,調(diào)度算法有責(zé)任使系統(tǒng)中的各種資源都盡量處于忙碌狀態(tài)。該原則同時(shí)適用于長(zhǎng)程調(diào)度和中程調(diào)度,因?yàn)樗鼈兛梢詻Q定哪些作業(yè)(進(jìn)程)可以進(jìn)入內(nèi)存,可以考慮系統(tǒng)資源的均衡使用。? 公平性是指,調(diào)度算法應(yīng)該對(duì)所有進(jìn)程公平,不偏袒任何進(jìn)程。
優(yōu)先級(jí)是指:優(yōu)先權(quán)高的進(jìn)程應(yīng)優(yōu)先調(diào)度。可以根據(jù)進(jìn)程的優(yōu)先權(quán)不同,組織不同的就緒隊(duì)列。進(jìn)程調(diào)度時(shí)首先選擇高優(yōu)先權(quán)隊(duì)列中的進(jìn)程,直到該隊(duì)列空,再調(diào)度較低優(yōu)先權(quán)隊(duì)列中的進(jìn)程,如圖所示:
幾乎所有操作系統(tǒng)的調(diào)度算法都可考慮優(yōu)先權(quán)原則。當(dāng)然,僅考慮優(yōu)先權(quán),可能會(huì)出現(xiàn)饑餓,對(duì)低優(yōu)先權(quán)的進(jìn)程不公平。可以將進(jìn)程排隊(duì)的等待時(shí)間等因素納入優(yōu)先權(quán)的計(jì)算,隨著進(jìn)程等待時(shí)間的增長(zhǎng),其優(yōu)先權(quán)也不斷提高,進(jìn)程也會(huì)在不久的將來(lái)得到調(diào)度。
可以將進(jìn)程排隊(duì)的等待時(shí)間等因素納入優(yōu)先權(quán)的計(jì)算,隨著進(jìn)程等待時(shí)間的增長(zhǎng),其優(yōu)先權(quán)也不斷提高,進(jìn)程也會(huì)在不久的將來(lái)得到調(diào)度。
1.解決方法
方案一:采用交換技術(shù),換出一部分進(jìn)程到外存,以騰出內(nèi)存空間方案二:采用虛擬存儲(chǔ)技術(shù),每個(gè)進(jìn)程只能裝入一部分程序和數(shù)據(jù)(存儲(chǔ)管理部分)
2.對(duì)換技術(shù)(交換技術(shù),swapping)
將內(nèi)存中暫時(shí)不能運(yùn)行的進(jìn)程,或暫時(shí)不用的數(shù)據(jù)和程序,換出到外存,以騰出足夠的內(nèi)存空間,把已具備運(yùn)行條件的進(jìn)程,或進(jìn)程所需要的數(shù)據(jù)和程序,換入內(nèi)存。PCB不能換出去(PCB是系統(tǒng)唯一感知進(jìn)程的標(biāo)志)。 進(jìn)程被交換到外存,狀態(tài)變?yōu)?strong>掛起狀態(tài)。2.1?進(jìn)程掛起的原因
#1進(jìn)程全部阻塞,處理機(jī)空閑 #2系統(tǒng)負(fù)荷過(guò)重,內(nèi)存空間緊張 #3操作系統(tǒng)的需要。操作系統(tǒng)可能需要掛起后臺(tái)進(jìn)程或一些服務(wù)進(jìn)程(如打印進(jìn)程),或者某些可能導(dǎo)致系統(tǒng)故障的進(jìn)程。(前臺(tái)處理的事短的聯(lián)機(jī)請(qǐng)求,后臺(tái)處理的是批量任務(wù),前臺(tái)具有較高的優(yōu)先級(jí)) #4終端用戶的請(qǐng)求(終端用戶在處理程序,需要關(guān)閉一些進(jìn)程,進(jìn)而研究剩余進(jìn)程的變化) #5父進(jìn)程的需求2.2 被掛起進(jìn)程的特征
#1不能立即執(zhí)行 #2可能是等待某事件發(fā)生,若是,則阻塞條件獨(dú)立于掛起條件,即使阻塞事件發(fā)生,該進(jìn)程也不能執(zhí)行。阻塞和掛起沒(méi)有聯(lián)系。 #3使之掛起的進(jìn)程為:自身、其父進(jìn)程、OS #4只有掛起它的進(jìn)程才能使之由掛起狀態(tài)轉(zhuǎn)換為其他狀態(tài).2.3掛起與阻塞
區(qū)分概念,阻塞是指進(jìn)程是否等待事件;掛起是指進(jìn)程是否被換出內(nèi)存。四種狀態(tài)組合是指,就緒:進(jìn)程在內(nèi)存,準(zhǔn)備執(zhí)行;阻塞:進(jìn)程在內(nèi)存,等待事件;就緒/掛起:進(jìn)程在外存,只要調(diào)入內(nèi)存即可執(zhí)行 ;阻塞/掛起:進(jìn)程在外存,等待事件。 注:處理機(jī)可調(diào)度執(zhí)行的進(jìn)程有兩種:新創(chuàng)建的進(jìn)程;或換入一個(gè)以前掛起的進(jìn)程。通常為避免增加系統(tǒng)負(fù)載,系統(tǒng)會(huì)換入一個(gè)以前掛起的進(jìn)程執(zhí)行。
具有掛起狀態(tài)的狀態(tài)轉(zhuǎn)換模型 注: 1.阻塞->阻塞/掛起 :OS通常將阻塞進(jìn)程換出,以騰出內(nèi)存空間 2.阻塞/掛起->就緒/掛起:當(dāng)阻塞/掛起進(jìn)程等待的事件發(fā)生時(shí),可以將其轉(zhuǎn)換為就緒/掛起 3.就緒/掛起->就緒:OS需要調(diào)入一個(gè)進(jìn)程執(zhí)行.
2.3 進(jìn)程的控制
2.3.1 兩種執(zhí)行模式 模式一:系統(tǒng)模式/系統(tǒng)態(tài)/控制模式/內(nèi)核模式 具有較高的特權(quán);運(yùn)行系統(tǒng)特定的指令,包括讀寫(xiě)控制寄存器的指令、基本I/O指令以及與存儲(chǔ)器管理有關(guān)的指令,及一些特定的內(nèi)存區(qū)。內(nèi)核模式下的處理機(jī)及其指令、寄存器和內(nèi)存都完全受到控制和保護(hù)。 模式二:用戶模式 具有較低的特權(quán),用戶程序一般運(yùn)行在用戶模式 2.3.2 模式切換 用戶模式->系統(tǒng)模式:用戶程序執(zhí)行到一條系統(tǒng)調(diào)用,進(jìn)入操作系統(tǒng)內(nèi)核執(zhí)行系統(tǒng)模式->用戶模式 :執(zhí)行完系統(tǒng)調(diào)用的功能,返回到用戶程序
特殊情況:程序執(zhí)行到結(jié)束語(yǔ)句時(shí),切換到系統(tǒng)模式,不再返回到用戶程序.
2.3.3 操作系統(tǒng)內(nèi)核(Kernel) 操作系統(tǒng)的核心,是基于硬件的第一層軟件擴(kuò)充,提供操作系統(tǒng)最基本的功能,是操作系統(tǒng)工作的基礎(chǔ)。現(xiàn)代操作系統(tǒng)設(shè)計(jì)中,為減少系統(tǒng)本身的開(kāi)銷,往往將一些與硬件緊密相關(guān)的(如中斷處理程序、設(shè)備驅(qū)動(dòng)程序等)、基本的、公共的、運(yùn)行頻率較高的模塊(如時(shí)鐘管理、進(jìn)程調(diào)度等)以及關(guān)鍵性數(shù)據(jù)結(jié)構(gòu)獨(dú)立開(kāi)來(lái),使之常駐內(nèi)存,并對(duì)它們進(jìn)行特殊保護(hù)。通常把這一部分稱為操作系統(tǒng)的內(nèi)核。
##:用戶通過(guò)系統(tǒng)調(diào)用訪問(wèn)操作系統(tǒng)的功能,這些功能最終都通過(guò)操作系統(tǒng)內(nèi)核實(shí)現(xiàn)。 ##:不同的操作系統(tǒng)對(duì)內(nèi)核的定義和功能范圍的設(shè)定是不同的(操作系統(tǒng)內(nèi)核定義的理解不同)。
一般地,操作系統(tǒng)內(nèi)核的功能可以概括地劃分為資源管理功能和支撐功能。
##:資源管理,進(jìn)程管理(進(jìn)程創(chuàng)建和終止、調(diào)度、狀態(tài)轉(zhuǎn)換、同步和通信、管理PCB)、存儲(chǔ)管理(為進(jìn)程分配地址空間、對(duì)換、段/頁(yè)管理)和I/O設(shè)備管理(緩存管理、為進(jìn)程分配I/O通道和設(shè)備) ##:支撐功能,中斷處理、統(tǒng)計(jì)、監(jiān)測(cè)、時(shí)鐘管理、原語(yǔ)操作等。?
2.3.4 進(jìn)程創(chuàng)建的原因、步驟以及進(jìn)程終止的原因
進(jìn)程創(chuàng)建的原因: ##:提交新的批處理作業(yè) ##:交互式用戶注冊(cè) ##:操作系統(tǒng)提供服務(wù) ##:父進(jìn)程創(chuàng)建子進(jìn)程 進(jìn)程創(chuàng)建的步驟: (1)為進(jìn)程分配一個(gè)唯一標(biāo)識(shí)號(hào)ID ?主進(jìn)程表中增加一個(gè)新的表項(xiàng) (2)為進(jìn)程分配空間,用戶地址空間、用戶棧空間、PCB空間。若共享已有空間,則應(yīng)建立相應(yīng)的鏈接。 (3)初始化PCB,進(jìn)程標(biāo)識(shí)、處理機(jī)狀態(tài)信息、進(jìn)程狀態(tài) (4)建立鏈接,若調(diào)度隊(duì)列是鏈表,則將新進(jìn)程插入到就緒或就緒/掛起鏈表 (5)建立或擴(kuò)展其他數(shù)據(jù)結(jié)構(gòu) 進(jìn)程終止的原因: ##:批處理作業(yè)執(zhí)行到“結(jié)束”語(yǔ)句##:交互式用戶“注銷” ##:停止進(jìn)程(應(yīng)用程序)的執(zhí)行 ##:遇到錯(cuò)誤或故障
舉例:進(jìn)程A切換到進(jìn)程B的步驟: (1)首先,保護(hù)進(jìn)程A的現(xiàn)場(chǎng),將進(jìn)程A的當(dāng)前運(yùn)行信息(如程序執(zhí)行到的當(dāng)前位置,程序狀態(tài)字,所有的寄存器值等)保存到進(jìn)程A的PCB中。 (2)然后,恢復(fù)進(jìn)程B的現(xiàn)場(chǎng),從進(jìn)程B的PCB中獲取其執(zhí)行信息,將這些信息寫(xiě)入相應(yīng)的寄存器中,程序計(jì)數(shù)器指向進(jìn)程B將執(zhí)行的下一條指令。進(jìn)程B可能第一次開(kāi)始執(zhí)行,也可能是被中斷過(guò)的進(jìn)程,恢復(fù)執(zhí)行。不論是哪一種情況,進(jìn)程B的執(zhí)行信息都能在其PCB中找到。?
3.比較進(jìn)程切換與模式切換
進(jìn)程切換是指:作用于進(jìn)程之間的一種操作。當(dāng)分派程序收回當(dāng)前進(jìn)程的CPU并準(zhǔn)備把它分派給某個(gè)就緒進(jìn)程時(shí),該操作將被引用。 模式切換是指:是進(jìn)程內(nèi)部所引用的一種操作。當(dāng)用戶程序轉(zhuǎn)入系統(tǒng)調(diào)用,或相反時(shí),該操作將被引用。 進(jìn)程切換一定引發(fā)模式切換,反之則不然。【進(jìn)程正在執(zhí)行時(shí),如果需要切換到另一個(gè)進(jìn)程,需要引用系統(tǒng)的監(jiān)控程序進(jìn)行進(jìn)程的調(diào)度,一定會(huì)觸發(fā)模式切換】4.進(jìn)程的調(diào)度
4.1什么是調(diào)度?(兼顧公平、效率、饑餓現(xiàn)象)
調(diào)度是指,在一個(gè)隊(duì)列中,按照某種方法(算法),選擇一個(gè)合適的個(gè)體的過(guò)程。調(diào)度的關(guān)鍵是需要某種方法或算法,好的調(diào)度算法有利于選擇到合適的個(gè)體。如何判斷、設(shè)計(jì)一個(gè)好的調(diào)度算法呢?4.2 調(diào)度的目標(biāo)
##: 公平性,防止進(jìn)程長(zhǎng)期不能獲得調(diào)度而饑餓;##: 處理機(jī)利用率,盡量提高處理機(jī)的利用率;
##: 提高系統(tǒng)吞吐量;
##: 盡量減少進(jìn)程的響應(yīng)時(shí)間
4.3 調(diào)度的原則
## 滿足用戶的要求:響應(yīng)時(shí)間、周轉(zhuǎn)時(shí)間、截止時(shí)間 響應(yīng)時(shí)間是指,從用戶通過(guò)鍵盤(pán)提交一個(gè)請(qǐng)求開(kāi)始,直到系統(tǒng)首次產(chǎn)生響應(yīng)為止的時(shí)間。響應(yīng)時(shí)間=輸入的請(qǐng)求傳送到處理機(jī)的時(shí)間?+ 處理機(jī)對(duì)請(qǐng)求信息進(jìn)行處理的時(shí)間?+ 將響應(yīng)結(jié)果發(fā)送到輸出終端的時(shí)間。調(diào)度算法則應(yīng)考慮盡可能使絕大多數(shù)用戶的請(qǐng)求能在響應(yīng)時(shí)間內(nèi)完成。常用于評(píng)價(jià)分時(shí)系統(tǒng)的性能。 周轉(zhuǎn)時(shí)間是指,從作業(yè)提交給系統(tǒng)開(kāi)始,到作業(yè)完成為止的這段時(shí)間間隔。周轉(zhuǎn)時(shí)間=作業(yè)在外存排隊(duì)等待調(diào)度的時(shí)間+進(jìn)程在就緒隊(duì)列中等待調(diào)度的時(shí)間+進(jìn)程被處理機(jī)執(zhí)行的時(shí)間+等待I/O操作完成的時(shí)間。常用于評(píng)價(jià)批處理系統(tǒng)的性能截止時(shí)間是指,實(shí)時(shí)系統(tǒng)中,某任務(wù)必須開(kāi)始執(zhí)行的最遲時(shí)間(開(kāi)始截止時(shí)間),或必須完成的最遲時(shí)間(完成截止時(shí)間)。常用于評(píng)價(jià)實(shí)時(shí)系統(tǒng)的性能。 ## 滿足系統(tǒng)的需求:系統(tǒng)吞吐量、處理機(jī)利用率、各類資源的平衡使用、公平性及優(yōu)先級(jí)?
吞吐量是指指單位時(shí)間內(nèi)系統(tǒng)所完成的作業(yè)數(shù),常用于評(píng)價(jià)批處理系統(tǒng)的性能。 處理機(jī)利用率是指,大、中型多用戶系統(tǒng),由于處理機(jī)價(jià)格昂貴,處理機(jī)利用率是衡量系統(tǒng)性能的一個(gè)重要指標(biāo),單用戶微機(jī)或某些實(shí)時(shí)系統(tǒng),則并非很重要。? 各類資源的平衡使用,多道程序系統(tǒng)的目標(biāo)之一就是為了提高系統(tǒng)資源的利用率,因此,調(diào)度算法有責(zé)任使系統(tǒng)中的各種資源都盡量處于忙碌狀態(tài)。該原則同時(shí)適用于長(zhǎng)程調(diào)度和中程調(diào)度,因?yàn)樗鼈兛梢詻Q定哪些作業(yè)(進(jìn)程)可以進(jìn)入內(nèi)存,可以考慮系統(tǒng)資源的均衡使用。? 公平性是指,調(diào)度算法應(yīng)該對(duì)所有進(jìn)程公平,不偏袒任何進(jìn)程。
優(yōu)先級(jí)是指:優(yōu)先權(quán)高的進(jìn)程應(yīng)優(yōu)先調(diào)度。可以根據(jù)進(jìn)程的優(yōu)先權(quán)不同,組織不同的就緒隊(duì)列。進(jìn)程調(diào)度時(shí)首先選擇高優(yōu)先權(quán)隊(duì)列中的進(jìn)程,直到該隊(duì)列空,再調(diào)度較低優(yōu)先權(quán)隊(duì)列中的進(jìn)程,如圖所示:
幾乎所有操作系統(tǒng)的調(diào)度算法都可考慮優(yōu)先權(quán)原則。當(dāng)然,僅考慮優(yōu)先權(quán),可能會(huì)出現(xiàn)饑餓,對(duì)低優(yōu)先權(quán)的進(jìn)程不公平。可以將進(jìn)程排隊(duì)的等待時(shí)間等因素納入優(yōu)先權(quán)的計(jì)算,隨著進(jìn)程等待時(shí)間的增長(zhǎng),其優(yōu)先權(quán)也不斷提高,進(jìn)程也會(huì)在不久的將來(lái)得到調(diào)度。
可以將進(jìn)程排隊(duì)的等待時(shí)間等因素納入優(yōu)先權(quán)的計(jì)算,隨著進(jìn)程等待時(shí)間的增長(zhǎng),其優(yōu)先權(quán)也不斷提高,進(jìn)程也會(huì)在不久的將來(lái)得到調(diào)度。
總結(jié)
以上是生活随笔為你收集整理的[OS复习]进程管理2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Google解密携手宏达电:确保Andr
- 下一篇: 企业越来越重视即时通讯内部应用