作業系統 虛擬記憶體管理

2021-10-06 07:50:21 字數 2162 閱讀 3507

1.外存資源

1.1 swap空間

1.2file檔案

1.3 輸入井

1.4 輸出井

2.外存空間劃分

2.1靜態等長,2^i,稱為block

2.2 分配形式

空閒塊鏈

空閒塊表

字塊映像圖、

3.程序和外存對應關係

3.1界位址

每程序佔一組外存連續塊

每程序佔兩組外存連續塊(雙對界)

3.2頁式

程序一頁,外存一塊

3.3 段式

每段佔外存若干連續塊

4.無虛擬問題

4.1 不能執行比記憶體大的程式

4.2 程序全部裝入記憶體,浪費空間(程序活動具有區域性性)

單控制流的程序需要較少部分在記憶體

多控制流程序需要較多部分在記憶體

5.虛擬儲存

程序部分裝入記憶體,部分(或全部)裝入外存,執行時訪問在外存部分動態調入,記憶體不夠淘汰。

6.頁式儲存管理

程序執行前:

全部裝入外存,部分裝入記憶體。

多個邏輯頁全部裝入外存

頁表裡包括內外標識

需要乙個外存的swap空間的存放位址

程序執行時:

訪問頁不在記憶體,發生缺頁中斷,中斷處理程式;

在記憶體找一空閒位置

如沒有,按淘汰演算法淘汰乙個

如需要,將淘汰頁面寫回外存,修改頁表和總頁表

讀入所需頁面(切換程序)

7記憶體頁框靜態分配策略

7.1 靜態分配

1.1程序執行固定分配,一執行就分配好。

1.平均數 每個程序分配的頁框數 (總頁框數/系統最初設定允許的最大程序數)

2.按程序長度比例分配: pi共si頁面;s=(s1+,+sn);記憶體共m個頁架;ai=(si/s)xm

3.按程序優先順序分配 (每個優先順序程序/所有優先順序的和=比例x頁框總數)

4.按程序長度和優先順序比例分配

長度比例和優先順序比例的值換成長度和優先順序的和

缺點:(1)沒有反應程式結構 (不同的分支占有的記憶體數不一樣)

(2)程式在不同時刻的行為特性 (在時間段之內,程序完全順序執行,沒有邏輯控制判斷)

靜態分配:外存儲存程序的全部頁面

優點:速度快—淘汰時不必寫回(未修改)

缺點:外存浪費

動態分配: 外存僅僅保持程序不在記憶體的頁面

優點:節省外存

缺點:速度慢—淘汰時必須寫回

頁面調入時機:

請調: upon page fault,發生缺頁中斷時調入

預調:before page fault,將要訪問時調入(根據程式順序行為,不一定準)。

乙個程序的第i頁-------》可能訪問p+1頁

7.2置換演算法

最佳淘汰演算法(opt–optimal)

淘汰策略:淘汰將來最長時間以後才用到的頁面

fifo

淘汰最先調入的頁面

依據:先進入的頁面可能已經使用完畢

缺陷:有些**和資料可能整個程式執行中運用。

lru:使用過最久的先淘汰

淘汰最近一次訪問距當前時間最長的

實現:當乙個頁面被訪問時,如在棧中,取出壓到棧頂;

否則直接壓入棧頂,滿時淘汰棧底

nur: 最近不用的先淘汰

淘汰最近一段時間未用到的

實現:每頁增加乙個訪問標識,訪問置1,定時清0

二次機會:

淘汰裝入最久且最近未被訪問的頁面

實現時:採用拉鍊資料機構

時鐘置換:

改進的時鐘演算法:

8。顛簸(thrashing)

頁面在記憶體與外存之間頻繁的換入換出

原因:1.分配給程序物理頁過少

2.淘汰演算法不合理

3.程式結構不好

關於程式結構對頁故障的影響:

1.長跳轉

2.全域性變數的分散定義

3.陣列訪問---訪問時盡量避免連續跨行

9.工作集模型和頁故障反饋

根據工作集模型動態的對程序所需要的頁框數進行調整

工作集(working set):

程序在一段時間內所訪問頁面的集合

10pffb (page fault feed back)

11.虛擬段式儲存管理:

13.

作業系統記憶體管理 虛擬記憶體

按照固定大小將程序的位址空間分為多個頁面,每乙個頁面內部都有連續的位址.這些頁被對映到物理記憶體,但是並不是所有的頁都在記憶體中時程式才能執行.當程式需要已經在物理記憶體中的位址空間時,由硬體完成對映 當程式引用不在記憶體中的位址空間時,產生缺頁中斷,由作業系統將頁面調入記憶體.位址的轉化 建立頁表...

作業系統 虛擬記憶體

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

作業系統虛擬記憶體

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