作業系統 記憶體管理

2021-10-03 19:58:03 字數 1674 閱讀 3215

計算機體系結構

記憶體層次結構

邏輯位址空間:軟體

物理空間:硬碟

對於電腦:

cpu快取:128k

主存:2g

磁碟:500g

管理記憶體方法

位址空間&位址生成

邏輯位址空間:軟體

實體地址空間:硬碟

軟體執行分配的位址空間最終都要落在記憶體或者硬碟上,具體落在什麼地方,看系統分配。

c經過編譯,生成.s檔案,經過彙編生成.o,鏈結後.exe

過程如下:

當cpu要執行某條指令的時候,alu會需要這條指令的內容,發出乙個請求,引數就是邏輯位址。

cpu裡面的mmu會去查詢對映表中是否存在對應的實體地址,如果沒有就去記憶體中找,找到以後,cpu控制器會給主存傳送我需要某個實體地址的內容,主存會把記憶體的內容通過匯流排傳給cpu,cpu拿到指令後就可以對這條指令進行執行了。

位址安全檢測

作業系統要確保每個應用程式位址合法,根據頭位址和長度判斷,符合要求會返回實體地址,不符合會記憶體異常。

??記憶體不夠的意思是不是:邏輯位址對應的實體地址已經超出有效位址範圍,所以發生了記憶體不夠了??

記憶體碎片

動態分配

最優匹配

最差匹配分配

碎片整理

非連續記憶體

缺點 建立轉換

分段 定址過程簡述

cpu取指令後,獲取到邏輯位址,首先從段表找到對應的段號,然後根據段內偏移長度,判斷是否超出limit,如果超出會殺掉程式,然後就找到了實體地址所在時段。

分頁

分頁位址空間

定址方案

邏輯位址(頁)定址公式相同

頁定址過程:cpu獲取邏輯位址頁號後,根據頁表(作業系統生成),找到幀號(實體地址),再加上偏移量o就找到實體地址。

邏輯位址可能比實體地址大,通過虛擬位址實現。

邏輯位址頁是連續的,類似陣列,但是實體地址幀不是連續的。但好處就是減少了碎片。

頁表項第二位表示物理葉幀是否存在,0不存在,1存在。

頁表存在的問題

解決方法:1.快取 2.間接訪問

反向頁表

如何建立關係(物理和邏輯位址)

作業系統記憶體管理

作業系統記憶體管理 一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於32位程序來說,這個位址空間為4g,因此程序中的位址可以為0x00000000至0xffffffff之間的任何乙個值。其中4g空間中的低區的2g空間留給程序使用,而高區的2g空間則留給系統使用。在windows200...

作業系統記憶體管理

作業系統記憶體管理一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於 32位程序來說,這個位址空間為 4g,因此程序中的位址可以為 0x00000000 至0xffffffff 之間的任何乙個值。其中 4g空間中的低區的 2g空間留給程序使用,而高區的 2g空間則留給系統使用。在win...

作業系統記憶體管理

記憶體,毫無疑問是最重要的資源,顯然,作業系統對記憶體的管理我必須清楚。這裡主要介紹了分頁管理和分段管理。1.頁式管理 a.頁式管理的基本思想 打破儲存分配的連續性 將邏輯上連續的使用者程式對映到離散的記憶體塊 使用者程式與記憶體空間被劃分為若干等長的區域 邏輯頁 與 物理頁 使用者程式的劃分由系統...