【作業系統】儲存器管理
【作業系統】處理機排程簡述
【作業系統】之程序管理
【作業系統】經典的同步問題(生產者消費者問題, 哲學家進餐問題, 讀寫問題)
記憶體的容量有限, 如果有大作業或大量作業執行, 記憶體就會不夠用. 為解決這一問題邊催生了虛擬儲存器的概念.
常規儲存器管理方式的特徵
一次性
作業必須一次性地全部裝入記憶體後才能開始執行.
駐留性
作業被裝入記憶體後, 整個作業都一直駐留在記憶體中, 其中任何部分都不會被換出, 直至作業執行結束.
區域性性原理
由2023年p.denning提出: 在較短的時間內, 程式的執行僅侷限於某個部分, 相應地, 它所訪問的儲存空間也侷限於某個區域.
他提出了幾個論點:
程式執行時, 除了少部分的轉移和過程呼叫指令外, 在大多數情況下是順序執行的.
過程呼叫將會使用程式執行軌跡由一部分區域轉至另一部分區域.
程式中存在許多迴圈結構, 這些結構雖然只有少數指令構成, 但是他們將被多次執行.
程式中號包括許多對資料結構的處理, 這寫往往都侷限在很小的範圍內.
侷限性還表現在時間和空間方面
定義具有請求調入和置換功能,能從邏輯上對記憶體容量加以擴充的儲存器系統
特徵多次性. 乙個作業中的程式和資料無需再作業執行時一次性全部裝入記憶體, 而是允許被分成多次調入記憶體執行. (只需當前要執行的部分程式和資料裝入記憶體即可)
對換性. 乙個作業中的程式和資料, 無須在作業執行時一直常駐記憶體, 而是允許在作業的執行過程中進行對換操作.(在程序執行期間, 將有用的程式或資料換入, 無用的則換出)
虛擬性. 能夠從邏輯上擴充記憶體容量. 提高記憶體利用率
虛擬性是以多次性和對換性為基礎的.虛擬儲存器可以通過請求分頁, 請求分段的方法實現, 它們都需要軟硬體支援, 主要硬體有頁(段)表機制, 缺頁(段)中斷機構, 位址變換結構
頁號物理塊號
狀態位p
訪問欄位a
修改位m
外存位址
每當要訪問的頁面不再記憶體時, 便產生依次缺頁中斷, 請求os將所缺之頁調入記憶體.
最小物理塊數
最小物理塊數能保證程序正常執行, 它取決於指令的格式, 功能和定址方式.
記憶體分配策略
內存在進行分配時可以採取固定分配和可變分配.
頁面置換時可以採取全域性置換和區域性置換.
通過以上可以組合一下三種策略:
固定分配區域性置換
為每個程序分配多少物理塊是根據程序型別(互動型或批處理型)或根據程式設計師的建議來確定.
可變分配全域性置換
凡是產生缺頁的物理塊, 都將獲得新的物理塊.
可變分配全域性置換
為每個程序分配一定數目的物理塊, 但當某程序發現缺頁時, 只允許從該程序在記憶體的頁面中選擇一頁換出.
物理塊分配演算法
平均分配演算法. 將系統中所有可供分配的物理塊平均分配給各個程序.
按比例分配演算法. 根據程序大小按比例分配物理.假設系統中有n個程序, 每個程序頁面數為, 則系統中頁面數總和為
. 物理總塊數為m, 則每個程序能分到的物理塊數為
.考慮優先權的分配演算法. 一部分按比例分配, 一部分根據程序的優先權分配
opt演算法淘汰以後不使用或者在最長(未來)時間內不再被訪問的頁面
最佳置換演算法有最好的效能當無法實現, 通常用它作為標準評價其他演算法淘汰最先進入記憶體的頁面, 即在記憶體中駐留時間最久的頁面.
淘汰最近最久未使用的頁面
淘汰最近時期使用最少的頁面.
lfu演算法的頁面訪問圖和lru演算法的頁面訪問圖完全相同為每頁設定一位訪問位, 再將記憶體中的所有頁面都通過鏈結指標鏈結成乙個迴圈佇列. 當某頁被訪問時, 其訪問位被置1. 置換演算法在選擇一頁淘汰時, 只需檢查頁的訪問位. 如果是0, 就選擇該頁換出; 若為1, 則重新將它置0, 暫不換出; 再按照fifo演算法檢查下乙個頁面. 當檢查到佇列中的最後乙個頁面時, 若其訪問位仍為1, 則再返回到隊首去檢查第乙個頁面.
改進clock演算法
淘汰的頁面即是未使用過的頁面, 又是未被修改過的頁面.
由訪問位a和修改位m可以組合成下面四種型別的頁面:
其執行過程分為以下三步:
從指標所指當前位置開始, 掃瞄迴圈佇列, 尋找a=0且m=0的頁面, 將遇到的第乙個頁面作為淘汰頁. 在第一次掃瞄期間不改變訪問位a.
如果第一步失敗, 即查詢一輪後未遇到的第一類頁面, 則開始第二輪掃瞄, 尋找a=0且m=1的頁面, 將所遇到的第乙個這類頁面作為淘汰頁. 在第二輪掃瞄期間, 將所有掃瞄過的頁面的訪問位置都置0.
第二步也失敗, 亦即未找到第二類頁面, 則將指標返回到開始的位置, 並將所有的訪問位復0. 然後重複第一步. 若果仍失敗, 必要時重複第二步, 此時就一定能找到被淘汰的頁.
改進的clock演算法可減少磁碟的i/o操作次數, 但是系統開銷會增加.抖動現象: 在系統中的程序太多, 需要頻繁的進行程序的對換操作, 以至於占用太多時間, 從而處理機的利用率下降並趨於0的情況, 我們稱之為抖動. 通常用工作集來避免抖動
工作集是在某段時間內, 程序實際索要訪問的頁面集合. 我們將這些頁面又稱為活躍頁面.
預防抖動的方法
採取區域性置換策略
工作集演算法融入處理機排程
調節缺頁率
暫停程序
段名段長
段基址訪問方式
訪問欄位a
修改位m
存在位p
增補位外存始址
分為段名, 段長, 段基位址, 訪問方式, 訪問欄位a, 修改位m, 存在位p, 增補位, 外存位址
訪問方式, 該字段為兩位, 可執行(00), 可讀(01), 可寫(11)
訪問欄位a, 記錄該段的訪問次數
修改位m, 表示該頁調入記憶體後是否已被修改過
存在位p, 指示本段是否已調入記憶體
增補位, 特有字段, 表示本段在執行過程中是否做過動態增長.
外存始址, 指示本段在外存中的起始位址, 即起始盤塊號.
作業系統 虛擬儲存器
虛擬儲存器是在常規儲存器的擴充套件 常規虛擬器的特徵分為兩個 1 一次性。2 駐留性 侷限性原理分為 1 時間侷限性。2 空間侷限性 所謂虛擬儲存器,指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統 虛擬儲存器的特徵 1 多次性。2 對換性。3 虛擬性。需要請求分頁頁表機...
作業系統筆記 虛擬儲存器
虛擬儲存技術 從邏輯層面上實現對記憶體容量的擴充,改善系統效能 常規儲存器管理方式特徵 一次性駐留性 虛擬儲存器的工作原理 給予區域性性原理可知,應用程式在執行之前無需全部載入,而只需要載入少數頁面或段就可執行,其餘部分暫留外存。如果出現缺頁 段 就發出缺頁 段 請求,此時系統再講請求頁調入記憶體 ...
作業系統10 虛擬儲存器
作業大的無法執行 10.1 覆蓋技術與交換技術 在多道環境下擴充記憶體的方法,用以解決在較小的儲存空間中執行較大程式時遇到的矛盾。交換技術與覆蓋技術共同點 10.1.1 覆蓋技術 一般要求程式各模組之間有明確的呼叫結構,程式設計師要向系統指明覆蓋結構,然後由作業系統完成自動覆蓋。缺點 對使用者不透明...