1. 程式人生 > >第四章 儲存器管理

第四章 儲存器管理

儲存部件的層次

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.易於實現保護:

  程式碼的保護和其邏輯意義有關,分頁的機械式劃分不容易實現。