第四章 儲存器管理
儲存部件的層次
1.CPU暫存器
2.快取記憶體
3.主存
4.磁碟快取
5.磁碟
6.可移動儲存介質
儲存器管理
1.儲存器資源的分配和回收
2.地址變換
3.儲存共享和保護
4.虛擬儲存的排程演算法
程式進記憶體的一般過程:
1.編譯程式
2.連結程式
3.裝入記憶體
地址處理
1.絕對裝入方式
邏輯地址->實體地址
2.靜態可重定位裝入方式
邏輯地址->重定位->實體地址
3.動態執行時(重定位)裝入方式
連續分配方式
1.單一連續分配
2.固定分割槽分配
3.動態分割槽分配
4.動態重定位分割槽分配
5.其他
程式分配記憶體的過程:
1.將分割槽表分為兩個表格
2.檢索演算法
3.檢索空閒分割槽表
分割槽分配演算法
1.首次適應演算法
2.迴圈首次適應演算法
3.最佳適應演算法
4.最差適應演算法
5.快速適應演算法
動態重定位分割槽分配演算法與動態分割槽分配演算法基本相同,差別在於增加了緊湊的功能
夥伴系統
1.分割槽大小有規定,分割槽動態變化
2.分配空間大小為2^m
3.對每一類具有相同大小的空閒分割槽設定一雙向連結串列
4.若i大小的連結串列沒有,則找i+1的連結串列。找到的分割槽對半劃分後,一半用於分配,一半連結到較小一級的連結串列裡去
5.一次分配和回收都可能對應多次的劃分和合並
記憶體空間管理之兌換
1.把記憶體中暫存不能執行或暫時不用的程式和資料調到外存上,以騰出足夠的記憶體
2.分類:
①整體對換(程序對換)
②分段對換(頁面對換)
3.系統必須具備的功能:
①對換空間的管理
②程序的換出、換入操作
1.物理劃分塊的大小=邏輯劃分的頁面的大小
2.頁面大小決定偏移量(頁內位數)的位數n
3.作業大小決定頁面數量
4.記憶體容量決定塊數,塊數決定編址位數
段的特點:
1.每段有自己的名字(一般用段號做名),都從0編址,可分別編寫和編譯。裝入記憶體時,每段賦予各段一個段號。
2.每段佔據一塊連續的記憶體。(即有離散的分段,又有連續的記憶體使用)
3.各段大小不等。
分頁和分段的主要區別
1.需求:分頁是出於系統管理的需要,是一種資訊的物理劃分單位,分段是出於使用者應用的需要,是一種邏輯單位,通常包含一組意義相對完整的資訊。
一條指令或一個運算元可能會跨越兩個頁的分界處,而不會跨越兩個段的分界處。
2.大小:頁大小是系統固定的,而段大小則通常不固定。分段沒有內碎片,但連續存放段產生外碎片,可以通過記憶體緊縮來消除。相對而言分頁空間利用率高。
3.邏輯地址:
分頁是一維的,各個模組在連結時必須組織成同一個地址空間;
分段是二維的,各個模組在連結時可以每個段組織成一個地址空間。
4.其他:通常段比頁大,因而段表比頁表短,可以縮短查詢時間,提高訪問速度。分段模式下,還可針對不同型別採取不同的保護;按段為單位來進行共享
分段系統的突出優點:
1.易於實現共享
①在分段系統中,實現共享十分容易,只需在每個程序的段表中為共享程式設定一個段表項。
②對同樣的共享內容的管理上,很明顯分段的空間管理更簡單。分頁的圖涉及太多的頁面劃分和地址記錄的管理。
2.易於實現保護:
程式碼的保護和其邏輯意義有關,分頁的機械式劃分不容易實現。