存盤器管理了
存盤器管理的主要模式
邏輯地址:又稱相對地址,即用戶編程所使用的地址空間,邏輯地址從0開始編號,有兩種形式:一維邏輯地址(地址),二維邏輯地址(段號:段內地址)
段式程式設計:把一個程式設計成多個段,代碼段、資料段、堆疊段、等等,用戶可以自己應用段覆寫技術擴充記憶體空間使用量這一技術是程式設計技術,不是OS存盤管理的功能
物理地址:又稱絕對地址,即程式執行所使用的地址空間,處理器執行指令時按照物理地址進行
主存盤器的復用
多道程式設計需要復用主存
按照磁區復用:
- 主存劃分為多個固定/可變尺寸的磁區
- 一個程式/程式段占用一個磁區
按照頁架復用
- 主存劃分成多個固定大小的頁架
- 一個程式/程式段占用多個頁架
存盤管理的基本模式
- 單連續存盤管理:一維邏輯地址空間的程式占用一個主存固定磁區或可變磁區
- 段式存盤管理:段式二維邏輯地址空間的程式占用多個主存可變磁區
- 頁式存盤管理:一維邏輯地址空間的程式占用多個主存頁架區
- 段頁式存盤管理:段式二維邏輯地址空間的程式占用多個主存頁架區

存盤管理的功能
地址轉換
地址轉換:又稱重定位,即把邏輯地址轉換成絕對地址
靜態重定位:在程式裝入記憶體時進行地址轉換,由裝入程式執行,早期小型OS使用
動態重地位:在CPU執行程式時進行地址轉換?從效率出發,依賴硬體地址轉換機構
主存盤器空間的分配與去配
分配:行程裝入主存時,存盤管理軟體進行具體的主存分配操作,并設定一個表格記錄主存空間的分配情況
去配:當某個行程撤離或主動歸還主存資源時,存盤管理軟體要識訓它所占用的全部或者部分存盤空間,調整主存分配表資訊
主存盤器空間的共享
多個行程共享主存盤器資源:多道程式設計技術使若干個程式同時進入主存盤器,各自占用一定數量的存盤空間,共同使用一個主存盤器
多個行程共享主存盤器的某些區域:若干個協作行程有共同的主存程式塊或者主存資料塊
存盤保護
為避免主存中的多個行程相互干擾,必須對主存中的程式和資料進行保護,私有主存區中的資訊:可讀可寫,公共區中的共享資訊:根據授權,非本行程資訊:不可讀寫,這一功能需要軟硬體協同完成,CPU檢查是否允許訪問,不允許則產生地址保護例外,由OS進行相應處理
主存盤器空間的擴充
存盤擴充:把磁盤作為主存擴充,只把部分行程或行程的部分內容裝入記憶體,1.對換技術:把部分不運行的行程調出,2.虛擬技術:只調入行程的部分內容
這一作業需要軟硬體協作完成,1.對換行程決定對換,硬體機構調入,2.CPU處理到不在主存的地址,發出虛擬地址例外,OS將其調入,重執指令
虛擬存盤器
虛擬存盤器思想的提出
主存容量限制帶來諸多不便,用戶撰寫程式必須考慮主存容量限制,多道程式設計的道數受到限制
用戶編程行為分析:
- 全面考慮各種情況,執行時有互斥性
- 順序性和回圈性等空間區域性行為
- 某一階段執行的時間區域性行為
因此可以考慮部分調入行程內容
虛擬存盤器的基本思想
存盤管理把行程全部資訊放在輔存中,執行時先將其中一部分裝入主存,以后根據執行行為隨用隨調入,如主存中沒有足夠的空閑空間,存盤管理需要根據執行行為把主存中暫時不用的資訊調出到輔存上去
虛擬存盤器的實作思路
需要建立與自動管理兩個地址空間:(輔存)虛擬地址空間:容納行程裝入,(主存)實際地址空間:承載行程執行;對于用戶,計算機系統具有一個容量大得多的主存空間,即虛擬存盤器,虛擬存盤器是一種地址空間擴展技術,通常意義上對用戶編程是透明的,除非用戶需要進行高性能的程式設計

存盤管理的硬體支撐
存盤器的組織層次

