離散儲存主要包括分頁儲存和分段儲存兩種。
一。分頁儲存管理:
頁面:系統把程序劃分為與幀(儲存塊)大小相等的塊,成為頁面(這樣就可以讓乙個頁存入乙個幀中)。
#1資料結構:
1.位示圖:記錄系統中幀的使用情況。
2.頁表(pt)(放在系統區)
頁表:頁號幀號許可權(讀寫)
比如,系統規定頁面的長度為
1024
個位元組,則頁內位址可用
10個二進位制位表示(
1024=2
10)表示。若機器的位址碼是
16位二進位制數時,其中高
6位代表頁號,低
10位代表頁內位址。
這樣的位址結構,允許乙個程序的頁面總數達64頁。(頁號佔6位,2的6次方為64)
邏輯位址構成 《頁號,偏移》
從頁表暫存器中找到頁表的起始位址從而找到頁表,根據頁表中的頁號找到對應的幀號,幀號,偏移分別作為實體地址的高位和低位共同形成實體地址。
頁內偏移 與 幀內偏移應該是一樣的。
從此過程中可見讀取記憶體中的乙個運算元,需要訪問兩次記憶體(頁表暫存器+運算元)
#3.頁面分配與**:
(1)計算請求者需要的總幀數n。(所需記憶體空間大小/幀的大小)
(2)查位圖,若找不到足夠的空閒幀,編制「分配失敗」報告返回。
(3)索取乙個空閒頁表pt。
(4)從位圖中找出n個為0位,計算出對應的幀號,填入pt。
(5)將這些位改為1。(修改位示圖中的對應位,使用為1,不使用為0)
(6)將pt起始位址填入程序的pcb中。
(7)結束。
#4.記憶體共享:
可重入技術 。。。。
分頁管理總結:
•離散儲存,利於大程序裝入
•只有很少的頁內碎片,提高記憶體利用率
•ds:位示圖、頁表
•動態位址重定位
邏輯位址 實體地址
一維、二維 二維、一維
•頁面共享不易實現
二。分段管理技術:
1.所謂段可以理解為對一段程式的不同劃分,如分為主程式,函式,陣列等。
2.不會產生內碎片,但可能產生外碎片。
3.如在乙個有32位位址空間的分段管理系統中,段表的段首位址也必是一有32位。
#1.資料結構:
mat表
空閒分割槽鏈
段表:段表st,是用來記錄各個段位址對映關係的**,每個程序有一張。
各個分段在記憶體空間中的對應位置都登記在段表內。
段首位址段長度訪問控制
#2.位址重定位過程:
系統中設定段表控制暫存器,包括段表基址暫存器(stbr)和段表長度暫存器(stlr)
根據段表暫存器的內容找到對應段,根據段號找段的起始位址,與段內位址共同形成邏輯位址。
(1) 提取邏輯位址中的「段號」。
(2) 比較段號與stlr的段長度。如果超出段表長度,則返回「記憶體定位錯誤」,終止程序的執行。
(3) 從stbr中給出的段表首址開始,以段號為索引查詢該程序對應的段表,得到欲訪問段的首位址。
(4) 取出欲訪問段的首位址,加上邏輯位址中的偏移量得到實體地址。
#3.記憶體共享與保護:
分段管理模式下的資訊保護分兩級。第一級是防止程序發生超出儲存空間的訪問,第二級是阻止程序超出訪問許可權的讀寫。
三。段頁式管理:
(在段內分頁)
系統為乙個含有多分段的程序分配記憶體時,首先為這些分段建立段表,將各段長度填入表中。接下來為每個段分配位址空間。在這種系統中,
各分段有乙個
頁表,其首位址存放在段表中。
根據段表控制暫存器找到對應段號,根據段號找到頁號,根據頁號找到幀號,幀號加偏移形成實體地址。
邏輯位址《頁號,偏移》
(1)硬體邏輯中,將邏輯位址中的頁號p送入快取記憶體,與其中的所有頁號進行比較。找到相匹配的頁號後,讀出該頁面對應的幀號,送實體地址暫存器,與偏移量w共同合成乙個訪問記憶體的實體地址。
(2)若快取記憶體內找不到相匹配的頁號,表示欲訪問的頁號不在快表中。系統需要再訪問記憶體中的頁表。找到該頁的幀號,送實體地址暫存器與偏移量w共同合成訪問記憶體的實體地址。同時,將該頁及幀號複製到快表中。此時,如果快取記憶體已沒有空閒位置,應找到乙個最不常用的頁表項淘汰掉,換入新的頁表項。
為訪問一次快表的時間,t2
•如果一次查詢快表能找到所用的頁,我們稱作命中。此時的有效訪存時間
t
大約為:
t
=t1
+t2
•
如果一次查詢快表找不到所用的頁,稱作沒有命中。此時的有效訪存時間
t
將是:
t
=t1
+ 2t2
•
一般地,當查詢快表的命中率為
p
,則平均記憶體有效訪問時間
t
大約為:
t = p*(t1 + t2) + (1-p) *(t1 + 2 * t2)
離散儲存 鍊錶
定義 n個結點離散分配,彼此通過指標相連,每個結點只有乙個前驅節點,每個結點只有乙個後續結點,首節點沒有前驅節點,尾結點沒有後繼結點 專業術語 首節點 第乙個有效節點 尾結點 最後乙個有效節點 頭結點 頭結點的資料型別和首節點型別一樣 第乙個有效節點之前的那個節點 頭結點並不存放資料 頭結點的目的主...
儲存管理 段式儲存管理
分段儲存器的邏輯位址由兩部分組成 段號 單元號 注 段號加單元號是使用者自己設定,而頁號加單元號由系統自己切割的。段式儲存管理基於可變分割槽儲存管理實現,乙個程序要占用多個分割槽。硬體需要增加一組使用者可見的段位址暫存器 段 資料段 堆疊段 附加段 共位址轉換使用 段式儲存管理需要增加設定乙個段表,...
Linux儲存管理之管理磁碟
1 ll dev sd 檢視dev下面的所有磁碟 sd是sata介面 hd是ide介面 2 lsblk name maj min rm size ro type mountpoint 裝置名稱 裝置型別 序號 磁碟大小 是否唯讀 磁碟或分割槽 掛載點 1 進入分割槽 fdisk dev 磁碟名 先按...