




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