日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统:基本分页存储管理方式

發(fā)布時間:2025/3/21 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统:基本分页存储管理方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、離散分配方式

----連續(xù)分配方式(分區(qū)存儲管理)要求把作業(yè)放在一個連續(xù)的存儲區(qū)中,因而會形成許多“碎片”,固定分區(qū)會產(chǎn)生內(nèi)部碎片,動態(tài)分區(qū)會產(chǎn)生外部碎片。雖然可通過“緊湊”方法將許多碎片拼接成可用的大塊空間,但需為之付出很大開銷。如果允許將一個進程直接分散的裝入到許多不相鄰接的分區(qū)中,則無需再進行“緊湊”。基于這一思想而產(chǎn)生了離散分配方式。

如果離散分配的基本單位是頁,則稱為分頁存儲管理方式;

如果離散分配的基本單位是段,則稱為分段存儲管理方式。

----?在分頁存儲管理方式中,如果不具備頁面置換功能,則稱為基本的分頁存儲管理方式,或稱為純分頁存儲管理方式。它不具有支持實現(xiàn)虛擬存儲器的功能,它要求把每個作業(yè)全部裝入內(nèi)存后方能運行。

也就是說,不具備頁面置換功能的基本分頁存儲管理方式要求把每個作業(yè)全部裝入內(nèi)存之后方能運行。

2、頁面與頁表

----頁面和物理塊

分頁存儲管理是將一個進程的邏輯地址空間分成若干個大小相等的片,稱為頁面或頁,并為各頁加以編號,從0開始,如第0頁、第1頁等。相應(yīng)地,也把內(nèi)存空間分成與頁面相同大小的若干個存儲塊,稱為(物理)塊或頁框(frame),也加以編號,如0#塊,1#塊等等。在為進程分配內(nèi)存時,以塊為單位將進程中的若干個頁分別裝入到多個可以不相鄰接的物理塊中

由于進程的最后一頁經(jīng)常裝不滿一塊而形成了不可利用的碎片,稱之為“頁內(nèi)碎片”。

----頁面大小

問:頁面大小該如何設(shè)置?(內(nèi)存碎片、置換的效率問題、頁表長度、內(nèi)存利用率)

在分頁系統(tǒng)中的頁面大小應(yīng)適中。

頁面若太小,粒度比較小一方面雖然可使內(nèi)存碎片減小,有利于提高內(nèi)存利用率。但是另一方面頁表會比較大,也會使每個進程占用較多的頁面,從而導(dǎo)致進程的頁表過長(頁號->塊號),占用大量內(nèi)存,還會降低頁面換進換出的效率。

若頁面較大,雖然可以減少頁表的長度,提高頁面換進換出的速度,卻又會使頁內(nèi)碎片增大因此,頁面的大小選擇應(yīng)適中,且頁面大小應(yīng)是2的冪,通常為512B~8KB。

----地址結(jié)構(gòu)

分頁地址中的地址結(jié)構(gòu)有兩部分:前一部分是頁號P,后一部分為頁內(nèi)位移量W(或稱為頁內(nèi)地址)。如下圖所示:如果邏輯地址空間是2的m次方,頁面大小是2的n次方(字節(jié)),那么邏輯地址的高m-n位是頁號,低n位是頁內(nèi)偏移量。


上述地址結(jié)構(gòu)中,兩部分的地址長度為32位,其中0~11位(計12位)為頁內(nèi)偏移量,即每頁大小=2^12=4KB;12~31位(計20位)為頁號,即(頁表項的個數(shù))最多的頁數(shù)=2^20=1MB。頁內(nèi)偏移量也稱為頁內(nèi)位移、頁偏移或頁內(nèi)地址等。對于某特定機器,其地址結(jié)構(gòu)是一定的。若給定一個邏輯地址空間中的地址為A,頁面的大小為L,則頁號P和頁內(nèi)地址W可按下式求得:?P=INT(A/L)????????W=(A)MOD(L)????其中,INT是整除函數(shù),MOD是取余函數(shù)。

例如,系統(tǒng)的頁面大小是1KB(1024B),設(shè)A=2170B,則得出P=2,W=2170-2048=122.

----頁表

在分頁系統(tǒng)中,允許將進程的各個頁離散地存儲在內(nèi)存不同的物理塊中,但系統(tǒng)應(yīng)能保證進程的正確運行,即能在內(nèi)存中找到每個頁面所對應(yīng)的物理塊,為此,系統(tǒng)又為每個進程建立了一張頁面映像表,簡稱頁表。

