第六章 存儲管理
1.存儲管理的任務
識記
內存空間的劃分
系統區
用以存儲操作系統常駐內存部分,用戶不能佔用這部分空間
用戶區
裝入並存儲用戶程序和數據
內存管理問題
內存管理方法
內存的分配和釋放算法
虛擬存儲器的管理
控制內存和外存之間的數據流動方法
地址變換技術
內存數據保護與共享技術
內存空間的分配與回收
具有的功能
記住每個存儲區域的狀態
實施分配
回收
內存分配表的組織形式
位示圖表示法
空閒頁面表
空閒塊表
內存分配兩種方式
靜態分配
目標模塊連接轉入內存時確定並分配,在程序運行過程中不允許再申請或在內存中“搬家”
動態分配
在程序運行過程中允許申請附加的內存空間或在內存中“搬家”,分配工作可以在程序運行前及運行過程中逐步完成
存儲保護問題
爲多個程序共享內存提供保障,使在內存中的各道程序,只能訪問它直接的區域,避免各道程序間相互干擾
方法
地址越界保護
每個進程都具有其相對獨立的進程空間,如果進程在運行時所產生的地址超出其地址空間,則發生地址越界
權限保護
對於允許多個進程共享的公共區域,每個進程都有自己的訪問權限
地址轉換、地址重定位
將邏輯地址轉換爲絕對地址
靜態重定位
內存在裝入一個程序時,要把程序中的指令地址和數據地址全部轉換成絕對地址
動態重定位
內存在裝入程序時,不進行地址轉換,而是直接把程序裝入到分配的內存區域中,在程序執行時動態地完成地址轉換
2.可變分區存儲管理方案
簡單應用
固定分區
系統先把內存劃分成若干個大小固定的分區,一旦劃分好,在系統運行期間便不再重新劃分
內存空間浪費,靈活性差
可變分區管理基本工作原理
系統不預先劃分固定分區,而是在裝入程序時劃分內存分區,使爲程序分配的分區的大小正好等於該程序的需求量,且分區的個數是可變的
有較大的靈活性,較好的內存利用率
內存分配與算法
最先適應算法
找到第一個能夠滿足申請長度的空閒區,將其分配
可以快速分配
最優適應算法
找到第一個能夠滿足申請長度最小的空閒區域,將其分割並分配
最節約空間,會產生碎片
最壞適應算法
找到能夠滿足申請要求最大的空閒區
避免碎片,但是在遇到較大的程序申請內存時,無法滿足要求的可能性較大
地址轉換過程
緊縮技術
在適當時刻進行碎片整理,通過移動內存中的程序,把所有空閒碎片合併成一個連續的大空閒區且放在內存的一端,而把所有程序佔用區放在內存的另一端
緊縮技術會增加系統的開銷
移動是有條件的
應該儘可能減少需要移動的進程數和信息量
3.覆蓋技術和交換技術
領會
覆蓋技術
一個程序的若干程序段,或幾個程序的某些部分共享某一個存儲空間。把程序劃分爲若干個功能上相對獨立的程序段,按照其自身的邏輯結構使那些不會同時執行的程序段共享同一塊內存區域
徹底解決了內存小裝不下程序的問題
優點
打破了需要將一個抽象的全部信息裝入內存後程序才能運行的限制
缺點
對用戶不透明,增加了用戶的負擔
交換技術
進程從內存移到磁盤,並再移動回內存成爲交換。多用於分時系統
4.虛擬頁式存儲管理方案
簡單應用
虛擬存儲技術的基本思想
利用大容量的外存來擴充內存,產生一個比有限的實際內存空間大得多的、邏輯的虛擬內存空間,簡稱虛存
實現虛擬存儲器需要的硬件支持
系統有容量足夠大的外存
系統有一定容量的內存
硬件提供實現虛-實地址映射的機制
虛擬存儲器的工作原理
當程序開始運行時,先將一部分程序裝入內存,另一部分暫時留在外存;當要執行的指令不在內存時,由系統自動完成將它們從外存調入內存的工作;當沒有足夠的內存空間時,系統自動選擇部分內存空間,將其中原有的內容交換到磁盤上,並釋放這些內存空間供其他進程使用
虛擬頁式存儲
優點
解決碎片問題
提高了內存的利用率
有利於組織多道程序執行
缺點
存在頁面空間的浪費問題
最後一頁內總有一部分空間得不到利用
虛擬存儲與交換技術的區別
交換技術交換到外存上的對象是以進程爲單位,而虛擬存儲則是以頁爲單位
缺頁異常處理
發生缺頁時,操作系統必須在內存中選擇一個頁面將其移除內存,以便爲即將調入的頁面讓出空間
5.典型的頁面置換算法
綜合應用
最佳頁面置換算法(理想頁面置換算法)
先進先出算法(FIFO)
最近最少使用算法(LRU)
顛簸或抖動
剛被調出的頁面又立即要用,因而又要把它裝入,而裝入不久又被選中調出,調出不久又被裝入,如此反覆,使調度非常頻繁
第六章 存儲管理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.