作業系統之儲存器管理

2021-07-15 09:00:02 字數 4665 閱讀 8888

p116

4.0.1 儲存器管理的目的和功能

儲存器管理的主要目的和功能如下:

1.主儲存器的分配和管理:按使用者要求把適當的儲存空間分配給相應的作業。

乙個有效的儲存分配機制,應在使用者請求時能作出快速的響應,分配相應的儲存空間;在使用者不再使用它時,應立即**,以供其他使用者使用。為此,這個儲存分配機制應具有如下功能(3個):

(1)記住每個儲存區域的狀態:哪些是已分配的,哪些是可以用作分配的。

(2)實施分配:在系統程式或使用者提出申請時,按所需的量給予分配;修改相應的分配記錄表。

(3)接受系統或使用者釋放的儲存區域:並相應地修改分配記錄表。

2.提高主儲存器的利用率:使多道程式能動態地共享主存,最好能共享主存中的資訊。

3.「擴充」主存容量:這是借助於提供虛擬儲存器或其它自動覆蓋技術來達到的。即為使用者提供比主存的儲存空間還大的位址空間,之後,使用者可以想象把他的程式或資料裝入到這樣的位址空間內。

4.儲存保護:確保各道使用者作業都在所分配的儲存區內操作,互不干擾。

即要防止一道作業由於發生錯誤而損害其它作業,特別需要防止破壞其中的系統程式。這個問題不能用特權指令來加以解決。而必須由硬體提供保護功能,並由軟體配合實現。

4.0.2 儲存分配的三種方式

所謂儲存分配,主要是討論和解決多道作業之間共享主存的儲存空間問題。前面已講到現代計算機系統都採用多級儲存體系結構。因此,儲存分配所要解決的問題是:

要確定什麼時候,以什麼方式,或是把乙個作業的全部資訊還是把作業執行時首先需要的資訊分配到主存中,並使這些問題對使用者來說盡可能是「透明」的。

解決儲存分配問題有三種方式:

1.直接指定方式:程式設計師在程式設計序時,或編譯程式(匯程式設計序)對源程式進行編譯(彙編)時,所用的是實際儲存位址。

例如,在多道程式環境下,應保證各作業所用的位址互不重疊。

顯然,採用直接指定方式分配的前提是:儲存器的可用容量(空間)已經給定或可以指定,這對單使用者計算機系統是不成問題的。

在多道程式發展的初期,通常把儲存空間劃分成若干個固定的不同大小分割槽,並對不同的作業指定相應的分割槽。因此,對算題人員或對編譯程式而言,儲存器的可用空間是可知的。

這種分配方式的實質是:由算題人員在程式設計序時,或由編譯程式編譯源程式時,對乙個作業的所有資訊確定了在主存儲存空間中的位置。因此,這種直接指定方式的儲存分配方案,不僅使用者感到不便,而且儲存空間的利用也不那麼有效。

(缺點)

2.靜態分配(static allocation) 採用這種靜態儲存分配方案,使用者在程式設計時,或由編譯程式產生的目的程式,均可從其位址空間的零位址開始;它們是當裝配程式對其進行連線裝入時才確定它們在主存中的相應位置,從而生成可執行程式。也就是說,儲存分配是在裝入時實現的。

這種靜態儲存分配方式的特點是:

(1)在乙個作業裝入時必須分配其要求的全部儲存量;

(2)如果沒有足夠的儲存空間,就不能裝入該作業;

(3)一旦乙個作業進入記憶體後,在其退出系統之前,它一直占用著分配給它的全部儲存空間;

(4)在作業的整個執行過程中不能在記憶體中「搬家」、也不能再申請儲存量。

這種靜態分配策略的儲存管理很簡單,但在多道程式系統中不能有效地共享儲存器資源。

3.動態分配(dynamic allocation):動態分配是一種更加有效的使用主儲存器的方法。

這種動態儲存分配方式的特點是:

(1)作業在儲存空間中的位置,也是在其裝入時確定的;

(2)在其執行過程中可根據需要申請附加的儲存空間;

(3)乙個作業已占用的部分儲存區域不再需要時,可以要求歸還給系統。即:這種儲存分配機制能接受不可**的分配和釋放儲存區域的請求,實現個別儲存區域的分配和**;

