作業系統筆記 一 物理記憶體分配1 連續記憶體分配

2021-08-17 17:13:38 字數 1290 閱讀 3667

本文結構如下:

首先我們知道計算機的記憶體是分很多層次的,不同層次之間訪存速度相差很大,(甚至達到幾個數量級)

mmu 工作原理介紹

where exactly l1, l2 and l3 caches located in computer?

上面是關於mmu和l1,l2 cache 的介紹,先留坑,有興趣可以看看

分段分頁和段頁是都會在非連續記憶體分配中介紹,重定位先留坑待補

實體地址空間就是真實的計算機記憶體(e.g.: 4g ,0-4g-1)

邏輯位址空間cpu看執行程序看到的位址,也稱虛擬位址

將指令與資料繫結到記憶體位址有如下幾種情況:

*編譯時編譯時寫死,生成絕對位址**

*載入時編譯時生成可重定位**,載入時進行位址繫結

*執行時執行時進行位址繫結,這種方式更加靈活,執行時可以從乙個記憶體段移到另乙個記憶體段

顧名思義,作業系統為每個程序分配一塊連續的記憶體區域,作業系統需要維護乙個表,記錄哪些記憶體塊被占用了,哪些沒有。這樣做很明顯會產生

兩個問題

1. 外碎片 (相鄰兩塊之間不能用的)

2. 內碎片 (分配的記憶體中用不完的)

特點

1. 載入時分配

2. 位址連續

一種解決外部碎片的方法是緊縮(compaction),就是移動記憶體,最暴力的就是將所有占用記憶體移到一邊。but緊縮並不是總是可以的必須是在位址繫結時是執行時生成才行。另外一種策略就是下一節要講的非連續記憶體分配

交換這種策略是os在程序空閒時將所占用的資料段換出到硬碟中去,也可以搶占。

它的直觀表現是這樣的

每一塊記憶體都是2的冪次,需要注意的是由於分配是連續的,所以依然存在外部碎片

作業系統 5 物理記憶體管理 連續記憶體分配

目錄5.5 碎片整理 5.6 夥伴系統 buddy system 在該表中,明顯處理器中的l1快取是最快的,有3.6ghz的訪問速度,l2快取較快。其中l1,l2為快取記憶體。以上為硬體mmu控制的記憶體。在快取記憶體未命中時,就需要去記憶體中查詢。若缺頁,則需要到外存,也就是虛擬內卒中查詢。這一切...

作業系統 記憶體分配

1.系統要用什麼樣的資料結構記錄記憶體的使用情況。2.當多個記憶體分割槽滿足要求時,應該選擇哪個分割槽進行分配。3.如何進行分割槽的分配與 操作。程序中的塊稱為頁 page 記憶體中的塊稱為頁框 page frame 外存也可以同樣的單位進行劃分,稱為塊。頁表,為了便於在記憶體中找到程序的每個頁面所...

作業系統記憶體分配

作業系統的記憶體一部分給系統核心,一部分給使用者核心,對windows來說,32位4g時,低位2g給使用者,高位2g給系統,64位256t時,高位的248t給系統,低位8t給使用者。linux則是32位4g時,低位3g給使用者,高位1g給系統,64位256t時,高位的128t給系統,低位128t給使...