1. 程式人生 > 其它 >作業系統( 第四章 :儲存器管理)知識點總結

作業系統( 第四章 :儲存器管理)知識點總結

第四章   儲存器管理

4.1 儲存器管理的功能  邏輯地址(相對地址,虛擬地址);實體地址(絕對地址,實地址)

  地址重定位:將使用者程式中的邏輯地址轉換為執行時可由機器定址的實體地址

  要完成記憶體的分配和回收,要求設計者選擇幾種策略和結構:

    調入策略 (何時調入記憶體)

    放置策略 (放置在何處)

    置換策略 (記憶體不夠時,換出哪個程式)

    分配結構 (記錄記憶體使用情況(空閒分割槽表))

   引起記憶體分配和回收的原因

   程序的開始和結束

   程序執行的過程中,它所佔用的記憶體也可能發生變化 (棧的變化)

   程序影像在記憶體和外存之間傳遞 

   系統對記憶體空間進行調整

 

   儲存保護:保證在記憶體中的多道程式只能在給定區域內活動並不產生干擾

   防止地址越界、防止越權(對共享區有保護權)、

   虛擬儲存器(虛地址空間):容量遠遠超過記憶體的實際容量,面向程式設計

   實現虛擬記憶體的基本原理:將程式正在使用的部分放在記憶體,而暫時不用的部分放在外存,在需要時由系統調入記憶體,並將(暫)不需要的部分調出記憶體。

   源程式執行步驟:編譯->連結->裝入

    絕對裝入(過程簡單,不適於多道程式系統)

    可重定位方式(列出需要重定位的地址單元,當用戶程式被裝入記憶體時,一次性實現邏輯地址到實體地址的轉換)

       優點:不需硬體支援,可以裝入有限多道程式;缺點:一次性全部裝入;一個程式通常需要佔用連續記憶體空間,程式裝入記憶體後執行時不能移動

   動態執行時裝入方式:需重定位暫存器,實現複雜  優點:可以將一個程式分散儲存,可移動程式,支援程式執行中產生地址引用,是虛擬儲存的基礎

 

4.3 連續分配方式

    單一連續分配:系統區、使用者區  每次只允許一個程式佔用,使用者區不能分割

    固定分割槽分配:分成個數固定、大小相等或不等的多個區域,劃分方式由計算機的操作員或作業系統給出 (易於實現,開銷小)(限制了併發執行程式數目)在作業大小和出現頻率均已知的情況下分割槽的大小選擇與作業相當,這樣記憶體使用效率較高

    動態分割槽分配:分割槽大小和個數依裝入作業的需要而定

    分割槽的回收首先檢查釋放區是否與系統中的空閒區相鄰

    若釋放區與前空閒區相鄰。則將釋放區與前空閒區合併,其首址仍為前空閒區首址,大小為釋放區大小與前空閒區大小之和。若與後空閒區相鄰,則將釋放區與後空閒區合併,首址為釋放區的首址,空閒區大小為兩區域之和。若釋放區與前後兩個空閒區都相鄰,則將這三個區合併成一個空閒區,其首址為前空閒區首址,大小為三個區域之和。如果釋放區不與任何空閒區相鄰,則將釋放區作為一個空閒區,其大小和首址插入到空閒區表的適當位置。

 

 

首次適應法(空閒分割槽按首地址遞增次序組織,每次查詢時從鏈首出發,尋找滿足要求的記憶體塊);

最佳適應法(空閒分割槽按空閒分割槽大小地址遞增次序組織,每次為作業分配記憶體時,總是把能滿足要求、又是最小的空閒分割槽分配給作業,避免“大材小用”);

最壞適應法(空閒分割槽按空閒分割槽大小地址遞增次序組織,它在掃描整個空閒分割槽表或連結串列時,總是挑選一個最大的空閒區);

 

分配和回收後要對空閒區表(佇列)重新排序

 

分割槽碎片整理方式緊湊、分割槽對換

 

4.4 基本分頁儲存管理方式

   把使用者程式按邏輯頁劃分成大小相等的部分,稱為頁,從0開始編頁號

   地址的高位部分為頁號,地位部分為業內地址

   記憶體空間:按頁的大小劃分成大小相等的區域,稱為塊或記憶體塊

   記憶體分配以頁為單位進行分配,並按作業的頁數多少來分配。邏輯上相鄰的頁,物理上不一定相鄰

   頁表登記頁號和塊的對應關係的資料結構,系統為每個程序建一個頁表,頁表的長度和首地址存放在程序控制塊(PCB)中,其首地址和長度由地址對映機構的頁表始址和長度暫存器顯示。包括:頁號、記憶體塊號、其它

   快表(聯想儲存器/TLB)把頁表放在一組快速儲存器中,從而加快訪問記憶體的速度 

      表項:頁號;記憶體塊號;標識位;淘汰位

 

頁式儲存優點:解決了碎片問題,便於管理;缺點:不易實現共享、動態連線

邏輯地址=頁號*頁面大小+頁內地址  實體地址=塊號*塊大小+頁內地址

 

4.5 基本分段儲存管理方式

   按程式自身的邏輯關係劃分為若干個程式段,每個程式段都有一個段名,且有一個段號。段號從0開始,每一段段內也從0開始編址,段內地址是連續的。

   記憶體劃分記憶體空間被動態的劃分若干個相同的區域,稱為物理段,每個物理段由起始地址和長度確定

   記憶體分配:以段為單位分配記憶體,每一個段在記憶體中佔據連續空間,但各段之間可以不連續存放