(4)儲存區域的大小是可變的;

要求這個區域必須是單個連續的儲存區域,以便和提出儲存請求之作業的虛擬位址空間相對應。

(5)它允許作業在記憶體中「搬家」。

目前,絕大多數計算機系統都採用靜態或動態儲存分配策略,所以,在本章只討論這兩種儲存分配的實現技術,重點放在各種動態儲存分配技術的實現上。

4.0.3 幾個基本概念

我們首先要分清幾個不同概念:

1.位址空間:是指由目標程式所限定的位址範圍。即:位址空間僅僅是指程式用來訪問資訊所用的一系列位址單元的集合。這些單元的編號稱為邏輯位址。

乙個用高階語言編制的源程式,我們說它存在於由程式設計師建立的符號名字空間(簡稱名空間)。

通常,編譯程式在對乙個源程式編譯時,總是從零號單元開始為其分配位址,其它所有位址都是從這個開始位址順序排下來的,因此,位址空間中的所有位址都是相對於起始位址的,因而稱它們為相對位址,所以,邏輯位址也就是相對位址。

2.儲存空間:所謂儲存空間是指主存中一系列儲存資訊的物理單元的集合。這些單元的編號稱實體地址或絕對位址。因此,儲存空間的大小是由主存的實際容量決定的。

4.2 程式的裝入與鏈結 p118

在多道程式環境下,程式要執行必須為之建立程序,而建立程序的第一件事情就是要把使用者編寫好的源程式和資料裝入記憶體。如何將乙個使用者源程式變為乙個可在記憶體中執行的程式,通常要經過下列幾步:

⑴編譯(compiler):一般說來,源程式模組是用高階語言(如pascal、fortran、cobol)或組合語言寫的一組程式語句。計算機不能直接執行源語句,它們要首先被編譯程式或解釋程式翻譯成機器級**。

編譯程式接受完整的源一級的程式,並以類似於成批的方式生成完整的目標一級的模組。

⑵鏈結(linker):目標模組是純二進位制的機器級**。計算機可以執行目標級**,但是典型的目標模組是不完備的,它包含對其它目標模組(諸如訪問方法或子例程)的引用。

因此,目標模組通常是不能裝入計算機並執行的。所以,一些目標模組必須首先鏈結成乙個裝入模組,它是能被裝入並執行的完備的機器級程式。這個使目標模組鏈結成裝入模組的過程,在ibm系統中是由稱為鏈結編輯程式的系統程式實現的。

⑶裝入(loader):由裝入程式將裝入模組裝入記憶體並執行

顯然,如果在作業裝入時或在其執行時,不對有關的位址部分加以相應的修改,則將導致錯誤的結果。

這種由於把乙個作業裝入到與其位址空間不一致的儲存空間所引起的對位址部分調整的過程,稱為位址重定位。

實質上,位址重定位是乙個位址變換過程,是把作業位址空間中使用的邏輯位址變換成記憶體空間中的實體地址的過程。這種位址變換就是前面所說的位址對映。

根據對位址變換進行的時間及採用技術手段的不同,把重定位分為靜態重定位和動態重定位兩類。可重定位裝入方式採用的的是靜態重定位技術。

靜態重定位:是指作業在裝入過程中由裝配程式進行的位址變換方式。它要求程式本身是可重定位的,即要求編譯程式對作業的目標程式中那些要修改的位址部分給出相應的標識。

這種重定位之所以稱為靜態的,是因為位址變換只在作業執行前集中一次完成的。

主要優點:無需增加硬體位址變換機構,因而可在一般計算機上實現。

主要缺點:①要求給每個作業分配乙個連續的儲存區域,且在其整個執行期間必須限定在這個區域內。也就是說,在作業執行期間不能把它移動,因而也就不能實現重新分配主存。

這對提高主存的利用率是不利的。

使用者必須事先確定所需的儲存量,若所需的儲存量超過可用儲存空間時,使用者必須考慮覆蓋結構。

③使用者之間難以共享主存中的同一程式。若要共享一程式,則每個使用者應各自使用乙個分開的副本。

