虛擬記憶體儲器

2021-09-28 15:14:58 字數 2580 閱讀 9573

虛擬儲存器管理:

實存管理需要將作業一次性全部裝入記憶體,作業的大小收到記憶體的限制。解決方法有兩種:

1、增加主存,

2、邏輯上擴充記憶體,即虛擬記憶體。

程式的區域性性特性:

時間區域性性:指程式中的某條指令一旦被執行,則在較短的時間內,該條指令可能被在執行

空間區域性性:指一旦程式訪問了某個儲存單元,在較短的時間內,其附近的儲存單元很可能也被訪問

虛擬儲存器的基本原理:

乙個作業在執行之前,沒有必要全部裝入記憶體,而僅需將那些當前要執行的部分指令和資料,先裝入記憶體即可啟動執行。

虛擬儲存技術:為使用者提供一種不受物理儲存器結構和容量限制的儲存技術,稱為虛擬儲存技術。

實質:虛擬位址空間與主存位址空間分開

虛擬空間限制:指令中位址場長度限制(主要原因),外部儲存器容量大小控制。

虛擬儲存器優點:

大程式:可以在較小的記憶體中執行較大的使用者程式

大的使用者空間:提供給使用者可用的虛擬記憶體空間通常大於物理記憶體

併發:可以在記憶體中容納更多的程式併發執行

易於開發:與覆蓋技術比較,不必影響程式設計時的程式結構。

分頁儲存器管理:

實存中需要將所有頁一次性裝入記憶體,虛存中只需要將部分頁裝入記憶體。

虛存中增加了請求調頁和頁面置換功能

多級頁表:由於虛存中只需要將部分頁裝入記憶體,所以剩餘的頁之間不再連續,並且沒必要每次都呼叫完整的頁表,浪費記憶體空間

因此通過乙個頂級頁表(頁目錄)為不再連續頁表提供索引,這是我所理解的二級頁表的本質。

可以節約記憶體空間

反向頁表:不依據程序的邏輯頁號來組織,用物理頁面號來組織(為每乙個頁架設定乙個頁表項,並按照頁架號排序。)

只含已調入主存的頁面,不在主存中的頁面需借助傳統頁表查詢頁架

大小只與記憶體大小、頁面大小計算。

大小計算:64m 主存,若頁面大小為 4k,則反向頁表只需 64kb(按32位系統計算)

包含:hash索引值 、頁架號

每個程序乙個反置頁表;虛擬位址中的邏輯頁號,經 k=hash(p)獲得 hash 值,並查詢 hash 表; 以 hash 表的索引值查詢反向表獲得頁架

如果程式過大頁表過長的情況下,使用反向頁表可以節約記憶體空間。

塊表:存放在關聯高速緩衝中的頁表

包含:頁號、頁架號、所屬程序和頁面保護許可權

過程:將常用部分的頁號、頁架存放在塊表中,在查詢工程中先查快表,再查傳統的頁表。

分頁機制的硬體支援:主存管理單元(mmu)用於完成位址轉換。

分段儲存器管理

同簡單分段增加了調段,段置換功能,

段表中增加了若干項:標誌位(存在位)、修改位、增長位(該段是否增長,虛擬頁中沒有)、訪問統計(如使用位)、訪問許可權、外存位址

虛擬段頁式儲存管理:

實現過程:先分段、在分頁

邏輯位址表示:使用三維表示,v=(s,p,d) s為段號,p為頁號,d為頁內位址偏移。

有段表、段頁、段表暫存器,用於實現位址轉換

優點:集合了段式、頁式的優點

缺點:頁內碎片比頁式多。

頁面置換演算法:是相對於記憶體中的位置來說的

頁面置換:將頁面納入外存,或將頁面裝入頁架的過程。

最佳置換演算法opt:選擇記憶體中「將來不被使用」或「在最遠的將來才被訪問」的頁面置換為新頁面,

特點:無法使用,因為無法預知將來

先進先出置換演算法fifo:選擇最早裝入記憶體頁架的頁面被置換

實現:設定乙個鍊錶,所有頁面按先後順序排列,成為乙個佇列,設定乙個指標指向最早的頁面。

缺點:與實際規律不符,最先呼叫的一般是經常訪問的,並且有可能會把正在執行的頁面被置換出去

二次機會置換演算法:fifo的改良,避免將最近經常被訪問的頁面被置換,

在鍊錶中增加訪問位,以表明該頁最近是否被訪問。被訪問為1 未被訪問為0,訪問位為0才可被置換

當鍊表指標指向訪問位為0的頁面,將此頁面置換出去,指標指向下一位

演算法開銷較大(鏈元素位置移動)

時鐘頁面置換演算法:改良二次機會的演算法開銷,

實現方式與二次置換演算法基本一樣,只不過將鍊錶改為了環形鍊錶,不再是佇列

最近最少使用置換演算法lru:選擇最近一段時間最長時間未被使用的頁面淘汰。「最近的過去」作為「最近的將來」

設定乙個64位計數器,從大到小自動計數;每個頁表目有乙個字段保留計數器,淘汰最小計數的頁表

缺點:效能最接近最佳置換演算法,但需要計入頁面使用時間的先後次序,硬體開銷大,實現較困難

最近未使用置換演算法nur:選擇最近一段時間內未使用的頁面淘汰

設定兩個標誌屬性:訪問位a、修改位m

a=0,m=0:最佳淘汰

a=0,m=1:次佳淘汰

a=1,m=0:次差淘汰

a=1,m=1:最差淘汰

抖動(belady現象):採用fifo演算法時,如果對乙個程序未分配它所要求的全部頁面,有時就會出現分配的頁面數增多但缺頁率反而提高的異常現象

工作集與頁面分配策略:

何時將頁面調入記憶體:請求分頁、提前分頁

分配給程序的頁架數是否可變:固定分配、可變分配

頁面置換是區域性還是全域性:區域性置換、全域性置換

區域性置換:程序發生缺頁時,置換的頁面是本程序的頁面。

全域性置換:程序發生缺頁時,從主存中所有的頁面中挑選頁面置換。

微機原理 記憶體儲器

一 半導體儲存器 總述 計算機儲存總體上分為四級 cpu內部暫存器 快取記憶體 記憶體儲器 外儲存器。而記憶體儲器主要由兩種組成,rom和ram,ram佔比最大。1.1 rom rom的特點是斷電後不丟失其中儲存的程式和資料,如主機板上的bios 網絡卡上的啟動程式。rom是唯讀儲存器!rom一般由...

微機原理 3 記憶體儲器

儲存單元是存放資訊 程式和資料 的最小單位,用位址標識。乙個儲存單元儲存乙個位元組的資料。8位二進位制資訊 儲存容量 位 位元組 字等 儲存規則 高位元組放高位址 低位元組放低位址 位元組 byte 8個二進位制位。用b表示。1kb 1024b 210 b 1mb 1024kb 220b 1gb 1...

mysql 儲存器 MySQL記憶體儲器引數及調整

mysql記憶體引數及調整 1.慢查詢 日誌 slow launch time 2 查詢大於某個時間的值 單位 s slow query log on off 開啟關閉慢查詢日誌 slow query log file opt data host slow.log 慢查詢日誌位置 2.連線數 max...