在進程地址空間內(nèi)的所有頁(0~n),依次在頁表中有一頁表項,其中記錄了相應(yīng)頁在內(nèi)存中對應(yīng)的物理塊號。在配置了頁表后,進程執(zhí)行時,通過查找該頁表,即可找到每頁在內(nèi)存中的號(頁框號),頁表的作用是實現(xiàn)從頁號到物理塊號的地址映射。即使在簡單的分頁系統(tǒng)中,也常在頁表的表項中設(shè)置一存取控制字段,用于對該存儲塊中的內(nèi)容加以保護。

--?當存取控制字段僅有一位時,可用來規(guī)定該存儲塊中的內(nèi)容是允許讀/寫,還是只讀。

--?當存取控制字段為二位,則可規(guī)定為讀/寫、只讀和只執(zhí)行等存取方式。

如果有一進程試圖去寫一個只允許讀的存儲塊時,將引起操作系統(tǒng)的一次中斷。如果要利用分頁系統(tǒng)去實現(xiàn)虛擬存儲器,還需在頁表中增設(shè)狀態(tài)位/修改位等數(shù)據(jù)項來供頁面換進換出參考,具體可看請求分頁存儲管理方式。http://blog.csdn.net/dongyanxia1000/article/details/51727339?

為了實現(xiàn)上面的方便,系統(tǒng)中設(shè)置了一個頁表寄存器(PTR,Page Table Register),其中存放頁表在內(nèi)存的起始地址F和頁表的長度M。進程未執(zhí)行時,頁表的起始地址和長度存放在進程控制塊(PCB)中。當進程執(zhí)行時,才將頁表起始地址和長度存入頁表寄存器中。

假設(shè)頁面大小為L,頁表長度(頁表項的個數(shù))為M,邏輯地址A通過地址變換得到物理地址E的過程如下:

--1)計算頁號P=(int)(A/L);頁內(nèi)偏移量W=A%L。

--2)比較頁號P(理論值0~M-1)和頁表長度M,若P>=?M,則產(chǎn)生越界中斷,否則轉(zhuǎn)到下一步執(zhí)行。(判斷是否越界)

--3)頁表中頁號P對應(yīng)的頁表項的地址=頁表起始地址F + 頁號P x 頁表項大小,取出該頁表項中的物理塊號b的內(nèi)容。

--4)計算E=bxL+W???(頁面的大小就是物理塊的大小,頁內(nèi)地址就是物理塊內(nèi)的地址)

--5)用得到的物理地址E去訪問內(nèi)存。(放到總線,訪問內(nèi)存)

以上整個地址變換過程都是由硬件自動完成的。地址變換過程如下圖所示:


?請求分頁存儲管理方式

-----?請求分頁系統(tǒng)是建立在基本分頁的基礎(chǔ)上的,為了能支持虛擬存儲器功能而增加了請求調(diào)頁功能和頁面置換功能。

相應(yīng)地,每次調(diào)入換出的基本單位都是長度固定的頁面,這使得請求分頁系統(tǒng)在實現(xiàn)上要比請求分段系統(tǒng)簡單。

請求分段系統(tǒng)在換進和換出時是可變長度的段因此,請求分頁便成為目前最常用的一種實現(xiàn)虛擬存儲器的方式。

請求分頁中的硬件支持?

-- 為了實現(xiàn)請求分頁,系統(tǒng)必須提供一定的硬件支持。除了需要一臺具有一定容量的內(nèi)存及外存的計算機系統(tǒng)外,還需要有頁表機制缺頁中斷機構(gòu)以及地址變換機構(gòu)

1)頁表機制

在請求分頁系統(tǒng)中所需要的主要數(shù)據(jù)結(jié)構(gòu)頁表。其基本作用仍然是將用戶空間中的邏輯地址變換為內(nèi)存空間中的物理地址

由于只將應(yīng)用程序的一部分調(diào)入內(nèi)存,還有一部分仍在盤上,故需在頁表中再增加若干項,供程序(數(shù)據(jù))在換進、換出時參考。

在請求分頁系統(tǒng)中的每個頁表項如下所示:

各字段的說明如下:

