OS 內存保護

輸入隊列:在磁盤上等待調入內存以便執行的進程形成了輸入隊列。

 

MMU(內存管理單元):完成運行時從虛擬地址(又稱邏輯地址)到物理地址的映射。MMU有重定位寄存器等硬件支持。

 

動態加載(子進程調用時才加載)和覆蓋(任何時候在內存中保留所需的指令和數據)可以節省內存。內存必須容納操作系統和各種用戶進程。

 

內存保護:保護操作系統不受用戶進程所影響,保護用戶進程不受其他用戶所影響。OS使用重定位寄存器(最小物理地址的值)和界限寄存器(邏輯地址的界限-上限)實現內存保護。

 

孔集合:尚未分配的可用的內存空間,一段一段的內存集合。

 

動態存儲分配:

first-fit:分配第一個足夠大的孔。

best-fit:分配最小的足夠大的孔。

worst-fit:分配最大的孔。

quick-fit:未知。

 

外碎片:未分配的孔,但孔很小不足以分配給進程。緊縮或者允許物理地址空間爲非連續(分頁和分段)的可以解決外碎片問題。

內碎片:已分配給進程,但進程實際上沒有使用(有剩餘)。

 

分頁內存管理方案:

物理內存分爲固定大小的塊,稱爲幀,邏輯內存分爲同樣大小的塊,稱爲頁。備份存儲也分爲同樣的固定大小的塊。

CPU邏輯地址:頁碼(p)和頁偏移(d),頁表包含每頁所在物理內存的基地址(隱含頁碼),然後形成物理地址。

頁大小有硬件決定,通常爲2的冪。現在,頁大小通常爲4KB或8KB。頁表只包括進程擁有的幀。

 

分段內存管理方案:

邏輯地址空間是由一組段組成。每個段都有名稱和長度。CPU產生邏輯地址組成爲:段號+段偏移。

段表(隱含段號,界限,基址)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章