1、離散分配方式
---- 連續分配方式(分割槽儲存管理)要求把作業放在乙個連續的儲存區中,因而會形成許多「碎片」,固定分割槽會產生內部碎片,動態分割槽會產生外部碎片。雖然可通過「緊湊」方法將許多碎片拼接成可用的大塊空間,但需為之付出很大開銷。如果允許將乙個程序直接分散的裝入到許多不相鄰接的分割槽中,則無需再進行「緊湊」。基於這一思想而產生了離散分配方式。如果離散分配的基本單位是頁,則稱為分頁儲存管理方式;如果離散分配的基本單位是段,則稱為分段儲存管理方式。
----在分頁儲存管理方式中,如果不具備頁面對換功能,則稱為基本的分頁儲存管理方式,或稱為純分頁儲存管理方式。它不具有支援實現虛擬儲存器的功能,它要求把每個作業全部裝入記憶體後方能執行。
2、頁面與頁表
---- 頁面和物理塊
分頁儲存管理是將乙個程序的邏輯位址空間分成若干個大小相等的片,稱為頁面或頁,並為各頁加以編號,從0開始,如第0頁、第1頁等。相應地,也把記憶體空間分成與頁面相同大小的若干個儲存塊,稱為(物理)塊或頁框(frame),也加以編號,如0#塊,1#塊等等。在為程序分配記憶體時,以塊為單位將程序中的若干個頁分別裝入到多個可以不相鄰接的物理塊中。由於程序的最後一頁經常裝不滿一塊而形成了不可利用的碎片,稱之為「頁內碎片」。
---- 頁面大小
在分頁系統中的頁面大小應適中。頁面若太小,一方面雖然可使記憶體碎片減小,有利於提高記憶體利用率。但是另一方面也會使每個程序占用較多的頁面,從而導致程序的頁表過長(頁號->塊號),占用大量記憶體,還會降低頁面換進換出的效率。若頁面較大,雖然可以減少頁表的長度,提高頁面換進換出的速度,卻又會使頁內碎片增大。因此,頁面的大小選擇應適中,且頁面大小應是2的冪,通常為512b~8kb。
---- 位址結構
,後一部分為頁內位移量w(或稱為頁內位址
上述位址結構中,兩部分的位址長度為32位,其中0~11位(計12位)為頁內偏移量,即每頁大小=2^12=4kb;12~31位(計20位)為頁號,即(頁表項的個數)最多的頁數=2^20=1mb。頁內偏移量也稱為頁內位移、頁偏移或頁內位址等。對於某特定機器,其位址結構是一定的。若給定乙個邏輯位址空間中的位址為a,頁面的大小為l,則頁號p和頁內位址w可按下式求得: p=int(a/l) w=(a)mod(l) 其中,int是整除函式,mod是取餘函式。
例如,系統的頁面大小是1kb(1024b),設a=2170b,則得出p=2,w=2170-2048=122.
---- 頁表
在分頁系統中,允許將程序的各個頁離散地儲存在記憶體不同的物理塊中,但系統應能保證程序的正確執行,即能在記憶體中找到每個頁面所對應的物理塊,為此,系統又為每個程序建立了一張頁面映像表,簡稱頁表。
在程序位址空間內的所有頁(0~n),依次在頁表中有一頁表項,其中記錄了相應頁在記憶體中對應的物理塊號。在配置了頁表後,程序執行時,通過查詢該頁表,即可找到每頁在記憶體中的塊號,頁表的作用是實現從頁號到物理塊號的位址對映。即使在簡單的分頁系統中,也常在頁表的表項中設定一訪問控制字段,用於對該儲存塊中的內容加以保護。
--當訪問控制欄位僅有一位時,可用來規定該儲存塊中的內容是允許讀/寫,還是唯讀。
--當訪問控制欄位為二位,則可規定為讀/寫、唯讀和只執行等訪問方式。
如果有一程序試圖去寫乙個只允許讀的儲存塊時,將引起作業系統的一次中斷。如果要利用分頁系統去實現虛擬儲存器,還需在頁表中增設狀態位/修改位等資料項來供頁面換進換出參考,具體可看請求分頁儲存管理方式。
為了實現上面的方便,系統中設定了乙個頁表暫存器(ptr,page table register),其中存放頁表在記憶體的起始位址f和頁表的長度m。程序未執行時,頁表的起始位址和長度存放在程序控制塊(pcb)中。當程序執行時,才將頁表起始位址和長度存入頁表暫存器中。
--1)計算頁號p=(int)(a/l);頁內偏移量w=a%l。
--2)比較頁號p(理論值0~m-1)和頁表長度m,若p>= m,則產生越界中斷,否則轉到下一步執行。
--3)頁表中頁號p對應的頁表項的位址=頁表起始位址f + 頁號p x 頁表項大小,取出該頁表項中的物理塊號b的內容。
--4)計算e=bxl+w(頁面的大小就是物理塊的大小,頁內位址就是物理塊內的位址)
--5)用得到的實體地址e去訪問記憶體。
以上整個位址變換過程都是由硬體自動完成
基本分頁 請求分頁儲存管理方式
基本分頁儲存管理方式具有如下特徵 1 一次性。要求將作業全部裝入記憶體後方能執行。許多作業在每次執行時,並非其全部程式和資料都要用到。如果一次性地裝入其全部程式,造成記憶體空間的浪費。2 駐留性。作業裝入記憶體後,便一直駐留在記憶體中,直至作業執行結束。儘管執行中的程序會因i o而長期等待,或有的程...
基本分頁 請求分頁儲存管理方式
基本分頁儲存管理方式具有如下特徵 1 一次性 要求將作業全部裝入記憶體後方能執行。許多作業在每次執行時,並非其全部程式和資料都要用到。如果一次性地裝入其全部程式,造成記憶體空間的浪費。2 駐留性 作業裝入記憶體後,便一直駐留在記憶體中,直至作業執行結束。儘管執行中的程序會因i o而長期等待,或有的程...
基本分段儲存管理方式
1 分段儲存管理方式的引入 引入分段儲存管理方式,主要是為了滿足使用者和程式設計師的下述一系列需要 1 方便程式設計 通常,使用者把自己的作業按照邏輯關係劃分為若干個段,每個段都是從0開始編址,並有自己的名字和長度。因此,希望要訪問的邏輯位址是由段名 段號 和段內偏移量 段內位址 決定的。2 資訊共...