計算機體系結構
記憶體層次結構
邏輯位址空間:軟體
物理空間:硬碟
對於電腦:
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.頁式管理的基本思想 打破儲存分配的連續性 將邏輯上連續的使用者程式對映到離散的記憶體塊 使用者程式與記憶體空間被劃分為若干等長的區域 邏輯頁 與 物理頁 使用者程式的劃分由系統...