虛擬內(nèi)存有哪些調(diào)度方式?虛擬內(nèi)存3種調(diào)度方式詳解!
虛擬內(nèi)存,也被我們稱為虛擬存儲(chǔ)器,計(jì)算機(jī)正在運(yùn)行的數(shù)據(jù)可以存放于虛擬內(nèi)存中。為增進(jìn)大家對虛擬內(nèi)存的認(rèn)識(shí),本文將對虛擬內(nèi)存的3種調(diào)度方式予以介紹。如果你對虛擬內(nèi)存具有興趣,不妨和小編一起來繼續(xù)往下閱讀哦。
調(diào)度方式有分頁式、段式、段頁式3種。頁式調(diào)度是將邏輯和物理地址空間都分成固定大小的頁。主存按頁順序編號(hào),而每個(gè)獨(dú)立編址的程序空間有自己的頁號(hào)順序,通過調(diào)度輔存中程序的各頁可以離散裝入主存中不同的頁面位置,并可據(jù)表一一對應(yīng)檢索。頁式調(diào)度的優(yōu)點(diǎn)是頁內(nèi)零頭小,頁表對程序員來說是透明的,地址變換快,調(diào)入操作簡單;缺點(diǎn)是各頁不是程序的獨(dú)立模塊,不便于實(shí)現(xiàn)程序和數(shù)據(jù)的保護(hù)。段式調(diào)度是按程序的邏輯結(jié)構(gòu)劃分地址空間,段的長度是隨意的,并且允許伸長,它的優(yōu)點(diǎn)是消除了內(nèi)存零頭,易于實(shí)現(xiàn)存儲(chǔ)保護(hù),便于程序動(dòng)態(tài)裝配;缺點(diǎn)是調(diào)入操作復(fù)雜。將這兩種方法結(jié)合起來便構(gòu)成段頁式調(diào)度。在段頁式調(diào)度中把物理空間分成頁,程序按模塊分段,每個(gè)段再分成與物理空間頁同樣小的頁面。段頁式調(diào)度綜合了段式和頁式的優(yōu)點(diǎn)。其缺點(diǎn)是增加了硬件成本,軟件也較復(fù)雜。大型通用計(jì)算機(jī)系統(tǒng)多數(shù)采用段頁式調(diào)度。
1、頁式調(diào)度
在頁式虛擬存儲(chǔ)系統(tǒng)中,虛擬空間被分成大小相等的頁,稱為邏輯頁或虛頁。主存空間也被分成同樣大小的頁,稱為物理頁或?qū)嶍摗O鄳?yīng)地,虛擬地址分為兩個(gè)字段:高位字段為虛頁號(hào),低位字段為頁內(nèi)地址。實(shí)存地址也分為兩個(gè)字段:高位字段為實(shí)頁號(hào),低位字段為頁內(nèi)地址。同時(shí),頁的大小都取2的整數(shù)冪個(gè)字。
通過頁表可以把虛擬地址轉(zhuǎn)換成物理地址。每個(gè)程序設(shè)置一張頁表,在頁表中,對應(yīng)每一個(gè)虛頁號(hào)都有一個(gè)條目,條目內(nèi)容至少包含該虛頁所在的主存頁面地址(實(shí)頁號(hào)),用它作為實(shí)存地址的高位字段;實(shí)頁號(hào)與虛擬地址的頁內(nèi)地址相拼接,就產(chǎn)生完整的實(shí)存地址,據(jù)此訪問主存。
2、段式調(diào)度
頁面是主存物理空間中劃分出來的等長的固定區(qū)域。分頁方式的優(yōu)點(diǎn)是頁長固定,因而便于構(gòu)造頁表、易于管理,且不存在外碎片。但分頁方式的缺點(diǎn)是頁長與程序的邏輯大小不相關(guān)。例如,某個(gè)時(shí)刻一個(gè)子程序可能有一部分在主存中,另一部分則在輔存中。這不利于編程時(shí)的獨(dú)立性,并給換入/換出處理、存儲(chǔ)保護(hù)和存儲(chǔ)共享等操作造成麻煩。
另一種劃分可尋址的存儲(chǔ)空間的方法稱為分段。段是按照程序的自然分界劃分的、長度可以動(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)對應(yīng)一個(gè)段,每個(gè)表項(xiàng)至少包括三個(gè)字段:有效位(指明該段是否已經(jīng)調(diào)入主存)、段起址(該段在實(shí)存中的首地址)和段長(記錄該段的實(shí)際長度)。
3、段頁式調(diào)度
段頁式虛擬存儲(chǔ)器是段式虛擬存儲(chǔ)器和頁式虛擬存儲(chǔ)器的結(jié)合。
首先,實(shí)存被等分成頁。在段頁式虛擬存儲(chǔ)器中,把程序按邏輯結(jié)構(gòu)分段以后,再把每段按照實(shí)存的頁的大小分頁,程序按頁進(jìn)行調(diào)入和調(diào)出操作,但它又可按段實(shí)現(xiàn)共享和保護(hù)。因此,它可以兼有頁式和段式系統(tǒng)的優(yōu)點(diǎn)。它的缺點(diǎn)是在地址映像過程中需要多次查表,虛擬地址轉(zhuǎn)換成物理地址是通過一個(gè)段表和一組頁表來進(jìn)行定位的。段表中的每個(gè)表目對應(yīng)一個(gè)段,每個(gè)表目有一個(gè)指向該段的頁表的起始地址(頁號(hào))及該段的控制保護(hù)信頁表指明該段各頁在主存中的位置以及是否已裝入、已修改等標(biāo)志。
以上便是此次帶來的虛擬內(nèi)存相關(guān)內(nèi)容,通過本文,希望大家對虛擬內(nèi)存已經(jīng)具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!