作業系統 儲存管理4

2022-09-08 07:54:12 字數 2997 閱讀 5269

-----頁面置換演算法------

1.概念:當出現缺頁異常的時候,並且記憶體中的空閒頁面也用完,

此時必須把進行外存與記憶體的乙個頁面置換。

頁面置換演算法的功能:選擇合適的頁面進行置換。

2.置換演算法追求的目標

* 盡可能減少頁面置換的次數

* 將未來不用/短時間內不使用的頁面換出。

注意:置換演算法要考慮的是整個記憶體中所有程序執行的效能-並不只是某個程序

3.頁面鎖定:記憶體中不能被置換的頁面

* 描述必須常駐記憶體的邏輯頁面

* 作業系統核心頁面

* 要求響應速度的**和資料

* 頁表中的鎖定標誌位

4.置換演算法的評價方法

記錄程序訪問記憶體頁面的軌跡,模擬置換演算法,記錄缺頁次數

5.頁面置換演算法的分類

區域性置換演算法:每個程序分配的頁面個數確定,置換只會發生在自己的所屬頁面

全域性置換演算法:置換頁面是所有可能被置換的頁面

6.區域性置換演算法--程序分配的頁面數固定

最優演算法:**未來最長時間不會使用的頁面--看的是後面的訪問情況

opt特點:缺頁最少,但是是理想情況,實際系統無法**未來的訪問序列

可以作為其他置換演算法的評價標準

先進先出:按照時間順序置換,但是這個並不能保證是和程式的訪問特性一致

其實根據的是佇列的特性--時間。置換在記憶體中駐留時間最長的

fifo實現:維護乙個鍊錶:鏈頭放時間最長,剛進來的頁面放在鏈尾

先進先出特點:實現簡單;效能較差;增加程序頁面個數,缺頁率不一定會減少

(belady現象)很少會單獨使用該演算法

最近最久未用演算法:統計過去的訪問特徵,**未來訪問情況--演算法過於複雜

opt的近似。選擇最近最久未訪問的頁面被置換

(lru):依據最近最久沒訪問的頁面在未來一段時間也不會訪問

記錄每個頁面上次訪問的時間,到現在的時間差

最大的乙個頁面被置換出來。

lru實現:1.系統維護乙個按照最近一次訪問時間順序的頁面鍊錶;

鏈頭是剛剛訪問的頁面,鏈尾巴是最近未訪問的;

訪問時候將剛訪問的頁面置於鏈頭,缺頁置換鏈尾的頁面。

2.維護乙個活動頁面棧

訪問頁面時候壓棧頂並將相同的頁面刪除

缺頁時候置換棧底的頁面

lru實現過程:開銷比較大

時鐘演算法clock:對lru近似+fifo綜合;僅對頁面訪問情況進行大致的統計

僅僅記錄頁面是否被訪問;沒訪問的頁面按照進來的先後

順序進行置換出去。

clock資料結構:在頁表項中增加訪問位;把頁面組織成環形鍊錶

指標指向最先調入的頁表

演算法實現:頁面裝入的時候:訪問位0;頁面訪問的時候,訪問位1;

缺頁時候指標從當前位置順序查詢環形鍊錶

訪問位位0,就置換該頁面,新放入頁面為1

訪問位為1;則訪問位置0;並移動到下乙個頁面直到找到

訪問位為0可以被置換的頁面。

特點:是在lru和fifo中做折中

改進的clock: 減小修改頁面的處理開銷:對於修改的頁面不進行替換

在頁表專案:定義乙個修改位;修改過1;未修改就0

改進的clock思路:在訪問頁面的時候進行相應的修改

缺頁,修改頁面標誌位,以跳過有修改的頁面

對於修改過的頁面寫回操作會被統一操作

最不常用演算法ifu:對lru近似;缺頁時候,置換的是最少次數訪問的頁面

實現:為每個頁面設定計數,缺頁時候,置換出計數小的

