軟件設(shè)計(jì)師考試 | 第四章 操作系統(tǒng)知識 | 存儲管理

存儲管理的對象是主存存儲器簡稱主存或內(nèi)存。
存儲管理的主要功能包括主存空間的分配和回收、提高主存的利用率、擴(kuò)充主存、對主存信息實(shí)現(xiàn)有效保護(hù)。

(一)基本概念

1.存儲器的結(jié)構(gòu)

常用的存儲器的結(jié)構(gòu)有“寄存器-主存-外存”結(jié)構(gòu)和“寄存器-緩存-主存-存儲組織的功能外存”結(jié)構(gòu)。

  • 虛擬地址,從0號單元開始編址,并順序分配所有符號名所對應(yīng)的地址單元,所以它不是主存中的真實(shí)地址。
  • 地址空間,源程序經(jīng)過匯編或編譯后再經(jīng)過鏈接編輯程序加工形成程序的裝配模塊,即轉(zhuǎn)換為相對地址編址的模塊,它是以0為基址順序進(jìn)行編址的。把程序中由相對地址組成的空間稱為邏輯地址空間,相對地址空間通過地址再定位機(jī)構(gòu)轉(zhuǎn)換到絕對地址空間。
  • 存儲空間,邏輯地址空間(簡稱地址空間)是邏輯地址的集合,物理地址空間(簡稱存儲空間)是物理地址的合集。

2.地址重定位

定義: 是指將邏輯地址變換成主存物理地址的過程。

地址重定位分為:

  • 靜態(tài)重定位,是指在程序裝入主存時已經(jīng)完成了邏輯地址到物理地址的變換,在程序的執(zhí)行期間將不再會發(fā)生變化。
    • 優(yōu)點(diǎn):無須硬件地址變換機(jī)構(gòu)的支持,它只要求程序本身是可重定位的,只對那些要修改的地址部分具有某種標(biāo)識,由專門設(shè)計(jì)的程序完成。
    • 缺點(diǎn):必須給作業(yè)分配一個連續(xù)的存儲區(qū)域,在作業(yè)的執(zhí)行期間不能擴(kuò)充存儲空間,也不能在主存中移動,多個作業(yè)也難以共享主存中的同一程序副本和數(shù)據(jù)。
  • 動態(tài)重定位,是指在程序運(yùn)行期間完成邏輯地址到物理地址的變換。
    • 優(yōu)點(diǎn):程序在執(zhí)行期間可以換入和換出主存,以解決主存空間不足的問題;可以在主存中移動,把主存中的碎片集中起來,以充分利用空間;不必給程序分配連續(xù)的主存空間,可以較好地利用較小的主存塊;可以實(shí)現(xiàn)共享。

(二)存儲管理方案

存儲管理的主要目的是解決多個用戶使用主存的問題,其存儲管理方案主要包括區(qū)分存儲管理、分頁存儲管理、分段存儲管理、段頁式存儲管理及虛擬存儲管理。

1.分區(qū)存儲管理

核心思想: 把主存的用戶區(qū)劃分成若干個區(qū)域,每個區(qū)域分配給一個用戶作業(yè)使用,并限定它們只能在自己的區(qū)域中運(yùn)行。

按劃分方式不同可分為:

  • 固定分區(qū),是一種靜態(tài)分區(qū)方式,在系統(tǒng)生成時已將主存劃分為若干哥分區(qū),每個分區(qū)的大小可不等。
  • 可變分區(qū),是一種動態(tài)分區(qū)方式,存儲空間的劃分是在作業(yè)裝入時進(jìn)行,古分區(qū)的個數(shù)是可變的,分區(qū)的大小剛好等于作業(yè)的大小。
    可變分區(qū)的請求和釋放分區(qū)主要有如下四種算法:
    • 最佳適應(yīng)算法
    • 最差適應(yīng)算法
    • 首次適應(yīng)算法
    • 循環(huán)首次適應(yīng)算法
  • 可重定位分區(qū),移動所有已分配好的分區(qū),使之稱為連續(xù)區(qū)域。

2.分區(qū)保護(hù)

目的: 防止未經(jīng)核準(zhǔn)的用戶訪問分區(qū)。

常用方式:

  • 采用上界/下界寄存器保護(hù)
  • 采用基址/限長寄存器保護(hù)

(三)分頁存儲管理

1.純分頁存儲管理

  • 分頁原理
    將一個進(jìn)程的地址空間劃分成若干個大小相等的區(qū)域,稱為頁。
    將主存空間劃分成與頁相同大小的若干個物理塊,稱為塊或頁框。
  • 地址結(jié)構(gòu)
    兩部分組成:頁號、頁內(nèi)地址
  • 頁表
    系統(tǒng)為每個進(jìn)程建立一張頁面映射表,簡稱頁表。

