作業系統 記憶體分配

2021-10-05 05:36:14 字數 1390 閱讀 1261

1. 系統要用什麼樣的資料結構記錄記憶體的使用情況。

2. 當多個記憶體分割槽滿足要求時,應該選擇哪個分割槽進行分配。

3. 如何進行分割槽的分配與**操作。

程序中的塊稱為頁( page ),記憶體中的塊稱為頁框( page frame ),外存也可以同樣的單位進行劃分,稱為塊。頁表,為了便於在記憶體中找到程序的每個頁面所對應的物理塊。

頁面大小應適中。若頁面太小,則程序的頁面數過多,頁表過長,占用大量記憶體,增加位址轉換開銷,降低頁面換入 / 換出的效率;若頁面太大,又會使頁內碎片增多,降低記憶體的利用率。

位址變換機構的任務是將邏輯位址換為記憶體中的實體地址。

單級頁表存在的問題

1. 頁表必須連續存放,因此當頁表很大時,需要占用很多個連續的頁框。

2. 沒有必要讓整個頁表常駐記憶體,因為程序在一段時間內可能只需要訪問某幾個特定的頁面。

解決思路:

同單級頁表的方法,將頁表再次劃分,劃分後的頁表項稱為二級頁表,新生成乙個頁目錄表。但此時訪存所需的時間就增加了。

每個程序都有一張邏輯空間與記憶體空間對映的段表,記錄該段在記憶體中的起始位址和長度。

1. 分頁管理中的位址越界保護只需要判斷頁號是否越界;而分段管理中,若段號大於段表長度,則產生越界中斷,若段內偏移大於段長,也會產生越界中斷。

2. 分段式管理不能通過給出乙個整數便能確定對應的實體地址,因為每個段長不是固定的,需要段號+段內偏移。

3. 分段管理相比於分頁管理,很方便按照邏輯模組實現資訊共享與保護。

4. 分頁管理記憶體空間利用率高,不會產生外部碎片,只會有少量內部碎片;而分段管理,如果段太長,為其分配很大的連續空間很不方便,因此容易產生外部碎片。

結合分頁、分段管理的優勢,對程式先進行分段,再分頁。

與段式管理不同,這裡的段表存放的是段號、頁表長度、頁表存放塊號。

使用者只需要顯示得給出段號和、段內位址,由系統自動得拆分為頁號和頁內偏移量,位址結構是二維的。

作業系統記憶體分配

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

作業系統的記憶體分配問題

記憶體即我們平時說的電腦記憶體 4g 8g等 非硬碟容量,那是外存。記憶體是存放cpu運算資料的地方。這裡就得扯到裝系統的乙個十分常見問題了,即系統是安裝32位的還是64位的。根據以往裝系統的經驗,4g以下通常是安裝32位的作業系統,以上就安裝64位的。但這是為什麼?下面給出我最近自己的理解。因為作...

作業系統中的記憶體分配

一 程式執行平台 不同的平台上對不同資料型別分配的位元組數是不同的。個人對平台的理解是cpu os compiler,是因為 1 64位機器也可以裝32位系統 x64裝xp 2 32位機器上可以有16 32位的編譯器 xp上有tc是16位的,其他常見的是32位的 3 即使是32位的編譯器也可以弄出6...