作業系統之記憶體管理2

2021-06-29 00:36:48 字數 1072 閱讀 7231

1.常見的記憶體管理辦法,固定載入位址的記憶體管理,固定分割槽的記憶體管理,非固定分割槽的記憶體管理和交換記憶體管理。第一種只適合單道程式設計,後三種適合多道程式設計,這3種適合多道程式設計的記憶體管理方式均使用同一種實現機制:基址和極限,並且以交換記憶體管理最為靈活和先進,但是交換記憶體管理存在的問題是空間浪費和程式大小受限。

2.什麼是外部碎片?

隨著程式在記憶體和磁碟間的交換,記憶體將變得越來越碎片化,即記憶體將被不同的程式分割成尺寸大小不一的無法使用的小片空間,從程序的角度看,這些碎片處於程序空間的外面,這種碎片化過程也稱為外部碎片化。

3.除了外部碎片,交換記憶體管理還存在什麼問題?

1)空間增長率低下,把程式倒到磁碟,找到大的記憶體空間,在倒會記憶體,這種做法效率是低的。

2)空間增長存在限制,儘管多個程式的總空間可以超過物理記憶體,但是單一程式還是不能超過物理記憶體的限制。

4.交換記憶體管理問題的解決之道是什麼?

將虛擬記憶體和物理記憶體都分成大小一樣的部分,如4kb,8kb,16kb,我們稱為頁,然後按頁進行記憶體分配,就可以克服外部碎片的問題。此時頁面作為記憶體空間的最小分配單位。乙個程式的乙個頁面可以存放在任意的乙個物理頁面裡,由於物理空間是頁面的整數倍,並且頁面作為記憶體空間的最小分配單位,將不會再產生外部碎片。由於虛擬頁面可以存放在任何乙個物理頁面裡,空間增長也任意解決,只要分配額外的虛擬頁面,並找到乙個閒置的物理頁面存放即可。  

的12次方為4096

,4096/1024=4kb,2的

20次方為

1048576

,1048576*4/(1024*1024)=4gb,

剛好是4g

的定址空間。為了解決程式比記憶體大的問題,我們可以允許乙個程式的部分虛擬頁面存放在物理頁面以外,也就是放在磁碟中,需要時,在調入。

作業系統之記憶體管理

記憶體管理的功能有 1 空間分配與 2 位址轉換 3 空間擴充 4 儲存保護 將資料與程式裝入記憶體分以下步驟 1 編譯成模組 2 鏈結模組 分靜態 裝入時動態 執行時動態鏈結 3 將模組裝入記憶體 分絕對裝入 可重定位裝入 執行時動態裝入 邏輯位址與實體地址 訪問資料時是使用實體地址獲取資料,多個...

作業系統之記憶體管理

位址對映和重定位是乙個概念 適應於請求段的記憶體分配方法是最佳適應和可變分割槽 可重入 reentrant code 又稱為 純 purecode 是一種允許多個程序同時訪問的 為使各個程序所執行的 完全相同,絕對不允許可重入 在執行中有任何改變。目的 擴充主存容量 最基本的特徵 多次性 最主要的技...

作業系統之記憶體管理

便於程式設計師編寫程式 分治 可以控制每個段的許可權 寫 讀 符合跳轉指令邏輯 段號,段內偏移 執行時重定位 當執行某條指令時才進行位址重定位,先查詢程序pcb指向的段表,然後根據偏移量算出實體地址。編譯時重定位 編譯時就把所有跳轉指令進行重定位。缺點 導致必須使用重定位後的那一段記憶體,若那一段記...