存盤管理涉及的存盤物件
存盤管理是OS管理主存盤器的軟體部分,為獲得更好的處理性能,部分主存程式與資料(特別是關鍵性能資料)被調入Cache,存盤管理需要對其進行管理,甚至包括對聯想存盤器的管理,為獲得更大的虛擬地址空間,存盤管理需要對存放在硬碟、固態硬碟、甚至網路硬碟上的虛擬存盤器檔案進行管理
高速快取存盤器(Cache)
Cache是介于CPU和主存盤器間的高速小容量存盤器,由靜態存盤芯片SRAM組成,容量較小但比主存DRAM技術更加昂貴而快速,接近于CPU的速度,CPU往往需要重復讀取同樣的資料塊,Cache的引入與快取容量的增大,可以大幅提升CPU內部讀取資料的命中率,從而提高系統性能
高速快取存盤器的構成
高速緩沖存盤器通常由高速存盤器、聯想存盤器、地址轉換部件、替換邏輯等組成
- 聯想存盤器:根據內容進行尋址的存盤器
- 地址轉換部件:通過聯想存盤器建立目錄表以實作快速地址轉換,命中時直接訪問Cache;未命中時從記憶體讀取放入Cache
- 替換部件:在快取已滿時按一定策略進行資料塊替換,并修改地址轉換部件

高速快取存盤器的分級
- L1Cache:分為資料快取和指令快取;內置;其成本最高,對CPU的性能影響最大;通常在32KB-256KB之間
- L2Cache:分內置和外置兩種,后者性能低一些;通常在512KB-8MB之間
- L3Cache:多為外置,在游戲和服務器領域有效;但對很多應用來說,總線改善比設定L3更加有利于提升系統性能
地址轉換/存盤保護的硬體支撐

存盤管理與硬體支撐
- 鑒于程式執行與資料訪問的區域性原理,存盤管理軟體使用cache可以大幅提高程式執行效率
- 動態重定位,存盤保護等,若無硬體的支撐在效率上是為無意義的,即無實作價值
- 無虛擬地址中斷,虛擬存盤器無法實作
- 無頁面替換的硬體支撐機制,虛擬存盤其在效率上無意義
單連續磁區
- 每個行程占用一個物理上完全連續的存盤空間(區域)
- 單用戶連續存盤管理
- 固定磁區存盤管理
- 可變磁區存盤管理
單用戶連續磁區存盤管理
主存區域劃分為系統區與用戶區,設定一個柵欄暫存器界分兩個區域,硬體用它在執行時進行存盤保護,一般采用靜態重定位進行地址轉換,硬體實作代價低,適用于單用戶單任務作業系統,如DOS
靜態重定位:在裝入一個作業時,把該作業中程式的指令地址和資料地址全部轉換成絕對地址

固定磁區存盤管理的基本思想
- 支持多個磁區
- 磁區數量固定
- 磁區大小固定
- 可用靜態重定位
- 硬體實作代價低
- 早期OS采用



可變磁區存盤管理概述
固定磁區存盤管理不夠靈活,既不適應大尺寸程式,又存在記憶體內零頭,有浪費,能否按照行程實際記憶體需求動態劃分磁區,并允許磁區個數可變,這就是可變磁區存盤管理
可變磁區存盤管理
按行程的記憶體需求來動態劃分磁區,創建一個行程時,根據行程所需主存量查看主存中是否有足夠的空閑空間,若有,則按需要量分割一個磁區,若無,則令該行程等待主存資源,由于磁區大小按照行程實際需要量來確定,因此磁區個數是隨機變化的


可變磁區方式的記憶體分配
- 最先適應分配演算法
- 鄰近適應分配演算法
- 最優適應分配演算法
- 最壞適應分配演算法


可變磁區方式的記憶體零頭
固定磁區方式會產生記憶體內零頭,可變磁區方式也會隨著行程的記憶體分配產生一些小的不可用的記憶體磁區,稱為記憶體外零頭,最優適配演算法最容易產生外零頭,任何適配演算法都不能避免產生外零頭
移動技術(程式浮動技術)
移動磁區以解決記憶體外零頭,需要動態重定位支撐


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/238964.html
標籤:其他
上一篇:Linux上安裝軟體
