![計算機組成原理白中英主編課件_第1頁](http://file4.renrendoc.com/view/a86cae83cb0318640adae053c5bddfe1/a86cae83cb0318640adae053c5bddfe11.gif)
![計算機組成原理白中英主編課件_第2頁](http://file4.renrendoc.com/view/a86cae83cb0318640adae053c5bddfe1/a86cae83cb0318640adae053c5bddfe12.gif)
![計算機組成原理白中英主編課件_第3頁](http://file4.renrendoc.com/view/a86cae83cb0318640adae053c5bddfe1/a86cae83cb0318640adae053c5bddfe13.gif)
![計算機組成原理白中英主編課件_第4頁](http://file4.renrendoc.com/view/a86cae83cb0318640adae053c5bddfe1/a86cae83cb0318640adae053c5bddfe14.gif)
![計算機組成原理白中英主編課件_第5頁](http://file4.renrendoc.com/view/a86cae83cb0318640adae053c5bddfe1/a86cae83cb0318640adae053c5bddfe15.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第九章操作系統(tǒng)支持操作系統(tǒng)是管理計算機資源并為用戶供應(yīng)服務(wù)的系統(tǒng)軟件,作為硬件與應(yīng)用軟件之間的接口,操作系統(tǒng)起著承上啟下的作用。了解操作系統(tǒng)與硬件之間的相互關(guān)系有助于理解計算機系統(tǒng)的整體工作過程。本章僅就操作系統(tǒng)與硬件關(guān)系最親密的處理機調(diào)度與存儲管理問題進行探討。9.1操作系統(tǒng)概述一、操作系統(tǒng)的概念計算機系統(tǒng)大體上可以分為三個部分:硬件、系統(tǒng)軟件和應(yīng)用軟件。硬件是全部軟件運行的物質(zhì)基礎(chǔ)。操作系統(tǒng)(簡稱OS)則是最重要的系統(tǒng)軟件,是管理計算機系統(tǒng)資源、限制程序執(zhí)行的系統(tǒng)軟件。操作系統(tǒng)作為計算機用戶與計算機硬件之間的接口程序,向用戶和應(yīng)用軟件供應(yīng)各種服務(wù),合理組織計算機工作流程,并為用戶運用計算機供應(yīng)良好運行環(huán)境。操作系統(tǒng)已經(jīng)成為現(xiàn)代計算機系統(tǒng)不行分割的重要組成部分。操作系統(tǒng)依托計算機硬件并在其基礎(chǔ)上供應(yīng)很多新的服務(wù)和功能,從而運用戶能夠便利、牢靠、平安、高效地操縱計算機硬件并運行應(yīng)用程序。9.1操作系統(tǒng)概述二、操作系統(tǒng)的主要目標(biāo)歸結(jié)為以下幾點:管理系統(tǒng)資源:操作系統(tǒng)能有效管理系統(tǒng)中的全部硬件資源和軟件資源,使資源得到充分利用。提高系統(tǒng)效率:操作系統(tǒng)能合理地組織計算機的工作流程,改進系統(tǒng)性能,提高系統(tǒng)效率。便利用戶運用:通過向用戶供應(yīng)友好的用戶界面,操作系統(tǒng)能讓用戶更便利、更輕松地運用計算機系統(tǒng)。增加機器功能:操作系統(tǒng)能通過擴充改造硬件部件并供應(yīng)新的服務(wù)來增加機器功能。構(gòu)筑開放環(huán)境:操作系統(tǒng)通過遵循相關(guān)技術(shù)標(biāo)準(zhǔn)的方式支持體系結(jié)構(gòu)的可伸縮性和可擴展性,支持應(yīng)用程序在不同平臺上的移植和互操作。9.1.2操作系統(tǒng)的功能操作系統(tǒng)的核心任務(wù):管理計算機系統(tǒng)中的資源。從資源管理的角度來看,作為資源管理器的操作系統(tǒng)對計算機硬件資源的管理主要體現(xiàn)在以下三個方面:處理器管理存儲器管理設(shè)備管理9.1.2操作系統(tǒng)的功能處理機管理:處理機是最重要的硬件資源,因為全部軟件的執(zhí)行和系統(tǒng)功能的實現(xiàn)都依靠于處理機。因此,能否充分發(fā)揮處理機的效能,是系統(tǒng)功能和性能的關(guān)鍵。早期的計算機系統(tǒng)是單用戶、單任務(wù)系統(tǒng),處理機僅為一個用戶的一個任務(wù)服務(wù)見圖所示。9.1.2操作系統(tǒng)的功能現(xiàn)代的計算機系統(tǒng)廣泛接受多任務(wù)機制支持多個程序或多個用戶并行運用計算機。在引入多任務(wù)機制后,當(dāng)一個作業(yè)需等待I/O操作等外部條件滿足時,處理機轉(zhuǎn)去執(zhí)行另一個作業(yè),從而實現(xiàn)多任務(wù)的并行執(zhí)行。操作系統(tǒng)負責(zé)組織多個任務(wù)的并行執(zhí)行,并負責(zé)解決處理機的調(diào)度、安排和回收等問題。多務(wù)系統(tǒng)運行兩道程序時處理機的運用效率見圖9.1.2操作系統(tǒng)的功能存儲管理:依據(jù)馮·諾依曼體系結(jié)構(gòu),無論是指令還是操作數(shù),都存儲在內(nèi)存儲器中。因此存儲系統(tǒng)的性能對系統(tǒng)整體性能的影響特別大。隨著現(xiàn)代計算機系統(tǒng)的存儲系統(tǒng)層次結(jié)構(gòu)的困難化,操作系統(tǒng)擔(dān)負的存儲管理任務(wù)也越來越繁雜。尤其在多任務(wù)系統(tǒng)中。(1)存儲安排:即依據(jù)程序的須要為其安排存儲器資源,在便利存儲器運用的同時又要保證存儲器的高利用率。(2)存儲共享:允許主存中的多個任務(wù)或多個用戶程序共享存儲器資源,這一方面可以提高存儲器的利用率,另一方面又便于多任務(wù)間的數(shù)據(jù)交換。(3)存儲愛護:確保用戶程序不會有意或無意地訪問或破壞操作系統(tǒng)的關(guān)鍵代碼和數(shù)據(jù)。各個用戶程序之間也須要相互隔離、互不干擾。(4)存儲擴充:基于存儲器的層次結(jié)構(gòu),存儲管理須要為用戶供應(yīng)與實際物理內(nèi)存空間不干脆相關(guān)的邏輯編程空間,并在主存和協(xié)助存儲器的支持下實現(xiàn)邏輯地址空間與物理地址空間之間的映射與變換,便利用戶的編程和運用。9.1.2操作系統(tǒng)的功能設(shè)備管理:設(shè)備管理的主要任務(wù)是進行各類外圍設(shè)備的調(diào)度與管理,協(xié)調(diào)各個用戶提出的I/O懇求,提高各I/O設(shè)備操作與處理機運行的并行性,提高處理機和I/O設(shè)備的利用率。設(shè)備管理還需供應(yīng)每種設(shè)備的設(shè)備驅(qū)動程序,向用戶屏蔽硬件運用細微環(huán)節(jié)。9.1.3操作系統(tǒng)的特性及其須要解決的問題操作系統(tǒng)作為計算機系統(tǒng)的管理者,必需解決一系列困難的管理問題。而計算機系統(tǒng)運行的特性確定著操作系統(tǒng)的策略。并發(fā)性共享性隨機性等特征。9.1.3操作系統(tǒng)的特性及其須要解決的問題并發(fā)性:為了提高系統(tǒng)資源利用率,多任務(wù)系統(tǒng)接受并發(fā)技術(shù)消退計算機系統(tǒng)中部件和部件之間的相互等待:兩個或兩個以上的程序可以在同一時間間隔內(nèi)同時執(zhí)行,設(shè)備的輸入輸出操作和處理機執(zhí)行程序同時進行。因此并發(fā)性是操作系統(tǒng)的重要特征。共享性:多個并發(fā)執(zhí)行的程序須要共享系統(tǒng)中的硬件資源和信息資源。隨機性:在多道程序環(huán)境中,隨機性是自不待言的:用戶發(fā)出吩咐或輸入數(shù)據(jù)的時間相對于指令的執(zhí)行時間是隨機的,程序運行發(fā)生錯誤或異樣的時刻是隨機的,外部中斷事務(wù)發(fā)生的時刻是隨機的,一個程序由于等待資源而被暫停執(zhí)行的時間也是隨機的。9.1.4操作系統(tǒng)的硬件環(huán)境處理機狀態(tài)限制:為了支持操作系統(tǒng)的特權(quán),中心處理機須要知道當(dāng)前執(zhí)行的程序是操作系統(tǒng)代碼還是一般用戶程序代碼。為此,處理機中設(shè)置了狀態(tài)標(biāo)記。大多數(shù)系統(tǒng)把處理機的狀態(tài)劃分為管理狀態(tài)又稱超級用戶狀態(tài)、管態(tài)或特權(quán)狀態(tài)和用戶狀態(tài)又稱目標(biāo)狀態(tài)、常態(tài)、目態(tài)或解題狀態(tài))。特權(quán)指令:為了防止用戶程序執(zhí)行有關(guān)資源管理的機器指令從而破壞系統(tǒng)正常工作狀態(tài),在多任務(wù)環(huán)境中,通常把指令系統(tǒng)中的指令分為兩類:特權(quán)指令(PrivilegedInstructions)和非特權(quán)指令。特權(quán)指令是只能由操作系統(tǒng)核心程序執(zhí)行的機器指令,用于系統(tǒng)資源管理與程序執(zhí)行限制等操作,如啟動輸入輸出設(shè)備、設(shè)置系統(tǒng)時鐘、限制中斷屏蔽位、設(shè)置存儲管理狀態(tài)、加載程序狀態(tài)字等。9.1.4操作系統(tǒng)的硬件環(huán)境寄存器訪問權(quán)限:計算機系統(tǒng)的中心處理機內(nèi)設(shè)置了很多寄存器,包括用于暫存數(shù)據(jù)的通用數(shù)據(jù)寄存器和用于存放處理器的限制和狀態(tài)信息的限制寄存器。后者主要有:程序計數(shù)器PC、程序狀態(tài)字寄存器PWSR、指令寄存器IR等,也包括和系統(tǒng)存儲管理、中斷管理等相關(guān)的寄存器。程序狀態(tài)字和程序執(zhí)行現(xiàn)場:為了記錄計算機系統(tǒng)當(dāng)前的工作狀態(tài),須要特地設(shè)置程序狀態(tài)字(PSW)用于限制指令的執(zhí)行并存儲與程序有關(guān)的系統(tǒng)狀態(tài)。程序狀態(tài)字寄存器保存的信息通常包括以下幾類:(1)當(dāng)前正在執(zhí)行的指令地址這由程序計數(shù)器給出。(2)狀態(tài)條件碼表示指令執(zhí)行結(jié)果的狀態(tài)特征,例如算術(shù)運算指令運行結(jié)果是否為零、是否有溢出、是否是負數(shù)等。(3)處理機狀態(tài)指明當(dāng)前的處理機狀態(tài),如目態(tài)或管態(tài),是否允許某類中斷,是否處于中斷嵌套狀態(tài),當(dāng)前的存儲愛護狀態(tài)等。(4)限制標(biāo)記能夠影響某些指令執(zhí)行方式的一些標(biāo)記位。9.1.4操作系統(tǒng)的硬件環(huán)境中斷機制:現(xiàn)代的計算機系統(tǒng)都支持中斷(異樣)。通過檢測中斷源并進行中斷響應(yīng),中斷機制供應(yīng)了一種程序隨機切換的方式。通過響應(yīng)硬件定時器中斷,操作系統(tǒng)可以執(zhí)行周期性的例行管理任務(wù),例如進程調(diào)度。這可以確保某個進程不會獨占系統(tǒng)資源。以中斷方式實現(xiàn)處理機與外界進行信息交換的握手聯(lián)絡(luò),能保證CPU與外設(shè)的并行工作。計算機工作時可能發(fā)生軟件或硬件故障,故障發(fā)生的時間相對于CPU的指令執(zhí)行是完全隨機的。常見的硬件故障有掉電、校驗錯、運算出錯等;常見的軟件故障有運算溢出、地址越界、運用非法指令等。一旦發(fā)生故障,應(yīng)由CPU執(zhí)行中斷處理程序進行處理。9.1.4操作系統(tǒng)的硬件環(huán)境存儲管理:系統(tǒng)硬件通過存儲管理部件支持操作系統(tǒng)實現(xiàn)多級存儲體系和存儲愛護功能。在后面將詳盡探討與存儲管理相關(guān)的問題。9.2調(diào)度一、進程的概念:操作系統(tǒng)除了負責(zé)管理用戶程序的執(zhí)行外,也須要處理各種系統(tǒng)任務(wù)。在操作系統(tǒng)中,通常運用進程(process)這一概念描述程序的動態(tài)執(zhí)行過程。程序是靜態(tài)實體;進程是動態(tài)實體,是執(zhí)行中的程序。進程不僅僅包含程序代碼,也包含了當(dāng)前的狀態(tài)(這由程序計數(shù)器和處理機中的相關(guān)寄存器表示)和資源。因此,假如兩個用戶用同樣一段代碼分別執(zhí)行相同功能的程序,那么其中的每一個都是一個獨立的進程。雖然其代碼是相同的,但是數(shù)據(jù)卻未必相同。9.2調(diào)度二、進程的狀態(tài):進程在不同階段會處于不同狀態(tài)。進程的狀態(tài)會隨著進程當(dāng)前進行的活動而變更。創(chuàng)建進程:正在被創(chuàng)建,并未準(zhǔn)備好運行。就緒進程:已經(jīng)準(zhǔn)備好運行,并正等待安排處理器時間。運行進程:正占用處理機執(zhí)行。堵塞進程:由于等待I/O操作完成或某些事務(wù)出現(xiàn)而被系統(tǒng)掛起。終止進程:完成操作結(jié)束運行。 在不同的系統(tǒng)中,進程的狀態(tài)種類和名稱不盡相同。系統(tǒng)中可能有多個進程處于創(chuàng)建、就緒、堵塞和終止等狀態(tài),但是處理機在隨意時刻只能運行一個進程。9.2調(diào)度進程限制塊:為了管理和限制進程,操作系統(tǒng)必需保存與每個進程有關(guān)的狀態(tài)等信息。為此,操作系統(tǒng)為每個進程設(shè)置一個進程限制塊PCB(ProcessControlBlock)。PCB中記錄了操作系統(tǒng)所須要的用于描述進程狀況及限制進程運行所需的全部信息。PCB通常包含以下信息:(1)進程標(biāo)識符用于唯一標(biāo)識當(dāng)前進程;(2)狀態(tài)記錄進程當(dāng)前狀態(tài);(3)程序計數(shù)器將要執(zhí)行的下一條指令的地址;(4)進程上下文進程執(zhí)行時CPU內(nèi)部寄存器的取值,是進程執(zhí)行的現(xiàn)場數(shù)據(jù);(5)存儲管理信息指明進程占用的內(nèi)存空間的范圍;(6)I/O狀態(tài)信息例如打開的文件、未完成的I/O懇求、占用的I/O設(shè)備等。9.2調(diào)度 進程調(diào)度是操作系統(tǒng)必備的功能。通常將進程調(diào)度分為搶占式和非搶占式兩種模式。(1)非搶占模式:非搶占模式是指一旦將處理機時間安排給某個進程后,便讓該進程始終運行,直到該進程因運行完畢或因發(fā)生某事務(wù)而被堵塞,才把處理機時間重新安排給其它進程。否則,不允許其他進程搶占已經(jīng)安排出去的處理機時間。“先來先服務(wù)”策略就是一種非搶占調(diào)度模式,先進入就緒隊列的進程首先運行,直到運行結(jié)束或被堵塞為止。這種調(diào)度模式的優(yōu)點是實現(xiàn)簡潔、系統(tǒng)開銷小,但無法滿足實時系統(tǒng)對緊急事務(wù)處理的時間要求。(2)搶占模式:在搶占調(diào)度模式中,允許進程調(diào)度程序依據(jù)某種策略,暫停某個正在運行的進程,將處理機時間重新安排給另一個進程。9.2調(diào)度常用的搶占策略有:時間片策略處理機時間被分割為等長的時間單位,稱為時間片。每個進程被安排一個時間片運行,當(dāng)該時間片超時時,由操作系統(tǒng)重新進行進程調(diào)度,將處理機時間交給另一個就緒進程。這種策略適用于分時系統(tǒng)和要求較高的批處理系統(tǒng)。優(yōu)先權(quán)策略操作系統(tǒng)為某些重要或緊急的進程指定較高的優(yōu)先級。當(dāng)這種進程就緒時,假如其優(yōu)先級比正在運行的進程的優(yōu)先級高,便暫停正在運行的進程,將處理機時間安排給優(yōu)先級高的進程。短進程優(yōu)先策略當(dāng)就緒隊列中的某個進程比正在運行的進程的運行時間明顯地短時,操作系統(tǒng)將剝奪進步程的執(zhí)行,將處理機安排給短進程,使之優(yōu)先運行。該調(diào)度策略能有效地降低進程的平均等待時間,提高系統(tǒng)的吞吐量。9.2調(diào)度調(diào)度的層次高級調(diào)度:是指按確定原則把輔存上處于后備隊列中的作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進程、安排必要的資源,再將新創(chuàng)建的進程排在就緒隊列上準(zhǔn)備執(zhí)行。高級調(diào)度確定哪些作業(yè)可以進入系統(tǒng)競爭系統(tǒng)資源。9.2調(diào)度操作系統(tǒng)在進行高級調(diào)度時必需考慮兩個因素:(1)接納多少個作業(yè)系統(tǒng)允許有多少個作業(yè)同時在內(nèi)存中運行用多道程序度表征。內(nèi)存中同時運行的作業(yè)太多可能會影響到系統(tǒng)的服務(wù)質(zhì)量,同時運行的作業(yè)太少又會導(dǎo)致系統(tǒng)資源利用率和系統(tǒng)吞吐量太低。因此,多道程序度的確定應(yīng)依據(jù)系統(tǒng)的規(guī)模和運行速度等做適當(dāng)折衷。(2)接納哪些作業(yè)操作系統(tǒng)依據(jù)所接受的調(diào)度算法確定哪些作業(yè)從輔存調(diào)入內(nèi)存。例如,先來先服務(wù)調(diào)度算法將最早進入輔存的作業(yè)最先調(diào)入內(nèi)存;短作業(yè)優(yōu)先調(diào)度算法將輔存上最短的作業(yè)最先調(diào)入內(nèi)存;而基于作業(yè)優(yōu)先權(quán)的調(diào)度算法則需依據(jù)作業(yè)的重要程度與輕重緩急選擇調(diào)入內(nèi)存的作業(yè)。高級調(diào)度在較大的粒度上確定對處理機時間的運用權(quán)安排,故又稱作業(yè)調(diào)度、收容調(diào)度或長程調(diào)度。9.2調(diào)度低級調(diào)度即進程調(diào)度,確定當(dāng)存在多個就緒進程時,哪一個就緒進程將安排到中心處理機的運行時間,并且把中心處理機實際安排給這個進程。低級調(diào)度在較小的粒度上確定對處理機時間的運用權(quán)安排,又稱為短程調(diào)度。低級調(diào)度執(zhí)行特別頻繁,進程調(diào)度程序每秒鐘可執(zhí)行多次進程調(diào)度,故進程調(diào)度程序必需常駐內(nèi)存。9.2調(diào)度中級調(diào)度的目的是為了提高內(nèi)存的利用率和系統(tǒng)吞吐量。為了讓那些因為某些緣由短暫不能運行的進程不再占用珍貴的內(nèi)存資源,操作系統(tǒng)通過中級調(diào)度將這些進程調(diào)出至輔存等待。當(dāng)這些處于掛起狀態(tài)的進程再次準(zhǔn)備好運行,且內(nèi)存又出現(xiàn)空閑空間時,由中級調(diào)度確定將輔存上的哪些處于就緒駐外存狀態(tài)的進程重新調(diào)入內(nèi)存。被調(diào)入的進程將轉(zhuǎn)換為就緒狀態(tài)掛在就緒隊列上,等待進程調(diào)度。9.2調(diào)度處理機調(diào)度的實現(xiàn):為了調(diào)度的便利,操作系統(tǒng)會建立并維護若干個進程隊列。每個隊列均用于維護一個等待某些資源的進程的列表。在批處理系統(tǒng)中,作業(yè)進入系統(tǒng)后,先駐留在輔存的后備隊列中,作業(yè)調(diào)度從輔存的后備隊列中選擇作業(yè)調(diào)入內(nèi)存,并為之創(chuàng)建進程,然后送入內(nèi)存就緒隊列,并等待進程調(diào)度。交互型作業(yè)則干脆進入內(nèi)存就緒隊列。9.2調(diào)度三級處理機調(diào)度隊列模型9.2調(diào)度進程調(diào)度依據(jù)某種調(diào)度算法從就緒隊列中選擇一個進程運行。每個進程運行時都可能在安排給其運行的時間出現(xiàn)以下三種狀況:(1)該進程在安排給其運行的時間內(nèi)運行完成,該進程釋放處理機后轉(zhuǎn)入完成狀態(tài);(2)該進程在運行期間因等待某些事務(wù)(如等待某些資源可用或等待某些I/O操作完成)而無法接著運行,操作系統(tǒng)將該進程送入內(nèi)存堵塞隊列;(3)該進程在安排給其運行的時間超時時尚未運行完成,操作系統(tǒng)將暫停該進程運行,并將該進程重新排入內(nèi)存就緒隊列。9.2調(diào)度一旦進程等待的事務(wù)發(fā)生,操作系統(tǒng)進程調(diào)度程序可以將其從內(nèi)存堵塞隊列重新掛入內(nèi)存就緒隊列。而內(nèi)存就緒隊列中的進程可以被重新調(diào)度到運行狀態(tài)。在某個進程運行過程中,某些事務(wù)會使進程暫停執(zhí)行而轉(zhuǎn)入操作系統(tǒng)的進程調(diào)度程序執(zhí)行。其一是該進程調(diào)用系統(tǒng)服務(wù)程序,例如懇求系統(tǒng)進行I/O服務(wù)操作;其二是該進程引發(fā)中斷,無論是硬件引發(fā)的輸入/輸出中斷、軟件錯誤引發(fā)的系統(tǒng)異樣,還是系統(tǒng)定時器超時中斷;其三是某些和該進程無關(guān)但影響系統(tǒng)狀態(tài)的事務(wù)須要操作系統(tǒng)處理。9.3存儲管理存儲管理主要解決存儲器的安排與回收,存儲器地址變換,存儲器擴充,存儲器共享與愛護等問題。9.3存儲管理一、分區(qū)式存儲管理早期的單用戶、單任務(wù)的操作系統(tǒng)將內(nèi)存空間簡潔地分為兩個區(qū)域:系統(tǒng)區(qū)和用戶區(qū)。操作系統(tǒng)運用系統(tǒng)區(qū);應(yīng)用程序則裝入到用戶區(qū),并運用用戶區(qū)全部空間。這種方式管理簡潔,但會奢侈內(nèi)存空間。為了支持多個程序并發(fā)執(zhí)行,現(xiàn)代操作系統(tǒng)引入了分區(qū)式存儲管理。內(nèi)存被分為若干個區(qū)域,操作系統(tǒng)占用其中一個分區(qū),其余的分區(qū)則供應(yīng)應(yīng)應(yīng)用程序運用,每個應(yīng)用程序占用其中一個或幾個分區(qū)。依據(jù)分區(qū)的大小是否固定,可以將分區(qū)式存儲管理機制分為固定分區(qū)和動態(tài)分區(qū)兩種類型。9.3存儲管理二、交換技術(shù)和分頁技術(shù)依據(jù)程序的局部性原理,在一個較短的時間間隔內(nèi),程序所訪問的存儲器地址在很大比例上集中在存儲器地址空間的很小范圍內(nèi)。交換技術(shù)正是利用了程序的局部性原理實現(xiàn)多任務(wù)并發(fā)環(huán)境中的存儲管理。9.3存儲管理交換過程由換入和換出兩個過程組成:換入過程將外存交換區(qū)的數(shù)據(jù)和程序代碼換至內(nèi)存,而換出過程將內(nèi)存中的數(shù)據(jù)換到外存交換區(qū)中。9.3存儲管理操作系統(tǒng)將短暫不執(zhí)行的程序代碼保存在外存中,并將這些進程排入進程懇求的長期調(diào)度隊列。隊列中的一部分進程被調(diào)到主存中執(zhí)行。當(dāng)由于輸入/輸出操作等緣由使得存儲器中無進程處于就緒狀態(tài)時,操作系統(tǒng)將部分進程換出至外存,并排入中期隊列。騰出的內(nèi)存空間則換入中期隊列或長期隊列中的一個可執(zhí)行的進程。交換技術(shù)的優(yōu)點是增加了并發(fā)運行的進程數(shù)目。缺點是換入和換出操作增加了處理機的時間開銷;而且交換的單位為整個進程的地址空間,沒有考慮程序執(zhí)行過程中地址訪問的統(tǒng)計特性。交換技術(shù)和早期接受的覆蓋技術(shù)一樣,雖然都是從邏輯上利用外存擴大主存空間,但并沒有將主存和外存組成一個有機的整體。分頁技術(shù)引申出一種特別重要的存儲管理策略——虛擬存儲器(簡稱虛存)。在存儲管理部件(MMU)的支持下,虛擬存儲器技術(shù)可以徹底解決存儲器的調(diào)度與管理問題。虛擬存儲器工作原理也稱為虛擬存儲系統(tǒng)、虛擬存儲體系等其概念由英國曼徹斯特高校的Kilbrn等人于1961年提出到70年頭廣泛應(yīng)用于大中型計算機系統(tǒng)目前,很多微型機也運用虛擬存儲器把主存儲器、磁盤存儲器和虛擬存儲器都劃分成固定大小的頁主存儲器的頁稱為實頁虛擬存儲器中的頁稱為虛頁9.4虛擬存儲器一、虛擬存儲器的基本概念1、實地址與虛地址:用戶編制程序時運用的地址稱為虛地址或邏輯地址,其對應(yīng)的存儲空間稱為虛存空間或邏輯地址空間;而計算機物理內(nèi)存的訪問地址則稱為實地地或物理地址,其對應(yīng)的存儲空間稱為物理存儲空間或主存空間。程序進行虛地址到實地址轉(zhuǎn)換的過程稱為程序的再定位。9.4虛擬存儲器2、虛存的訪問原理虛存空間的用戶程序依據(jù)虛地址編程并存放在輔存中。程序運行時,由地址變換機構(gòu)依據(jù)當(dāng)時安排給該程序的實地址空間把程序的一部分調(diào)入實存。每次訪存時,首先推斷該虛地址所對應(yīng)的部分是否在實存中:假如是,則進行地址轉(zhuǎn)換并用實地址訪問主存;否則,依據(jù)某種算法將輔存中的部分程序調(diào)度進內(nèi)存,再按同樣的方法訪問主存。由此可見,每個程序的虛地址空間可以遠大于實地址空間,也可以遠小于實地址空間。前一種狀況以提高存儲容量為目的,后一種狀況則以地址變換為目的。后者通常出現(xiàn)在多用戶或多任務(wù)系統(tǒng)中:實存空間較大,而單個任務(wù)并不須要很大的地址空間,較小的虛存空間則可以縮短指令中地址字段的長度。9.4虛擬存儲器3、cache與虛存的異同從虛存的概念可以看出,主存輔存的訪問機制與cache主存的訪問機制是類似的。這是由cache存儲器、主存和輔存構(gòu)成的三級存儲體系中的兩個層次。cache和主存之間以及主存和輔存之間分別有協(xié)助硬件和協(xié)助軟硬件負責(zé)地址變換與管理,以便各級存儲器能夠組成有機的三級存儲體系。cache和主存構(gòu)成了系統(tǒng)的內(nèi)存,而主存和輔存依靠協(xié)助軟硬件的支持構(gòu)成了虛擬存儲器。9.4虛擬存儲器在三級存儲體系中,cache主存和主存輔存這兩個存儲層次有很多相同點;(1)動身點相同二者都是為了提高存儲系統(tǒng)的性能價格比而構(gòu)造的分層存儲體系,都力圖使存儲系統(tǒng)的性能接近高速存儲器,而價格和容量接近低速存儲器。(2)原理相同都是利用了程序運行時的局部性原理把最近常用的信息塊從相對慢速而大容量的存儲器調(diào)入相對高速而小容量的存儲器。但cache主存和主存輔存這兩個存儲層次也有很多不同之處:(3)側(cè)重點不同cache主要解決主存與CPU的速度差異問題;而就性能價格比的提高而言,虛存主要是解決存儲容量問題,另外還包括存儲管理、主存安排和存儲愛護等方面。(4)數(shù)據(jù)通路不同CPU與cache和主存之間均有干脆訪問通路,cache不命中時可干脆訪問主存;而虛存所依靠的輔存與CPU之間不存在干脆的數(shù)據(jù)通路,當(dāng)主存不命中時只能通過調(diào)頁解決,CPU最終還是要訪問主存。(5)透亮性不同cache的管理完全由硬件完成,對系統(tǒng)程序員和應(yīng)用程序員均透亮;而虛存管理由軟件(操作系統(tǒng))和硬件共同完成,由于軟件的介入,虛存對實現(xiàn)存儲管理的系統(tǒng)程序員不透亮,而只對應(yīng)用程序員透亮(段式和段頁式管理對應(yīng)用程序員“半透亮”)。(6)未命中時的損失不同由于主存的存取時間是cache的存取時間的5~10倍,而主存的存取速度通常比輔存的存取速度快上千倍,故主存未命中時系統(tǒng)的性能損失要遠大于cache未命中時的損失。9.4虛擬存儲器4、虛存機制要解決的關(guān)鍵問題(1)調(diào)度問題確定哪些程序和數(shù)據(jù)應(yīng)被調(diào)入主存。(2)地址映射問題在訪問主存時把虛地址變?yōu)橹鞔嫖锢淼刂罚ㄟ@一過程稱為內(nèi)地址變換);在訪問輔存時把虛地址變成輔存的物理地址(這一過程稱為外地址變換),以便換頁。此外還要解決主存安排、存儲愛護與程序再定位等問題。(3)替換問題確定哪些程序和數(shù)據(jù)應(yīng)被調(diào)出主存。(4)更新問題確保主存與輔存的一樣性。在操作系統(tǒng)的限制下,硬件和系統(tǒng)軟件為用戶解決了上述問題,從而使應(yīng)用程序的編程大大簡化。內(nèi)部地址變換:多用戶虛擬地址Av變換成主存實地址A多用戶虛擬地址中的頁內(nèi)偏移D干脆作為主存實地址中的頁內(nèi)偏移d,主存實頁號p與它的頁內(nèi)偏移d干脆拼接起來就得到主存實地址A。地址的映象與變換三種地址空間:虛擬地址空間主存儲器地址空間輔存地址空間地址映象:把虛擬地址空間映象到主存地址空間地址變換:在程序運行時,把虛地址變換成主存實地址三種虛擬存儲器:頁式虛擬存儲器段式虛擬存儲器段頁式虛擬存儲器9.4虛擬存儲器二、頁式虛存存儲器1、頁式虛存地址映射頁式虛擬存儲系統(tǒng)中,虛地址空間被分成等長大小的頁,稱為邏輯頁;主存空間也被分成同樣大小的頁,稱為物理頁。相應(yīng)地,虛地址分為兩個字段:高字段為邏輯頁號,低字段為頁內(nèi)地址(偏移量);實存地址也分兩個字段:高字段為物理頁號,低字段為頁內(nèi)地址。通過頁表可以把虛地址(邏輯地址)轉(zhuǎn)換成物理地址。頁式虛擬存儲器的地址映射過程見下圖。頁式虛擬存儲器的地址映射過程見下圖2.頁式虛擬存儲器地址映象方法:
地址變換方法:9.4虛擬存儲器在大多數(shù)系統(tǒng)中,每個進程對應(yīng)一個頁表。頁表中對應(yīng)每一個虛存頁面有一個表項,表項的內(nèi)容包含該虛存頁面所在的主存頁面的地址(物理頁號),以及指示該邏輯頁是否已調(diào)入主存的有效位。地址變換時,用邏輯頁號作為頁表內(nèi)的偏移地址索引頁表(將虛頁號看作頁表數(shù)組下標(biāo))并找到相應(yīng)物理頁號,用物理頁號作為實存地址的高字段,再與虛地址的頁內(nèi)偏移量拼接,就構(gòu)成完整的物理地址?,F(xiàn)代的中心處理機通常有特地的硬件支持地址變換。每個進程所需的頁數(shù)并不固定,所以頁表的長度是可變的,因此通常的實現(xiàn)方法是把頁表的基地址保存在寄存器中,而頁表本身則放在主存中。由于虛存地址空間可以很大,因而每個進程的頁表有可能特別長。例如,假如一個進程的虛地址空間為2G字節(jié),每頁的大小為512字節(jié),則總的虛頁數(shù)為231/29=222。9.4虛擬存儲器為了節(jié)約頁表本身占用的主存空間,一些系統(tǒng)把頁表存儲在虛存中,因而頁表本身也要進行分頁。當(dāng)一個進程運行時,其頁表中一部分在主存中,另一部分則在輔存中保存。另一些系統(tǒng)接受二級頁表結(jié)構(gòu)。每個進程有一個頁書目表,其中的每個表項指向一個頁表。因此,若頁書目表的長度(表項數(shù))是m,每個頁表的最大長度(表項數(shù))為n,則一個進程最多可以有m×n個頁。在頁表長度較大的系統(tǒng)中,還可以接受反向頁表實現(xiàn)物理頁號到邏輯頁號的反向映射。頁表中對應(yīng)每一個物理頁號有一個表項,表項的內(nèi)容包含該物理頁所對應(yīng)的邏輯頁號。訪存時,通過邏輯頁號在反向頁表中逐一查找。假如找到匹配的頁,則用表項中的物理頁號取代邏輯頁號;假如沒有匹配表項,則說明該頁不在主存中。這種方式的優(yōu)點是頁表所占空間大大縮小,但代價是須要對反向頁表進行檢索,查表的時間很長。有些系統(tǒng)通過散列(哈希)表加以改進。9.4虛擬存儲器2、轉(zhuǎn)換后援緩沖器由于頁表通常在主存中,因而即使邏輯頁已經(jīng)在主存中,也至少要訪問兩次物理存儲器才能實現(xiàn)一次訪存,這將使虛擬存儲器的存取時間加倍。為了避開對主存訪問次數(shù)的增多,可以對頁表本身實行二級緩存,把頁表中的最活躍的部分存放在高速存儲器中,組成快表。這個專用于頁表緩存的高速存儲部件通常稱為轉(zhuǎn)換后援緩沖器(TLB)。保存在主存中的完整頁表則稱為慢表。9.4虛擬存儲器TLB的地址映射過程見圖9.4虛擬存儲器內(nèi)頁表和外頁表頁表是虛地址到主存物理地址的變換表,通常稱為內(nèi)頁表。與內(nèi)頁表對應(yīng)的還有外頁表,用于虛地址與輔存地址之間的變換。當(dāng)主存缺頁時,調(diào)頁操作首先要定位輔存,而外頁表的結(jié)構(gòu)與輔存的尋址機制親密相關(guān)。例如對磁盤而言,輔存地址包括磁盤機號、磁頭號、磁道號和扇區(qū)號等。
外部地址變換每個程序有一張外頁表,每一頁或每個程序段,在外頁表中都有對應(yīng)的一個存儲字。主要優(yōu)點:(1)主存儲器的利用率比較高(2)頁表相對比較簡潔(3)地址變換的速度比較快(4)對磁盤的管理比較簡潔主要缺點:(1)程序的模塊化性能不好(2)頁表很長,須要占用很大的存儲空間例如:虛擬存儲空間4GB,頁大小1KB,則頁表的容量為4M字,16MB。9.4虛擬存儲器三、段式虛擬存儲器和段頁式虛擬存儲器1、段式虛擬存儲器:段是依據(jù)程序的自然分界劃分的長度可以動態(tài)變更的區(qū)域。通常,程序員把子程序、操作數(shù)和常數(shù)等不同類型的數(shù)據(jù)劃分到不同的段中,并且每個程序可以有多個相同類型的段。在段式虛擬存儲系統(tǒng)中,虛地址由段號和段內(nèi)地址(偏移量)組成。虛地址到實主存地址的變換通過段表實現(xiàn)。每個程序設(shè)置一個段表,段表的每一個表項對應(yīng)一個段。每個表項至少包含下面三個字段:(1)有效位:指明該段是否已經(jīng)調(diào)入實存。(2)段起址:指明在該段已經(jīng)調(diào)入實存的狀況下,該段在實存中的首地址。(3)段長:記錄該段的實際長度。設(shè)置段長字段的目的是為了保證訪問某段的地址空間時,段內(nèi)地址不會超出該段長度導(dǎo)致地址越界而破壞其他段。段表本身也是一個段,可以存在輔存中,但一般是駐留在主存中。9.4虛擬存儲器2、段式虛地址向?qū)嵈娴刂返淖儞Q過程見圖地址映象方法:每個程序段都從0地址起先編址,長度可長可短,可以在程序執(zhí)行過程中動態(tài)變更程序段的長度。地址變換方法:由用戶號找到基址寄存器,讀出段表起始地址,與虛地址中段號相加得到段表地址,把段表中的起始地址與段內(nèi)偏移D相加就能得到主存實地址。9.4虛擬存儲器3、段式虛擬存儲器特點段式虛擬存儲器有很多優(yōu)點:①段的邏輯獨立性使其易于編譯、管理、修改和愛護,也便于多道程序共享。②段長可以依據(jù)須要動態(tài)變更,允許自由調(diào)度,以便有效利用主存空間。段式虛擬存儲器也有一些缺點:①因為段的長度不固定,主存空間安排比較麻煩。②簡潔在段間留下很多外碎片,造成存儲空間利用率降低。③由于段長不確定是2的整數(shù)次冪,因而不能簡潔地像分頁方式那樣用虛地址和實地址的最低若干二進制位作為段內(nèi)偏移量,并與段號進行干脆拼接,必需用加法操作通過段起址與段內(nèi)偏移量的求和運算求得物理地址。因此,段式存儲管理比頁式存儲管理方式須要更多的硬件支持。9.4虛擬存儲器4、段頁式虛擬存儲器段頁式虛擬存儲器是段式虛擬存儲器和頁式虛擬存儲器的結(jié)合。實存被等分成頁。每個程序則先按邏輯結(jié)構(gòu)分段,每段再依據(jù)實存的頁大小分頁,程序按頁進行調(diào)入和調(diào)出操作,但可按段進行編程、愛護和共享。段頁式虛擬存儲器
用戶按段寫程序,每段分成幾個固定大小的頁
地址映象方法:每個程序段在段表中占一行,在段表中給出頁表長度和頁表的起始地址,頁表中給出每一頁在主存儲器中的實頁號。
地址變換方法:先查段表,得到頁表起始地址和頁表長度,再查頁表找到要訪問的主存實頁號,把實頁號p與頁內(nèi)偏移d拼接得到主存實地址。9.4虛擬存儲器【例1】假設(shè)有三道程序,基號用A、B和C表示,其基址寄存器的內(nèi)容分別為SA、SB和SC。程序A由4個段構(gòu)成,程序C由3個段構(gòu)成。段頁式虛擬存儲系統(tǒng)的邏輯地址到物理地址的變換過程如圖所示。在主存中,每道程序都有一張段表,A程序有4段,C程序有3段,每段應(yīng)有一張頁表,段表的每行就表示相應(yīng)頁表的起始位置,而頁表內(nèi)的每行即為相應(yīng)的物理頁號。請說明虛實地址變換過程。解:地址變換過程如下:(1)由存儲管理部件依據(jù)基號C找到段表基址寄存器表第c個表項,獲得程序C的段表基址SC。再依據(jù)段號S(=1)找到程序C段表的第S個表項,得到段S的頁表起始地址b。(2)依據(jù)段內(nèi)邏輯頁號P(=2)檢索頁表,得到物理頁號(圖中為10)。(3)物理頁號與頁內(nèi)地址偏移量拼接即得物理地址。 假如計算機系統(tǒng)中只有一個基址寄存器,則基號可不要。多道程序切換時,由操作系統(tǒng)修改基址寄存器內(nèi)容。事實上,上述每個段表和頁表的表項中都應(yīng)設(shè)置一個有效位。只有在有效位為1時才依據(jù)上述流程操作,否則需中斷當(dāng)前操作先進行建表或調(diào)頁。 可以看出,段頁式虛擬存儲器的缺點是在由虛地址向主存地址的映射過程中須要多次查表,因而實現(xiàn)困難度較高.可以看出,段頁式虛擬存儲器的缺點是在由虛地址向主存地址的映射過程中須要多次查表,因而實現(xiàn)困難度較高.加快內(nèi)部地址變換的方法造成虛擬存儲器速度降低的主要緣由:(1)要訪問主存儲器必需先查段表或頁表,(2)可能須要多級頁表。頁表級數(shù)的計算公式:其中:Nv為虛擬存儲空間大小,Np為頁面的大小,Nd為一個頁表存儲字的大小例如:虛擬存儲空間大小Nv=4GB,頁的大小Np=1KB,每個頁表存儲字占用4個字節(jié)。計算得到頁表的級數(shù):通常僅把1級頁表和2、3級頁表中的一小部分駐留在主存中1.書目表基本思想:用一個小容量高速存儲器存放頁表地址變換過程:把多用戶虛地址中U與P拼接,相聯(lián)訪問書目表。讀出主存實頁號p,把p與多用戶虛地址中的D拼接得到主存實地址。假如相聯(lián)訪問失敗,發(fā)出頁面失效懇求。主要優(yōu)點:與頁表放在主存中相比,查表速度快。主要缺點:可擴展性比較差,主存儲器容量大時,書目表造價高,速度低。2.快慢表3.散列函數(shù)
目的:把相聯(lián)訪問變成按地址訪問
散列(Hashing)函數(shù):Ah=H(Pv)接受散列變換實現(xiàn)快表按地址訪問避開散列沖突:接受相等比較器地址變換:相等比較與訪問存儲器同時進行9.4虛擬存儲器四、虛存的替換算法虛擬存儲器的替換算法與cache的替換算法類似,有FIFO算法、LRU算法、LFU算法等,下面通過示例來說明過程。【例2】假設(shè)主存只允許存放a、b、c三個頁面,邏輯上構(gòu)成a進c出的FIFO隊列。某次操作中進程訪存的序列是0,1,2,4,2,3,0,2,1,3,2(虛頁號)。若分別接受FIFO算法、FIFO+LRU算法,請用列表法分別求兩種替換策略狀況下主存的命中率。解:可以參見Cache中例子9.4虛擬存儲器當(dāng)從輔存調(diào)頁至主存而主存已滿時,也須要進行主存頁面的替換。虛擬存儲器的替換算法與cache的替換算法類似,有FIFO算法、LRU算法、LFU算法等。9.4虛擬存儲器虛擬存儲器的替換算法與cache的替換算法不同的是:(1)cache的替換全部靠硬件實現(xiàn),而虛擬存儲器的替換有操作系統(tǒng)的支持。(2)虛存缺頁對系統(tǒng)性能的影響比cache未命中要大得多,因為調(diào)頁須要訪問輔存,并且要進行任務(wù)切換。(3)虛存頁面替換的選擇余地很大,屬于一個進程的頁面都可替換。9.5存儲保護一、存儲區(qū)域愛護任何軟件都存在著出現(xiàn)錯誤的可能。一旦程序出錯,應(yīng)盡量將錯誤的影響限制在最小范圍內(nèi)。當(dāng)多個用戶共享主存時,應(yīng)防止由于一個用戶的程序有意或無意破壞其他用戶的程序和系統(tǒng)軟件,以及一個用戶程序非法地訪問不是安排給它的主存區(qū)域。在虛擬存儲系統(tǒng)中,通常接受頁表愛護、段表愛護和鍵愛護等方法。9.5存儲保護1、頁表愛護和段表愛護原理見圖9.5存儲保護2、鍵愛護方式9.5存儲保護3、環(huán)愛護方式9.5存儲保護二、訪問方式愛護 對主
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 董海霞二年級語文《葡萄溝》教學(xué)設(shè)計新
- DB4415T 48-2025茶角胸葉甲綜合防控技術(shù)規(guī)程
- LED廣告屏幕安裝與維護合同模板
- 個人消費貸款合同范例
- 二手住宅買賣合同正規(guī)范本
- 二手房分期付款合同書
- 不履行購銷合同糾紛案解析
- 專利權(quán)轉(zhuǎn)讓及合作協(xié)議合同書
- 專項企業(yè)產(chǎn)(股)權(quán)托管合同文本
- 個人債務(wù)重組還款合同樣本
- 浙江省2023年中考科學(xué)真題全套匯編【含答案】
- DB31-T 1440-2023 臨床研究中心建設(shè)與管理規(guī)范
- 老客戶維護方案
- 高處作業(yè)安全教育培訓(xùn)講義課件
- dk膠原蛋白培訓(xùn)課件
- 萬科物業(yè)管理公司全套制度(2016版)
- 動物檢疫技術(shù)-動物檢疫處理(動物防疫與檢疫技術(shù))
- 英語經(jīng)典口語1000句
- 進模模具設(shè)計
- 2021年高考化學(xué)真題和模擬題分類匯編專題20工業(yè)流程題含解析
- 2023年北京市高考作文評分標(biāo)準(zhǔn)及優(yōu)秀、滿分作文
評論
0/150
提交評論