① 某系統採用頁式存儲管理,擁有邏輯空間32頁,每頁2K,擁有物理空間1M。
2)邏輯空間有32頁,進程的頁表最多有32個頁表項,1M=2^10k的物理空間,每個物理2K,故有1M/2K=2^9個物理塊,故頁表項需要多少位=塊號多少位來表示,即2^9個物理塊要用多少位2進制數來表示,可以看出是要表示完這些,至少需要9位的2進制數。
3)第三題同2)一樣的道理,1M物理空間推出了頁表項最少9位,現在物理空間減少一半=2^9K,所以項的位數用8位表示就足夠了,塊號改成8位,至於頁表的頁號,邏輯空間仍是32頁,所以頁表項數不變,頁號也不變。
② 某計算機系統採用頁式存儲管理,程序的邏輯地址總長為32位,頁大小是4096位元組,用戶
這個好做:邏輯地址為32位,表示地址寄存器為32位,地址寄存器位數=頁數的位數+每頁位數;
題目中地址寄存器為32位,每頁為4096位元組,即2^12,說明每頁的位數w為12位,則32-12=20位 ,這個20位即頁數的位數,那頁數總計2^20=1M
③ 某系統採用頁式存儲管理策略,擁有邏輯地址空間32頁,每頁2K,擁有物理空間1M。
頁式存儲管理該技術近年來已廣泛用於微機系統中,支持頁式想念管理的硬體部件通常稱不「存儲管理部件」。
存儲管理部件首先把內存分成大小相等的許多區,把每個區稱不「塊」,塊是進行主存空間分配的物理單位。同時,要求程序中的邏輯地址也進行分頁,頁的大小與塊的大小一致辭。這樣,就可把程序信息按頁存放到塊中。於是,頁式存儲品提供編程使用的邏輯地址由兩部分組成:頁號和頁內地址。其格式為
頁號 頁內地址
頁式存儲的地址結構確定了內存分塊的大小,也就決定了頁面的大小。
頁式存儲管理分配內存空間以物理頁面為單位,由於物理頁面的大小是固定的,所以只要在內存分配表中具有可以指了哪能些塊已經分配、哪能些塊尚未分配以及當前剩餘的空閑塊數待三種不同的標識即可。
簡單的內存分配表可以用一張「位示圖」構成。假設內存的可分配區域被分成256塊,則可用字長為32位的8個字作為「位示圖「。位示圖中的每一位與一個內存塊對應,每一位的值可以是0或1,0表示對應的內存塊為空閑,1表示已佔用。在位示圖中再增加一個位元組記錄當前剩餘的總空閑塊數,如圖4-13所示。初始化時系統在位示圖中把操作系統佔用氫對就的位置成1,欺余們均置0,剩餘空閑塊數為可分配的空閑內存塊總數。
在進行內存分配時,先查看空閑塊數是否能滿足程序要求。若不能滿足,則不進行分配,程序就能裝入內存;若能滿足,則根據需求從位示圖中找出一些為0的位,把這些位置成1,並從空閑塊數中減去本次分配的塊數,然後按照找到的位算出對應的塊號。
當找到一個為0的位後,根據它所在的字型大小、位號,按如下公式就可計算出對應的塊號:
塊號=字型大小*字長+位號
把程序裝入到這些內存塊中,並為該程序建立頁表表。
當程序執行結束語時,則應收回它所佔用的內存塊。根據歸還的塊號計算出該塊在位示圖中對應的位置,將佔用標志修改成0,再把回收的塊數加入到空閑塊數中。
假定歸還塊的塊號為I,則在位於圖中對應的位置為:
字型大小=[I/字長],位號=I mod字長
頁式存儲管理要有硬體的地址轉換機構作支持。同時,要為每個被裝入內存在進程提供一張賈表。該頁表所在內存的起始地址和長度作為現場信息存放在該進程的進程式控制制塊中。一旦進程被調度進入處理器執行,這些信息被作為恢復現塊算送入系統的地址映射機制中的寄存器里。
1、 頁式存儲管理的地址轉換
為了實現頁式存儲管理,系統要提供一對硬體的頁表控制寄存器,即頁表始址寄存器和頁表長度寄存器,另外還需要高速緩沖存儲器的支持。頁表始址寄存器,用於保存正在運行進程的頁表在內存的首地址,當進程被調度程序選中投入運行時,系統將其頁表首地址從進程式控制制塊中取出送入該寄存器。頁表長度寄存器,用於保存正在運行進程的頁表的長度,當進程被選中運行時,系統將它從進程式控制制塊中取出送入該寄存器。
頁表指出該程序邏輯地址中的頁號與所佔用的主存塊號之間的對應關系。頁表的長度由程序擁有的頁面數而定,故每個程序的頁表長度可能不是不同的。
頁表又是硬體進行地址轉換的依據,每執行一條指令時按邏輯地址中的頁號查頁表。若頁表中無此頁號,則產生一個「地址錯」的程序性中斷事件。若頁表中有此頁號,則右得到對應的主存塊號,按計算公式可轉換成訪問的主存的物理地。
物理地址的計算公式為:
物理地址=內存塊號*塊長+頁內地址
根據二進制乘法運算的性質,一個二進制數乘以2n結果實際上是將該數左移n位。所以,實際上是把內存塊號作為絕對地址的高位地址,而頁內地址作為它的低地址部分。
2、 快表
一般而言,頁式存儲管理中的頁表是存放在內存中的。於是,當要按給定的邏輯地址進行讀寫時,必須訪問兩次主存。第一次按頁號讀出頁表中對應的塊號,第二次按計算出來的絕對地址進行讀寫。兩次訪問主存顯然延長了指令的執行周期,降低了執行速度。
為了提高存取速度,有兩種方法。一種是在地址映射機制中增加一組高速寄存器保存頁表,這需要大量的硬體開銷,在經濟上不可行。另一種方法是在地址映射機制中增加一個小容量的聯想寄存器,它由高速緩沖存儲器組成。
利用高速緩沖存儲器存放當前訪問最頻繁的少數活動頁面的頁號,這個高速緩沖存儲器稱為「快表」。
快表中登記了頁表中的一部分頁號與主存塊號的對應關系。根據程序的存儲訪問局部性原理,在一段時間內總經常訪問少數幾頁,若所這引起頁希望在快表中,顯然可快速查找並提高指令執行速度。
快表只存放當前進程最活躍的少數幾頁,隨著進程的推進,快表的內容動態進行更新。
實際上,查找快表和查找內存頁表是並行進行的,一旦發現快表中有與所查頁號一致的邏輯頁號就停止查找內存頁表,而直接利用快表中的邏輯頁號。
採用快表後,地址轉換的時間大大下降。假定訪問主存的時間為200納秒,訪問高速緩沖存儲器的時間為40納秒,高速緩沖存儲器為16個單元時,查快表的命中率為90%。於是,按邏輯地址轉換成約對地址進行存取的平均訪問時間為:
(200+40)*90%+(200+200)*10%=256(納秒)
不使用快表需兩次訪問主存的時間:200*2=7400納秒。可見使用快表與不使用快表相比,訪問時間下降了36%。
④ 假定某採用頁式存儲管理的系統中,主存容量為1m
1M=1024K/M*1024B/K=2^20B
1M=1024K 1024k/(255+1)=4k
4k=4*1024b/k=2^12b
⑤ 操作系統問題 頁表項
首先說頁表項是指:在分頁系統中,為每個進程配置了一張頁表,進程邏輯地址空間中的每一頁,在頁表中都對應有一個頁表項。
因為題中說邏輯空間32頁,所以對應最多為32個頁表項;
邏輯空間每頁的大小和物理空間每頁大小是相同的,所以物理塊數=物理空間大小/頁大小=1M/1K=2^9,故每個頁表項至少有9位;
物理塊跟頁表項沒啥關系;
懂了請記得採納哈!
⑥ 某系統採用頁式存儲管理,擁有邏輯空間32頁,每頁2K,擁有物理空間1M。
(1)由於該系統擁有32個邏輯頁面,所以頁號必須用5位表示;而每頁2K,頁內地址需要11位來描述。
(2)進程的頁表項最多為32項;若不考慮訪問許可權,每個頁表項至少9位。
(3)如果物理空間減半,則頁表中頁表項數不變,但每項的長度可減少1位。
⑦ 某系統採用頁式存儲管理策略,擁有邏輯空間32頁,每頁2K,擁有物理空間1M
32是2的5次方啊,2K是2的11次方。因此邏輯地址的結構如下:
高5位表示頁號,低11位表示頁內偏移量
⑧ 某系統採用頁式存儲管理策略,擁有邏輯空間32頁,每頁2K,擁有物理空間1M,請寫出邏輯地址的格式。
邏輯空間32頁,即:2 的 5次方, 所以 邏輯地址中頁號必需用5位來描述, 而每頁2K,即:2048 位元組, 也就是 2 的 11次方,所以頁內偏移量必需用11位來描述,所以邏輯地址格式為:
15 1 1 | 10 0
頁號 | 頁內偏移量
⑨ 操作系統分頁存儲管理問題請教
分頁存儲管理
每頁都有信息記錄的,便於後續查找。繼續裝,混淆了找不到了
真正的模擬操作系統中 內存的分配 (分頁存儲管理)(操作系統模擬多進程內存分配)
連續的分配方式會形成許多碎片,雖然通過緊湊的方法將血多碎片拼接成可用的大塊空間 但須付出很大的開銷。如果允許將一個進程直接分散地裝入到許多不相鄰接的分區中,則無需緊湊。基於這一思想產生了離散分配方式。如果離散分配方式是頁,則被稱為分頁存儲管理方式
1. 目的:
內存管理是操作系統的核心內容。本設計要求用高級語言編寫模擬一個簡單的內存管理程序。通過本實驗可以加深對常見操作系統的內存管理模塊的實現方法的理解。
2. 要求
(1)設計用戶程序數組、PCB、頁表、內存分配表等數據結構;
(2)編程模擬OS內存的動態分配過程。
(1)初始條件
用txt文件存儲如下數據:內存總大小、進程數據(到達時間、結束時間、所需內存大小)
(2) 運行過程
程序先讀入初始txt文檔,獲得數據;然後根據數據的內容來模擬操作系統進行內存的分配與回收過程;
要求程序能夠給出運行的中間過程和結果(最好輸出到文件)。包括:某時刻進程的頁表、總得內存分配情況。最好能夠動態的演示此過程。