軟考(軟件設計師)--操作系統知識之存儲管理(一)

一、 存儲管理主要指對內存的管理,負責內存分配和回收,內存的保護和擴充

  • 存儲管理的目的使盡量提高內存的使用效率。

內存的分配方式有兩種

  • 連續的分配的方式
  • 離散的分配方式

連續的分配的方式:
指爲一個用戶程序分配一個連續的內存的空間。

  1. 單一連續分配
  2. 固定分區分配
  3. 動態分區分配
  4. 可重定位分區分配

重點:動態分區分配:
爲把一個新作業裝入內存,需按照一定的分配算法,從空閒分區表或空閒分區鏈中選出一分區分配給該作業。
常用的分配算法:

  1. 首次適應算法
  2. 循環首次適應算法
  3. 最佳適應算法
  4. 最壞適應算法

可重定位分區分配
如果在系統中只有若干個小分區,及時他們的容量總和大於要裝入的程序,但由於這些分區不相鄰,也無法將程序裝入內存。
解決方法:將內存中的左右作業進行移動,使他們全部鄰接,這樣把原來分散的小分區拼接成大分區,這樣方法稱爲拼接或緊湊。

動態重定位:
在動態運行時裝入的方式,將相對地址轉換成物理地址的工作在程序指令真正要執行時才進行。地址轉換需要重定位寄存器的支持。程序執行時訪問的內存地址是相對地址與重定位寄存器中的地址相加而成。
在這裏插入圖片描述

二、對換與覆蓋技術

覆蓋技術:
一個作業的若干程序或數據段的某些部分共享內存空間。
對換技術:
把內存中暫時不能運行的進程或者暫時不用的程序和數據,調到外存上,以便騰出豬狗的內存空間,再把已具備運行條件的進程和進程所需要的程序和數據調入內存。

對換的分類:

  • 整體對換(或進程對換):以整個進程爲單位
  • 頁面對換或分段對換:以頁或段爲單位

連續分配方式會形成碎片,雖然可以用過緊湊解決,但是開銷大。如果允許一個進程直接分散地進入裝入許多不相鄰的分區中,則無需緊湊,由此產生離散分配方式。
分類:

  • 分頁存儲管理方式:離散分配的基本單位是頁
  • 分段存儲管理方式:離散分配的基本單位是段

三、基本分頁存儲管理方式

  1. 頁面與頁表
  2. 地址變換機構

頁面:
分頁式存儲管理的原理:
將一個進程的餓邏輯地址空間分成若干個大小相等的片稱爲頁面或頁,併爲各頁加以編號,從0開始。同事把內存空間分成與頁面相同大小的若干各存儲塊,稱爲塊或頁框。
在爲進程分配內存時,以塊爲單位將進程的若干各頁分別裝入到多個可以不相鄰的物理塊中。進程的最後一頁經常裝不滿一塊而形成”頁內碎片“

地址變換:
在這裏插入圖片描述
基本分頁式存儲管理的實現
進程的每一頁離散地存儲在內存的任一存儲塊中,爲方便查找,系統爲每一進程建立一張頁面映像表,簡稱頁表。
頁表實現了從頁號到物理塊號的地址映射。
在這裏插入圖片描述
爲了能將用戶地址空間的邏輯地址變換爲內存空間的物理地址,在系統中必須設置地址變換機構。
地址變換機構實現從邏輯地址到物理地址的轉換,由於頁內地址與物理地址是一一對應的,因此,地址變換機構的任務是借組於頁表,將邏輯地址中的頁號轉換爲內存中的物理塊號。

在這裏插入圖片描述

具有塊表的地址變換機構
由於頁表是存放在內存中的,CPU在每存取一個數據時,需要兩次訪問內存:
第一次,訪問頁表,找到指定頁的物理塊號,將塊號與頁內偏移量拼接形成物理地址。
第二次:從第一次所得地址中獲得所需數據,或向此地址中寫入數據。
存儲器利用率提高,處理器處理速度降低。
解方式:在地址變換機構中,增設一個具有並行查詢能力的特殊高速緩衝寄存器,稱爲”聯想存儲器“或”塊表“。

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