一.實現記憶體擴充的技術:
(1)覆蓋技術:
在程式執行中,在不同時刻把同乙個儲存區分配給不同程式段和資料段,實現儲存區共享。適用於連續儲存(單一連續區分配,分割槽)
如圖bdg共享乙個儲存區(三個程序不同時發生),cefh同理
(2)交換技術(對換技術):
1.定義:
將記憶體中某程序的的程式和資料(全部或部分)寫入外存的交換區,從而騰出記憶體空間給其他程序使用。
磁碟交換區的管理:
磁碟空間劃分為兩個部分:檔案區和交換區
二者的區別:
(1)儲存方式不同:檔案區資訊已檔案形式存放,多採用離散儲存;交換區資訊按字元流形式存放,多用連續儲存。
(3)儲存時間不同:檔案區適合長久儲存,交換區適合存放短期資料。
3.方式:對換作業 , 對換程序。
(3)虛擬儲存技術(對換頁面/段面)
按照這一原理,乙個程序執行時,可不必將程序全部裝載到程序中,只需把當前執行的部分程式和資料放到記憶體中,隨著程序執行的不斷推進,其餘部分可隨時裝入,實現小記憶體運次那個大程式的效果。
2.虛擬儲存的主要特點:
(1)離散性 (裝入虛擬儲存的程序以離散形式存放)
(2)多次性(任意程序或其中的一部分可以分多次裝載到程序中)
(3)對換性(根據需要程序可以換進換出)
(4)虛擬性(虛擬出乙個較大的邏輯空間)
3.虛擬儲存的實現:
一.請求分頁儲存管理:
#1.資料結構:
位示圖 頁表
(結構) : 頁號 狀態(存在位)幀號 外存位置訪問標識 修改位
若狀態位(存在位)為0,說明缺頁,則記錄該缺頁在外存中的位置,訪問情況及修改情況。
(1)不發生缺頁時:
當排程乙個程序時,系統將其頁表首址裝入cpu中的頁表控制暫存器。執行中用相對位址的高階部分作為頁號去檢索頁表,看該頁是否已在記憶體。若已在記憶體就按普通分頁機制的方式直接生成實體地址,並將訪問標誌和修改標誌設定好。
(2)發生缺頁時:
若該頁不在記憶體中,則發生缺頁中斷,通過中斷處理機制將缺頁調入到記憶體中。
中斷處理過程:
(1) 保留程序上下文。
(2) 判斷記憶體是否有空閒幀?若有,則獲取乙個幀號no,轉(4)。
(3) 騰出乙個空閒幀,即:
(3)-1呼叫置換演算法,選擇乙個淘汰頁ptj。
(3)-2 ptj (s)0;
(3)-3 no ptj (f);。
(3)-4 若該頁曾修改過,則:
(3)-4-1 請求外存交換區上乙個空閒塊b。
(3)-4-2 ptj (d)b。
(3)-4-3 啟動i/o管理程式,將該頁寫到外存上。
(4)按頁表中提供的缺頁外存位置,啟動i/o,將缺頁裝入空閒幀中。
(5)修改頁表的狀態字段。pti(f)no;pti(s)1。
(6)結束。
涉及到缺頁調入,則要考慮到缺頁調入策略:
頁面置換演算法
主要有6種:
(1)最佳置換演算法(opt):(理想狀態下)
思想:每次選擇在給出的頁號序列中最城市間不再使用的頁面置換出去。
(2)先進先出演算法:
將最先進來的頁調換出去,可以用棧,用棧底儲存最開始的值,每次置換都換底。
(3)最近最久未使用演算法(lru):
將最近最久未使用的頁面置換出去,若用棧,則在(2)方法的基礎上還要每次都要更新棧頂,相關的棧底也會改變
(4)最近最經常不使用(lfu)
(5)clock(鐘錶)演算法(近似lru演算法(nru))
該演算法中將被置換的候選幀集合構成乙個環狀緩衝區,並設乙個迴圈移動指標。初始時,該指標指向緩衝區的頭部。當某頁被選擇置換後,指標將順序指向緩衝區的下乙個幀。環狀緩衝區中的每個候選幀關聯乙個「訪問位」,記作a,當某幀的a=0時,說明該幀最近未被訪問。顯然,乙個剛剛調入頁面的幀,以及剛剛訪問過的幀,其a=1。
(6)改進的clock演算法:
為每個幀增設乙個關聯的
「修改位」
a=0且m=0:該幀中所存的頁面最近沒有訪問,也沒有修改。
l a=1且m=0:該幀中所存的頁面最近訪問過,但沒有修改。
l a=0且m=1:該幀中所存的頁面最近沒有訪問,但修改了。
l a=1且m=1:該幀中所存的頁面最近訪問過,也修改過。
頁面調入策略:
(1)從檔案區調入
(2)從交換區調入
(3)從記憶體中的磁碟交換區調入
系統的有效訪存時間t的估算
•假定系統的乙個記憶體週期為ma,調入缺頁的時間為la,缺頁率為p,那麼:
t=(1-p)´ma + p ´(la+ ma)
= ma- p´ma + p´la + p´ma
= ma +p ´ la.
二.請求分段儲存管理:
#1.資料結構: 段表
(結構) 段號 駐留位 記憶體基址 外存位址 長度 訪問許可權 訪問位 修改位 增補位
Linux虛擬儲存技術
標準linux使用虛擬儲存器技術,這種技術用於提供比計算機系統中實際使用的物理記憶體大得多的記憶體空間。使用者將感覺到好像程式可以使用非常大的記憶體空間,從而使得程式設計人員在寫程式時不用考慮計算機中的物理記憶體的實際容量。為了支援虛擬儲存管理器的管理,linux系統採用分頁 paging 的方式來...
8 儲存模型2 虛擬儲存技術
8.1虛擬儲存技術 virtual memory 虛擬儲存技術 當程序執行時,先將其一部分裝入記憶體,另一部分暫留在磁碟,當要執行的指令或訪問的資料不在記憶體時,由作業系統自動完成將它們從磁碟調入記憶體的工作。虛存 把記憶體與磁碟有機地結合起來使用,從而得到乙個容量很大的記憶體,即虛存。虛存是對記憶...
頁式虛擬儲存管理 虛擬儲存技術的實現方式是什麼?
1 在伺服器端的虛擬儲存 伺服器廠商會在伺服器端實施虛擬儲存。同樣,軟體廠商也會在伺服器平台上實施虛擬儲存。這些虛擬儲存的實施都是通過伺服器端將映象對映到外圍儲存裝置上,除了分配資料外,對外圍儲存裝置沒有任何控制。伺服器端一般是通過邏輯卷管理來實現虛擬儲存技術。邏輯卷管理為從物理儲存對映到邏輯上的卷...