作業系統 虛擬記憶體技術

2021-10-22 03:57:21 字數 2131 閱讀 6653

本文介紹作業系統裡的虛擬記憶體技術,它是目前最常用的記憶體擴充技術。

本文先介紹了虛擬記憶體的概念,

再介紹如何實現虛擬記憶體,只以請求分頁管理方式為例來表示如何實現;

再比較各種頁面置換演算法,用以確定將哪個頁面換出到外存;

最後是作業系統如何給程序頁面分配、置換的策略;

從以上幾個方面來理解虛擬記憶體技術。

這些問題都將通過虛擬記憶體技術解決。

區域性性原理是指cpu訪問儲存器時,無論是訪問指令還是訪問資料,所訪問的儲存單元都趨於聚集在乙個較小的連續區域中。

基於區域性性原理,就可以在程式裝入時,可以將程式中很快會用到的部分裝入記憶體,暫時用不到的部分留在外存,就可以讓程式開始執行;

在程式執行過程中,當所訪問的資訊不在記憶體時,由作業系統負責將所需資訊從外面調入記憶體,然後繼續執行程式;

若記憶體空間不夠,由作業系統負責將記憶體中暫時用不到的資訊換出到外存;

在作業系統的管理下,在使用者看來似乎有乙個比實際記憶體大的多的記憶體,這就是虛擬記憶體。

與傳統的非連續分配儲存管理方式上的主要區別是新增請求調頁功能和頁面置換功能;

請求分頁管理中,為了實現請求調頁,作業系統需要知道每個頁面是否已經調入記憶體;如果沒有調入,也麼也需要知道該頁面在外存中存放的位置;

當記憶體空間不夠時,要實現頁面置換,作業系統也需要通過某些指標來決定到底換出哪個頁面;有的頁面沒有被修改過,就不用再浪費時間寫回外存;有的頁面修改過,就需要將外存中的舊資料覆蓋,因此作業系統也需要記錄各個頁面是否被修改的資訊。

在請求分頁儲存管理中,當記憶體空間不夠時,需要使用頁面置換演算法來決定將哪個頁換出到外存。因為頁面的換入/換出是io操作,會有較大的開銷,因此好的頁面置換演算法應該追求更少的缺頁率

時鐘置換演算法是一種效能和開銷比較均衡的演算法,又稱為clock演算法,或最近未使用演算法(nru,not recently used)

駐留集是指請求分頁儲存管理中給程序分配的物理塊的集合;

在採用了虛擬儲存技術的作業系統中,駐留集大小一般小於程序的總大小;

若駐留集太小,會導致頻繁缺頁,效能消耗大;若駐留集太大,會導致多道程式併發度下降,資源利用率低;所以應該選擇乙個合適的駐留集大小。

系統為每個程序分配一定梳理的物理塊,在整個執行期間都不改變;

若程序在執行中發生缺頁,則只能從該程序在記憶體中的頁面中選出一頁換出,然後再調入需要的頁面;

這種策略的缺點是:很難在剛開始就確定應為每個程序分配多少個物理塊才算合理。

剛開始會為每個程序分配一定數量的物理塊,作業系統會保持乙個空閒物理塊佇列;

當某進行傳送缺頁時,從空閒物理塊中取出一塊分配給該程序;若已無空閒物理塊,則可選擇乙個未鎖定的頁面換出外存,再將該物理塊分配給缺頁的程序。

採用這種策略時,只要某程序發生缺頁,都將獲得新的物理塊,僅當空閒物理塊用完時,系統才會選擇乙個未鎖定的頁面調出,被選擇調出的頁可能是系統中任何乙個程序的頁,因此該被選中的程序物理塊會減少,缺頁率增加。

剛開始為每個程序分配一定數量的物理塊,當某程序發生缺頁時,只允許從該程序自己的物理塊中選出乙個進行換出外存;

如果程序在執行中頻繁缺頁,系統會為該程序多分配幾個物理塊,直至該程序缺頁率趨勢到適當程度;反之,如果程序在執行中缺頁率極低,則可適當的減少分配給該程序的物理塊;

預調頁策略

一般用於程序執行前,由程式設計師指出應該先調入哪些部分;

請求調頁策略

程序執行時,發生缺頁再調頁。

是指剛剛換出的頁面馬上又要換入記憶體,剛剛換入的頁面馬上又要換出外存,這種頻繁的頁面排程行為成為抖動,或顛簸。

產生抖動的主要原因是程序頻繁訪問的頁面數目高於可用的物理塊數。

作業系統 虛擬記憶體

1.虛擬記憶體術語 虛擬記憶體 程式引用記憶體使用位址與記憶體系統用於識別物理儲存站點的位址是不同的,程式生成的位址會自動轉換成機器指令。虛擬記憶體的大小收到定址機制和可用的備用記憶體量的限制,而不受記憶體儲存位置實際數量的限制。虛擬位址 在虛擬記憶體中分配給某一位置的位址使該位置可以被訪問,彷彿它...

作業系統虛擬記憶體

虛擬記憶體是計算機作業系統提供的一種記憶體管理技術,它使得應用程式認為它擁有連續可用的記憶體 乙個連續完整的位址空間 而實際上,它通常是被分隔成多個物理記憶體碎片,還有部分暫時儲存在外部磁碟儲存器上,在需要時進行資料交換。與沒有使用虛擬記憶體技術的系統相比,使用這種技術的系統使得大型程式的編寫變得更...

作業系統 虛擬記憶體

虛擬記憶體介紹 虛擬記憶體是計算機系統記憶體管理的一種技術。虛擬記憶體的重要意義是定義了乙個連續的虛擬位址空間,並且把記憶體擴充套件到硬碟空間。虛擬記憶體使得應用程式認為它擁有連續的可用記憶體,但實際上它通常被分隔成多個物理記憶體碎片,還有部分暫時儲存在外存上,在有需要時進行資料交換。虛擬記憶體技術...