操作系统(三十七)基本分页存储的概念
3.6?基本分頁存儲的概念
介紹完連續(xù)分配管理方式后我們再來介紹非連續(xù)分配管理方式,非連續(xù)管理方式主要有三種:基本分頁存儲管理、基本分段存儲管理、段頁式存儲管理。這節(jié)主要介紹分頁存儲管理方式。
目錄
3.6?基本分頁存儲的概念
3.6.1 分頁存儲
3.6.2 頁表
3.6.3 頁表的大小
3.6.4 通過頁表實(shí)現(xiàn)邏輯地址與物理地址的轉(zhuǎn)換
3.6.1 分頁存儲
??將內(nèi)存空間分為一個個大小相等的分區(qū),每個分區(qū)就是一個“頁框”(頁框=頁幀=內(nèi)存塊=物理塊=物理頁面)。每個頁框有一個編號,即“頁框號”(頁框號=頁幀號=內(nèi)存塊號=物理塊號=物理頁號),頁框號從0開始。
將進(jìn)程的邏輯地址空間也分為與頁框大小相等的一個個部分,每個部分稱為一個“頁”或“頁面” 。每個頁面也有一個編號,即“頁號”,頁號也是從0開始。 ? 易混辨析:頁、頁面 & 頁框、頁幀、物理頁頁號、頁面號 vs 頁框號、頁幀號、物理頁號 操作系統(tǒng)以頁框為單位為各個進(jìn)程分配內(nèi)存空間。進(jìn)程的每個頁面分別放入一個頁框中。也就是說,進(jìn)程的頁面與內(nèi)存的頁 框有一一對應(yīng)的關(guān)系。各個頁面不必連續(xù)存放,可以放到不相鄰的各個頁框中。(注:頁框不能太大,否則可能產(chǎn)生過大的內(nèi)部碎片造成浪費(fèi))3.6.2 頁表
? 在分頁系統(tǒng)中,允許將進(jìn)程的各個頁離散地存儲在內(nèi)存不同的物理塊中,但系統(tǒng)應(yīng)能保證進(jìn)程的正確運(yùn)行,即能在內(nèi)存中找到每個頁面所對應(yīng)的物理塊。為此,系統(tǒng)又為每個進(jìn)程建立了一張頁面映像表,簡稱頁表。 ?? ? 從上面這張示意圖我們可以看出:?一個進(jìn)程對應(yīng)一張頁表、進(jìn)程的每個頁面對應(yīng)一個頁表項(xiàng)、每個頁表項(xiàng)由“頁號”和“塊號”組成、頁表記錄進(jìn)程頁面和實(shí)際存放的內(nèi)存塊之間的映射關(guān)系、每個頁表項(xiàng)的長度是相同的。 ? 那么問題來了,每個頁表項(xiàng)的長度是多少呢以及如何通過頁表實(shí)現(xiàn)邏輯地址與物理地址的轉(zhuǎn)換呢?3.6.3 頁表的大小
??假設(shè)某系統(tǒng)物理內(nèi)存大小為 4GB,頁面大小為 4KB,則每個頁表項(xiàng)至少應(yīng)該為多少字節(jié)?
? 內(nèi)存塊大小=頁面大小=4KB=B則4GB/B=個內(nèi)存塊。所以要想表示個內(nèi)存塊那么內(nèi)存塊的地址就是0--1即需要20bit來表示。又1B=8bit所以20bit至少3B來表示,因此我們得到需要3B來表示塊號。在頁表中頁表項(xiàng)是連續(xù)存放的,所頁號只是一個虛擬概念并不會占用存儲空間(類似于數(shù)組下標(biāo)),如果一個進(jìn)程有(n+1)(從0頁到n頁)頁那么就需要3*(n+1)B來存儲這個頁表。
? 注意這只是邏輯地址,要想計(jì)算物理地址還需要加上起始的基地址。
3.6.4 通過頁表實(shí)現(xiàn)邏輯地址與物理地址的轉(zhuǎn)換
? 在上節(jié)講裝入方式時我們提到動態(tài)重定位通過重定位寄存器可以實(shí)現(xiàn)裝入時的邏輯地址與物理地址的轉(zhuǎn)換。在這里頁表就類似于重定位寄存器起到了中介的作用:邏輯地址A 對應(yīng)的物理地址 = P號頁面在內(nèi)存中的起始地址+頁內(nèi)偏移量W
??在某計(jì)算機(jī)系統(tǒng)中,頁面大小是50B。某進(jìn)程邏輯地址空間大小為200B,則邏輯地址 110 對應(yīng)的頁號、頁內(nèi)偏移量是多少?
由題意可知邏輯地址被劃分為如下四部分:
頁號以及頁內(nèi)偏移量的計(jì)算如下:頁號 = 邏輯地址 / 頁面長度? ???頁內(nèi)偏移量 = 邏輯地址 % 頁面長度
則本題中? ? ? ?頁號 = 110 / 50 = 2? ? ? ?頁內(nèi)偏移量 = 110 % 50 = 10
按照上述的計(jì)算方式我們不難總結(jié)出一個規(guī)律:如果每個頁面大小為 2KB,用二進(jìn)制數(shù)表示邏輯地址,則末尾 K 位即為頁內(nèi)偏移量,其余部分就是頁號。這也是計(jì)算機(jī)用2的整數(shù)次冪來表示頁面大小的原因。如果遇到一些奇奇怪怪的數(shù)據(jù)我們還是按照公式計(jì)算頁號以及頁內(nèi)偏移量。
總結(jié)
以上是生活随笔為你收集整理的操作系统(三十七)基本分页存储的概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年上半年内容型社交电商行业分析报
- 下一篇: 薪酬陷阱!