記憶體管理
1. 因為CPU的速度比較快,因此可以透過context-switch讓cpu與i/o平衡,所以需要同時存放多個應用程式在記憶體
2. 應用程式對記憶體的需求。程式碼區段、堆疊區段、資料區段。如果是多個應用程式要分享資料,還需要分享區段
3. 如果整台電腦是「簡單行為」,可以預先對記憶體的「空間」做好規劃。例如:game
4. 如果要確保定腦的穩定度,可以對記憶體的讀寫做限制。例如:不同區段有不同的 讀、寫、執行 屬性,核心與應用程式空間。「只有」保護功能的通常叫做MPU,memory protection unit
5. 如果電腦的行為是「可以動態規劃」的,例如傳統PC,則會有「動態空間分配問題」,一定會造成碎裂問題(free space不連續)
6. 同時解決「空間規劃(分配)」和「穩定度」,可以透過硬體的協助。MMU,記憶體管理系統,memory management unit
7. segment機制(目前多半用於坎入是系統,而且通常不會用它來動態分配)
8. paging機制(主流,huge page table,可以降低overhead)(解決記憶體分配和記憶體保護)
9. 了解MMU怎樣解決TLB miss(什麼事TLB miss呢?為什麼要有TLB呢?)
OS大叔 在 2023年11月18日 星期六下午4:47:53 [UTC+8] 的信中寫道: