存儲器管理概述----功能、管理對象、基本模式

​ 存儲器管理也稱存儲管理,本博客中,將主存和虛存(邏輯上擴充的空間)一同作爲存儲器管理的對象。存儲器管理的主要任務是爲OS中的多道程序的運行提供良好的環境,提高存儲器的利用率,方便用戶使用,並能從邏輯上擴充內存。

​ 並且存儲器一直都是計算機系統的重要組成部分。近年來,隨着技術的發展,雖然存儲器的容量一直在不斷擴大,但是仍不能滿足現代軟件發展的需要。存儲器仍然是一種寶貴而稀缺的資源。如何有效的來管理存儲器,不僅直接影響到存儲器的利用率,而且對系統的性能也有重大影響。


​ 要理解存儲器的管理,首先我們需要先明白邏輯地址和物理地址兩個概念。

1.邏輯地址與物理地址

邏輯地址:又稱爲相對地址,即用戶編程所使用的的地址空間,邏輯地址都是從0開始編號,其有兩種形式:1.一維邏輯地址(地址),所有的程序和數據組織成一維的邏輯地址;2.二維邏輯地址(段號:段內地址),主要涉及段的概念,即一個用戶程序可以設計成多個段,每個段的地址都是從0開始的。(關於段的討論不在此處展開)

物理地址:又稱爲絕對地址,即程序執行所使用的的地址空間,CPU在執行指令時必須要按照物理地址進行。因爲物理地址是實實在在內存中的地址,虛擬技術擴充的是OS的邏輯地址。

2.存儲器管理管理的存儲對象

​ 首先我們來看下計算機系統中的存儲層次,如下圖所示,存儲層次至少應具有三級:CPU寄存器、主存、輔存。還可以按照具體的功能細分爲寄存器、高速緩存、主存儲器、磁盤緩存、固定磁盤、可移動存儲介質。在存儲層次中,層次越高(越靠近CPU),存儲介質的訪問速度越快,價格也越高,相對的計算機中配置的容量也越小。

資源分配圖

​ 存儲器管理需要管理以下存儲對象:

  • 主存儲器:這也是存儲管理管理的主要對象(上圖中的主存);
  • 高速緩存:爲了獲得更好的處理性能,部分主存程序與數據(特別是關鍵性能數據)被調入高速緩存,存儲管理需要對其進行管理,甚至包含對聯想存儲器的管理(快表);
  • 輔存:爲了獲得更大的虛擬地址空間,存儲器管理需要對存放在硬盤、可移動存儲介質上的虛擬存儲器文件進行管理。:有些版把對硬盤的管理功能劃分到文件管理中,僅把對磁盤緩存的管理歸爲存儲器管理,這裏因爲涉及到虛擬存儲器管理,因此博主這裏把對整個輔存的管理功能都劃分到存儲器管理。

3.存儲器管理的主要功能

​ 爲了實現存儲器管理的目標:爲OS中的多道程序的運行提供良好的環境,提高存儲器的利用率,方便用戶使用,並能從邏輯上擴充內存,存儲器管理需要有以下功能:

  1. 地址映射:也稱地址轉換、重定位,能夠將地址空間中的邏輯地址轉換爲內存空間中與之對應的物理地址。
  2. 內存分配:主要包含爲每道程序分配內存空間;提高存儲器的利用率,儘量減少不可用的內存空間(內部碎片、外部碎片);允許正在運行的程序申請附加的內存空間,以適應程序和數據的動態增長。
  3. 內存保護:內存保護的主要任務爲:①確保每道程序程序都僅在自己的內存空間執行,彼此互不干擾,因此需要對主存中的程序和數據進行保護,做到私有主存儲區中的信息可讀可寫公共區中的共享信息根據授權非本進程中的信息不可讀寫。②不允許用戶程序訪問OS的程序和數據,也不允許用戶程序轉移到非共享的其它用戶程序中去執行(會覆蓋其它程序的程序和數據)。
  4. 內存擴充:藉助於虛擬存儲技術,從邏輯上擴充內存的容量,使用戶感覺到的內存容量比實際內存容量大得多。需要把磁盤作爲主存的擴充,只把部分進程或者進程的部分內容裝入內存。擴充容量有兩種方式,分別爲對換虛擬技術

4.存儲器管理的主要模式

​ 要將存儲器的管理模式前,我們需要理解下主存儲器複用概念。

​ 主存儲器的複用:多道程序系統需要爲多個進程來劃分使用主存(需要裝入內存執行),而主存儲器複用有兩種方式:①按照分區複用:主存劃分爲多個固定/可變尺寸的分區,一個進程/程序段佔用一個分區;②按照頁架複用:把主存劃分成多個相同大小(固定)的頁架(物理塊),一個程序或程序段分別自動的佔用多個頁架。

​ 在上文中我們也提到了邏輯程序設計的過程中,OS提供了單連續的一維地址空間(地址)和多連續的二維地址空間(段號:段內地址),結合主存儲器複用的分區複用頁架複用兩種方式,兩兩結合,主存儲器管理的基本模式就有四種:

  1. 單連續存儲管理:一維邏輯地址空間的程序佔用一個主存固定分區或可變分區,不可虛擬,不可共享
  2. 段式存儲管理:段式二維邏輯地址空間的程序佔用多個主存可變分區,可虛擬,可共享
  3. 頁式存儲管理:一維邏輯地址空間的程序佔用多個主存頁架區,邏輯程序直接劃分爲多個頁(不一定連續),可虛擬,可共享
  4. 段頁式存儲管理:段式二維邏輯地址空間的程序佔用多個主存頁幀區,程序劃分爲多個段,每個段佔用多個頁架,可虛擬,可共享

​ 其組合示意圖和每種管理模式的特性如下圖所示:

資源分配圖

​ 圖中也對應着程序執行需要的三個步驟:編譯、鏈接、裝入。

5.虛擬存儲器的概念

​ 虛擬存儲器就是作爲主存儲器空間擴充的一種方式,也是以上文中提到的虛擬技術來擴充的邏輯地址空間。虛擬存儲器的提出主要是因爲主存資源的不足,主存容量的限制帶來了許多的不便,如用戶編寫程序必須受到最大主存的限制,否則太大的軟件根本無法裝入主存,也就無法執行;多道程序設計的道數(可同時在OS中運行的作業數)也受到限制,影響OS的併發性。

基於程序運行時的局部性原理,主要包括時間局部性和空間局部性,因此考慮部分調入進程內容,以此爲基礎形成虛擬存儲器的概念

​ 虛擬存儲器的基本思想是:存儲器管理把進程的全部信息放到輔存中,執行時先將其中的一部分裝入主存,以後根據執行行爲隨用隨調入,並且當主存中沒有足夠的內存空間時,存儲器管理依據某些算法(頁面置換算法或者是分區淘汰算法)淘汰內存中的頁或者是分區。

​ 對上面的描述進行總結,可以知道,虛擬存儲器就是:具有請求調入功能置換功能,能從邏輯上對內存容量加以擴充的一種存儲系統。

6.總結

​ 本文是對存儲器管理的重要概念做一個總的概括,如果是剛接觸存儲器管理,其中許多概念難免會不明白,不過沒關係,後面博主會對上文中出現的重要概念分別展開討論,最終把整個存儲器管理給講完整。

​ 後續博客,還請繼續關注。


​ 又到了分隔線以下,本文到此就結束了,本文內容全部都是由博主自己進行整理並結合自身的理解進行總結,如果有什麼錯誤,還請批評指正。

​ 喜歡的話,就給個贊;原創不易,評論支持;期待後續,點個關注。

​ 如有興趣,還可以查看我的其他幾篇博客,都是OS的乾貨,喜歡的話還請點贊、評論加關注_

操作系統武功修煉心法

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