---- 狀態(tài)位P:用于指示該頁是否已調(diào)入內(nèi)存,供程序訪問時參考。(“在/不在”位)

---- 訪問字段A:用于記錄本頁在一段時間內(nèi)被訪問的次數(shù),或記錄本頁最近已有多長時間未被訪問,供選擇換出頁面時參考

---- 修改位M:表示該頁在調(diào)入內(nèi)存后是否被修改過。置換頁面時參考。

由于內(nèi)存中的每一頁都在外存上有一份副本,因此,若未被修改,在置換該頁時就不需要將該頁寫回到外存上,直接丟棄,以減少系統(tǒng)的開銷啟動磁盤的次數(shù);已被修改,則必須將該頁重寫到外存上,以保證外存中所保留的始終是最新副本。

---- 外存地址:用于指出該頁在外存上的地址,通常是物理塊號,供調(diào)入該頁時參考。(頁框號)

有的操作系統(tǒng)實現(xiàn)還添加了?

保護位:指出一個頁允許什么類型的訪問。讀寫?讀?寫?

TLB禁止位:當前頁表項是否禁止TLB?

2)缺頁中斷機構(gòu)

-- 在請求分頁系統(tǒng)中,每當所要訪問的頁面不在內(nèi)存中時,便產(chǎn)生一次缺頁中斷,請求OS將所缺之頁調(diào)入內(nèi)存。

-- 缺頁中斷作為中斷,同樣需要經(jīng)歷諸如保護CPU現(xiàn)場、分析中斷原因、轉(zhuǎn)入缺頁中斷處理程序進行處理、恢復(fù)CPU現(xiàn)場等幾個步驟。

-- 但缺頁中斷又是一種特殊的中斷,它與一般的中斷相比,有著明顯的區(qū)別,主要表現(xiàn)在下面兩個方面:

----?在指令執(zhí)行期間產(chǎn)生和處理中斷信號。通常,CPU都是在一條指令執(zhí)行完成后,才檢查是否有中斷請求到達。若有,便去響應(yīng),否則,繼續(xù)執(zhí)行下一條指令。然而,缺頁中斷是在指令執(zhí)行期間,發(fā)現(xiàn)所要訪問的指令或數(shù)據(jù)不在內(nèi)存時所產(chǎn)生和處理的。

----?一條指令在執(zhí)行期間,可能產(chǎn)生多次缺頁中斷。所以,系統(tǒng)中的硬件機構(gòu)應(yīng)能保存多次中斷時的狀態(tài),并保證最后能返回到中斷前產(chǎn)生缺頁中斷的指令處繼續(xù)執(zhí)行。

3)地址變換機構(gòu)

-- 請求分頁系統(tǒng)中的地址變換機構(gòu),是在分頁系統(tǒng)地址變換機構(gòu)的基礎(chǔ)上,為實現(xiàn)虛擬存儲器而增加了某些功能而形成的,

產(chǎn)生和處理缺頁中斷,以及從內(nèi)存中換出一頁的功能等等。

---- 在進行地址變換時,首先去檢索快表,試圖從中找出所要訪問的頁。若找到,便修改頁表項中的訪問位。對于寫指令,還需將修改位置成“1”。然后利用頁表項中給出的物理塊號和頁內(nèi)地址形成物理地址。地址變換過程到此結(jié)束。

---- 如果在快表中未找到該頁的頁表項時,應(yīng)到內(nèi)存中去查找頁表,再根據(jù)找到的頁表項中的狀態(tài)位P,了解該頁是否已調(diào)入內(nèi)存

---- 若該頁已調(diào)入內(nèi)存,這時應(yīng)將此頁的頁表項寫入快表,當快表已滿時,應(yīng)先調(diào)出按某種算法所確定的頁的頁表項;然后再寫入該頁的頁表項。

---- 若該頁尚未調(diào)入內(nèi)存,這時應(yīng)產(chǎn)生缺頁中斷,請求OS從外存該頁調(diào)入內(nèi)存

?


補充:硬失效和軟失效

軟失效:TLB沒有、內(nèi)存有,加載到TLB,利用頁表項中給出的物理塊號和頁內(nèi)地址形成物理地址。地址變換過程到此結(jié)束。

硬失效:TLB沒有、內(nèi)存沒有,缺頁中斷,調(diào)入缺少的頁

總結(jié)

以上是生活随笔為你收集整理的操作系统:基本分页存储管理方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。