2.快表

在地址映射機(jī)構(gòu)中增加一個小容量的聯(lián)想存儲器,聯(lián)想存儲器由一組高速存儲器組成,稱之為快表,用來保存當(dāng)前訪問頻率高的少數(shù)活動頁的頁號及相關(guān)信息。

3.兩級頁表機(jī)制

將頁表進(jìn)行分頁,每個頁面的大小與主存物理塊的大小相同,并為它們進(jìn)行編號,可以離散地將各個頁面分別存放在不同的物理塊中。為此需要建立一張頁表,稱為外層頁表(頁表目錄),即第一級是頁目錄表,其中的每個表目是存放某個頁表的物理地址;第二級是頁表,其中的每個表目所存放的是頁的物理塊號。

兩級頁表的地址變換機(jī)構(gòu)

(四)分段存儲管理

在分段存儲管理方式中,作業(yè)的地址空間被劃分為若干個段,每個段是一組完整的邏輯信息,例如有主程序段、子程序段、數(shù)據(jù)段及堆棧段等,每個段都有自己的名字,都是從0開始編址的一段連續(xù)的地址空間,各段的長度是不等的。

邏輯地址由段號(名)和段內(nèi)地址兩部分組成。


(五)段頁式存儲管理

段頁式系統(tǒng)的基本原理是先將整個主存劃分成大小相等的存儲塊(頁框),將用戶程序按程序的邏輯關(guān)系分成若干個段,并未每個段賦予一個段名,再將每個段劃分成若干頁,以頁框?yàn)閱挝浑x散分配。

在段頁式系統(tǒng)中,其地址結(jié)構(gòu)由段號、段內(nèi)頁號和業(yè)內(nèi)地址三部分組成。


段頁式管理的地址結(jié)構(gòu)

1.程序局部性原理

程序在執(zhí)行時將呈現(xiàn)局部性規(guī)律,即在一段時間內(nèi),程序的執(zhí)行僅局限于某個部分。相應(yīng)地,它所訪問的存儲空間也局限于某個區(qū)域內(nèi)。

程序的局限性表現(xiàn)在:

  • 時間局限性,指如果程序中的某條指令一旦執(zhí)行,則不久的將來該指令可能再次被執(zhí)行;如果某個存儲單元被訪問,則不久以后該存儲單元可能再次被訪問。
  • 空間局限性,指一旦程序訪問了某個存儲單元,則在不久的將來,其附近的存儲單元也最有可能被訪問。

2.虛擬存儲器的實(shí)現(xiàn)

虛擬存儲器的實(shí)現(xiàn)有如下三種方式:

  • 請求分頁系統(tǒng),在分頁系統(tǒng)的基礎(chǔ)上增加了請求調(diào)頁功能和頁面置換功能所形成的頁式虛擬存儲系統(tǒng)。
  • 請求分段系統(tǒng),在分段系統(tǒng)的基礎(chǔ)上增加了請求調(diào)段和分段置換功能所形成的段式虛擬存儲系統(tǒng)。
  • 請求段頁式系統(tǒng),在段頁式系統(tǒng)的基礎(chǔ)上增加了請求調(diào)頁和頁面置換功能所形成的段頁式虛擬存儲系統(tǒng)。

3.請求分頁管理的實(shí)現(xiàn)

請求分頁是在純分頁系統(tǒng)的基礎(chǔ)上增加了請求調(diào)頁功能、頁面置換功能所形成的頁式虛擬存儲系統(tǒng),是目前常用的一種虛擬存儲器的方式。


(六)虛擬存儲管理

1.程序局部性原理

局限性表現(xiàn)在時間局限性和空間局限性兩個方面。

2.虛擬存儲器的實(shí)現(xiàn)

  • 請求分頁系統(tǒng)
  • 請求分段系統(tǒng)
  • 請求段頁式系統(tǒng)

3.請求分頁管理的實(shí)現(xiàn)

請求分頁是在純分頁系統(tǒng)的基礎(chǔ)上增加了請求調(diào)頁功能、頁面置換功能所形成的頁式虛擬存儲系統(tǒng),它是目前常用的一種虛擬存儲器的方式。

4.頁面置換算法

常用的頁面置換算法:

  • 最佳置換算法
  • 先進(jìn)先出置換算法
  • 最近最少未使用置換算法
  • 最近未用置換算法

5.工作集

工作集就是指在某段時間間隔里進(jìn)程實(shí)際要訪問的頁面的集合。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容