記憶體管理的要求:
共享:訪問相同記憶體;
記憶體管理方式:
重定位,relocation,段位址+偏移;
分段,segmentation,**,資料,堆疊分成三塊,每段連續;
分頁,paging,記憶體分為最基本的單位,房子的磚塊;
虛擬儲存:virtual memory,linux採用按需頁式虛擬儲存;
邏輯位址空間——在cpu執行的程序看到的位址;
連續記憶體分配和記憶體碎片:
連續記憶體非配:給程序分配一塊不小於指令大小的連續物理記憶體區域;
內部碎片:分配單元內部的未被使用的記憶體,取決於分配單元大小是否取整;
外部碎片:分配單元之間的未被使用的記憶體;
動態分割槽分配策略:最佳匹配first-fit,最佳匹配best-fit,最差匹配worst-fit;
最先匹配first-fit allocation:分配n個位元組,使用第乙個可用的空間比n大的空閒塊,空閒分割槽按位址排序,優點是簡單、在高位址空間有大塊的空間分割槽;缺點是外部碎片、分配大塊時較慢(從前往後找)。
最佳匹配best-fit allocation:分配n位元組分割槽時,查詢並使用不小於n的最小的空閒區;空閒分割槽列表按照大小排序,優點是分配儲存在小時效果很好,減小外碎片;缺點是外部碎片,容易產生很多無用的小碎片;
最差匹配worst-fit allocation,使用不小於n的最大的空閒區;空閒區列表從大到小排序,中等大小分配效果最好,缺點是:容易破壞大的空閒區
夥伴系統buddy system:整個可分配的分割槽大小2u,每次進行切半處理
連續記憶體分配
連續記憶體分配 給程序分配一塊不小於指定大小的連續的物理記憶體區域 記憶體碎片 空間記憶體不能被利用 外部碎片 分配單元之間的未被使用記憶體 內部碎片 分配單元內部的未被使用記憶體,取決於分配單元大小是否要取整 當程式被載入執行時,分配乙個程序指定大小可變的分割槽 塊 記憶體塊 分割槽的位址是連續的...
連續記憶體分配
實體地址空間 載入到暫存器中的位址,記憶體單元真正的位址,其位數由位址匯流排數決定,32位則表示32條位址匯流排,編號從0一直到可用記憶體的最大值。cpu執行時程式可看到的位址,由內部和程式設計時使用,比如c語言中讀取乙個指標變數本身的值,讀到的就是邏輯位址,它是相對於當前資料段的位址也就是偏移位址...
作業系統 5 物理記憶體管理 連續記憶體分配
目錄5.5 碎片整理 5.6 夥伴系統 buddy system 在該表中,明顯處理器中的l1快取是最快的,有3.6ghz的訪問速度,l2快取較快。其中l1,l2為快取記憶體。以上為硬體mmu控制的記憶體。在快取記憶體未命中時,就需要去記憶體中查詢。若缺頁,則需要到外存,也就是虛擬內卒中查詢。這一切...