物理記憶體連續記憶體分配

2021-07-03 01:18:44 字數 844 閱讀 5297

記憶體管理的要求:

共享:訪問相同記憶體;

記憶體管理方式:

重定位,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控制的記憶體。在快取記憶體未命中時,就需要去記憶體中查詢。若缺頁,則需要到外存,也就是虛擬內卒中查詢。這一切...