特點:演算法開銷大;開始頻繁使用的頁面,但是以後不使用就

難以被置換出去,通過定期對這些頁面的計數減小。、

7.區域性置換演算法的特徵

1.belady現象:分配給程序頁面數增加,可能就出現缺頁次數增加

產生的原因:fifo演算法的置換特徵與程序訪問的動態特徵矛盾

被置換出去的頁面可能程序下次還會要訪問

產生belady的演算法:fifo

2.lru,fifo,clock比較

lru演算法效能好,但是系統開銷大(動態調整頁面的順序)

fifo系統開銷小,但是會產生belady現象(不進行動態調整)

clock是它們的折中;在訪問的過程中通過標準描述動態的關係

8.全域性置換演算法

區域性置換演算法並沒有考慮到程序的訪問差異

思路:為程序分配可變數目的物理頁面

在不同階段為程序分配不同數目的物理頁面

演算法:如何確定給程序分配多少頁面

程序個數與cpu利用率存在乙個關係:前邊是正比,但是存在極限限制

引入工作集:乙個程序當前正在使用的邏輯頁面的集合。w(t,v)

w(t,v):指的是當前時間之前的時間很短,訪問頁面的集合;工作集大小可變

工作集變化規律:不同的階段工作集大小不同

常駐集:在當前時刻,程序實際駐留記憶體的頁面集合。

工作集與常駐集的關係:

工作集是程序執行過程的固有特性

常駐集是取決於系統分配給程序的物理頁面和頁面置換演算法

常駐集包含於工作集:缺頁少

工作集發在劇烈變化,缺頁多

程序的常駐集大小達到一定數目;缺頁率不會明顯下降

工作集演算法:可以理解為最優演算法在全域性置換的體現

思路:換出不在工作集中的頁面

實現:訪問鍊錶:維護視窗內的訪存頁面鍊錶

訪存時候換出不在工作集中的;更新鍊錶

缺頁時候,換入,更新鍊錶

缺頁率置換演算法:缺頁率定義:兩次缺頁時間間隔的倒數

影響缺頁率原因:頁面置換演算法

分配給程序的頁面數目

頁面大小

程式的編寫方法

缺頁率置換演算法: 訪存的時候設定標誌

缺頁的時候計算時間間隔;>t置換未被引用<=t加入工作集

抖動和負載控制

抖動:程序擁有的物理頁面過少,不能包含工作集

造成大量缺頁,頻繁置換

程序執行速度變慢

產生抖動原因:記憶體中的程序數,每個程序獲取的頁面個數

作業系統需要在併發和缺頁率之間做折中

負載控制:通過控制併發程序數來進行系統的負載控制

作業系統儲存管理

分段單元 分頁單元 邏輯位址 段基址 32位偏移量 線性位址 虛擬位址,0 4gb 實體地址 6個段暫存器 cs code段 ss stack段 ds data段 es fs gs 通用段暫存器 16位的段選擇符就存放在以上段暫存器中 線性位址 4gb 被分成以固定長度為單位的組,即頁。頁內部連續的...

作業系統 儲存管理

儲存管理 1 所謂虛擬儲存技術,即在記憶體中保留一部分程式或資料,在外存 硬碟 中放置整個位址空間的副本。程式執行過程中可以隨機訪問記憶體中的資料或程式,但需要的程式或資料不在記憶體中時,就將記憶體中的部分內容根據情況寫回外存,然後從外存調入所需程式或資料,實現作業內部的區域性對換,從而允許程式的位...

作業系統 儲存管理

儲存管理中大概涉及到了下圖所示的這些知識點。在了解儲存管理之前,我們必須要知道計算機當中有那些儲存器,這些儲存器有那些特點,他們是如何工作的!如下圖所示 除了上面這三種儲存器,還有暫存器。暫存器是 處理器內的組成部分。暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令 資料和位址。在 處理器的控...