三、動態執行時裝入方式(denamle run-time loading) :

採用的的是動態重定位技術。

動態重定位:是指在作業執行過程中,當訪問指令或資料時,由附加的位址變換機構進行的位址變換方式。動態重定位是靠硬體位址變換機構實現的。

最簡單的辦法是利用乙個重定位暫存器(rr)。該暫存器的值是由程序排程程式(或另派程式)根據作業分配到的儲存空間起始位址來設定的。

在具有這種位址變換機構的計算機系統中,當執行作業時,不是根據cpu給出的有效位址去訪問主存,而是將有效位址與重定位暫存器中的內容相加後得到的位址作為訪問主存的位址。下圖給出了位址變換過程。

採用動態重定位技術後,程式中所有指令和資料的實際位址是在執行過程中最後訪問的時刻確定的。因此,計算機系統採用了動態儲存分配策略。也就是說,在作業執行過程中臨時申請分配附加的儲存區域或釋放已占用的部分儲存空間是允許的。

主要優點:①主存的使用更加靈活有效。這裡,乙個使用者的作業不一定要分配在乙個連續的儲存區,因而可以使用較小的分配單位。

而且,在作業開始之前也不一定把它的位址空間全部裝入主存,而可以在作業執行期間響應請求動態地進行分配。

②幾個作業共享一程式段的單個副本比較容易。

③有可能向使用者提供乙個比主存的儲存空間大得多的位址空間。因而無需使用者來考慮覆蓋結構,而由系統來負責全部的儲存管理。

主要缺點:①需要附加硬體支援;

實現儲存器管理的軟體比較複雜。

4.3 連續分配管理 p121

1.單一連續分配

(1)系統總是把整個使用者區分配給乙個使用者使用。

(2)實際上,記憶體使用者區又被分為「使用區」和「空閒區」。空閒區被成為」記憶體碎片「。

(3)由於任何時刻記憶體儲器的使用者區中只有乙個作業執行,因此這種系統只適用於單使用者的情況。

單一連續分割槽儲存管理有如下缺點:

(1)由於每次只能有乙個作業進入記憶體,故它不適用於多道程式設計,整個系統的工作效率不高,資源利用率低下。

(2)只要作業比使用者區小,那麼在使用者區里就會形成碎片,造成記憶體儲器資源的浪費。如果使用者作業很小,那麼這種浪費是巨大的。

(3)若使用者作業的相對位址空間比使用者區大,那麼該作業就無法執行。即大作業無法在小記憶體上執行

儲存保護

在固定分割槽儲存管理中,不僅要防止使用者程式對作業系統形成的侵擾,也要防止使用者程式與使用者程式之間形成的侵擾。因此必須在cpu中設定一對專用的暫存器,用於儲存保護。

作業系統儲存器管理習題

精品word文件值得 值得擁有 儲存器管理 單項選擇題 儲存管理的目的是 a.方便使用者b.提高記憶體利用率 c.方便使用者和提高記憶體利用率 d.增加記憶體實際容量 外存 如磁碟 上存放的程式和資料 a 可由cpu直接訪問b 必須在cpu訪問之前移入記憶體 c 是必須由檔案系統管理的d 必須由程序...

作業系統實驗五虛擬儲存器管理

作業系統課程報告 虛擬儲存器管理 學號姓名 班級教師 華僑大學電子工程系 設計目的 1 理解虛擬儲存器概念。2 掌握分頁式儲存管理位址轉換和缺頁中斷。設計內容與基本要求 1 模擬分頁式儲存管理中硬體的位址轉換和產生缺頁中斷。2 用先進先出頁面排程演算法處理缺頁中斷。設計報告內容 1 分頁式儲存管理和...

作業系統第四章儲存器管理 答案

第四章儲存器管理 學號姓名 一 單項選擇題 1 儲存管理的目的是 a.方便使用者 b.提高記憶體利用率 c.方便使用者和提高記憶體利用率 d.增加記憶體實際容量 2 外存 如磁碟 上存放的程式和資料 a 可由cpu直接訪問 b 必須在cpu訪問之前移入記憶體 c 是必須由檔案系統管理的 d 必須由程...