目錄5.5 碎片整理
5.6 夥伴系統(buddy system)
在該表中,明顯處理器中的l1快取是最快的,有3.6ghz的訪問速度,l2快取較快。其中l1,l2為快取記憶體。以上為硬體mmu控制的記憶體。
在快取記憶體未命中時,就需要去記憶體中查詢。若缺頁,則需要到外存,也就是虛擬內卒中查詢。這一切都是由作業系統控制管理的。
特點如下:
共享:訪問相同記憶體。所有程序都需要用到作業系統核心。如果為每個程序都分配作業系統核心的話,記憶體利用率就不高了。
綜上,實體地址空間沒有必要連續,但是邏輯位址空間是連續的。
有如下四種:
分段分頁
虛擬儲存:目前多數系統(如linux)採用按需頁式虛擬儲存
實現高度依賴硬體
邏輯位址生成
位址生成時機和限制
位址生成過程
cpu記憶體
作業系統
位址檢查
記憶體空間保護的實現,是通過cpu硬體堆使用者模式所產生的每乙個位址與暫存器的位址進行比較來完成。
基位址暫存器含有最小的合法物理記憶體位址,而界限位址暫存器決定了範圍的大小。
連續記憶體分配:給程序分配一塊不小於指定大小的連續的物理記憶體區域
記憶體碎片:不能被利用的空閒記憶體
當程式被載入執行時,分配乙個程序指定大小可變的分割槽(塊、記憶體塊),且分割槽的位址是連續的。
作業系統需要維護的資料結構
動態分割槽分配策略
思路:分配n個位元組,使用第乙個可用的空間比n大的空閒塊。
如:分配400位元組,使用第乙個1kb的空閒塊
原理/實現
優點缺點
思路:分配n位元組分割槽時,查詢並使用不小於n的最小空閒分割槽
示例:分配400位元組,使用第3個空閒塊
原理/實現
優點缺點
思路分配n位元組,使用尺寸不小於n的最大空閒分割槽
示例分配400位元組,使用第2個空閒塊(最大)
原理/實現
優點缺點
碎片整理:通過調整程序占用的分割槽位置來減少或避免分割槽碎片。
碎片緊湊
通過搶占並**處於等待狀態程序的分割槽(將其移到外存中去),以增大可用記憶體空間。
需要解決的問題:交換哪個(些)程式?
整個可分配的分割槽大小為 \(2^u\)
需要的分割槽大小為 \(2^ \le s \le 2^u\) 時,把整個塊分配給該程序
如 \(s \le 2^\), 將大小為 \(2^i\)的當前空閒分割槽劃分成兩個大小為 \(2^\)的空閒分割槽
重複劃分過程,直到 \(2^ \lt s \le 2^i\) ,並把乙個空閒分割槽分配給該程序。
資料結構
分配過程
釋放過程
合併條件
作業系統 物理記憶體管理
說明 在系統初始化階段,記憶體被劃分為許多靜態分割槽,程序可以被裝入大於或等於自身的分割槽中。評價操作簡單,但缺乏靈活性,會產生大量內部碎片,並且當程式太大時,乙個分割槽不足以裝入。說明為把乙個程序裝入記憶體,按照一定的分配演算法 首次適應,最佳適應,最壞適應,夥伴系統等 從空閒分割槽中選出一分割槽...
作業系統 2 物理記憶體(連續非連續)的管理
一.計算機體系結構 在os中管理記憶體的不同方法 實現高度依賴於硬體 二.位址空間 位址生成 1.位址空間定義 2.位址生成 3.位址安全檢查 三.連續記憶體分配 1.記憶體碎片問題 空閒記憶體不能被使用 2.簡單的記憶體管理方法 分割槽的動態分配 3.分配策略 優勢 簡單,易於產生較大的空閒塊 缺...
作業系統 5 記憶體管理
記憶體管理需要實現 重定位,保護,共享,邏輯組織,物理組織。記憶體管理技術 分割槽 固定 動態分割槽 分頁 簡單分頁 虛擬記憶體分頁 分段 簡單分段 虛擬記憶體分段 1.2.1 碎片與壓縮 碎片fragmentation 通過壓縮compaction解決外碎片 1.2.2 分配策略 首次適配 fir...