電腦作業系統之儲存空間管理

來源:互聯網
上載者:User
文章目錄
  • 為什麼要用到對換?
  • 對換空間的管理
  • 進程的換入與換出:
  • 引言
  • 頁面與物理塊
  • 頁面的大小
  • 地址結構
  • 地址變換機構---頁表
  • 基本的地址變換機構
電腦作業系統之儲存空間管理程式運行

將使用者的一個來源程式變成一個可在記憶體中執行的程式,通常要經過以下幾個步驟:

l  編譯:由編譯器,將程式編譯成若干個目標模組

l  連結:由連結程式將編譯後形成的一組目標模組,以及他們所需要的庫函數連結在一起,形成一個完整的裝入模組。

l  裝入:由裝入程式將裝入模組裝入記憶體

 

具體討論一下如何把一個裝入模組,裝入記憶體:

l  絕對裝入方式:編譯器產生帶有絕對位址的目標代碼,只適合於單道程式環境。

l  可重定位裝入方式:所得到的模組都是以0開始的,程式中的其它地址也都是相對於起始地址計算的,此時可重寫位裝入方式,根據記憶體的情況,將裝入模組裝入到記憶體的適當位置。通常把在裝入時對目標程式中指令和資料的修改過程稱為重定位。又因為地址變換通常是在裝入時一次完成的,以後不再改變,故稱為靜態重定位。

l  動態運行時裝入方式:上一種方式,可將裝入模組裝入到記憶體中任何位置,故可用於多道程式環境,但並不允許程式運行時在記憶體中移動位置。而動態運行時裝入方式,是在把裝入記憶體後,並不立即把裝入模組中的相對位址轉換為絕對位址,而是把這種地址轉換延遲到程式真正要執行時才進行。因此,裝入記憶體後的所有地址都仍是相對位址。為了不影響轉換帶來的不良影響,一般使用一個重定位寄存器。

程式的連結

來源程式經過編譯後,可得到一組目標模組,再利用連結程式將這組目標模組連結,形成裝入模組。根據連結的時間的不同,可把連結分成如下三種:

l  靜態連結:在程式運行之前,先將各目標模組和它們的所用的連結庫,連結成一個完整的裝配模組,以後不再拆開。

l  裝入時動態連結:在把一系列的目標模組裝入記憶體時,採用邊裝入邊連結的連結方式。

l  運行時動態連結:這是指對某些目標模組的連結,是在程式執行中要該模組時,才對它進行連結。

對換:為什麼要用到對換?

在多道程式環境下,在記憶體中的某些進程由於某事件尚未發生,而被阻塞了,但它卻佔用了大量的記憶體空間,另一方面,其他的作業卻在外存上等待。這樣就形成了浪費。因此引用了“對換”這個概念。

對換是把記憶體中能啟動並執行進程或者暫時不用的程式和資料,調出到外存上,以便騰出足夠的記憶體,再把已經具備運行條件的進程或進程所需要的程式和資料,調入記憶體。

 

如果對換的單位是整個進程,則稱為整體對換,如果對換的單位是段或頁,則稱為部分對換。

對換空間的管理

在具有對換功能的OS中,通常把外存分為檔案區和對換區。前者用於存放檔案,後者用於存放從記憶體換出的進程。

由於對換分區的分配是連續分配方式,因而對換空間的分配與回收,與動態分區方式時的記憶體配置與回收方法雷同。一般用首次適應演算法,迴圈首次適應演算法或最佳適應演算法。

 

進程的換入與換出:

l  如果某一個進程被阻塞了或是優先順序最低的,一般會把它的程式與資料換出到對換區

l  系統應定時地查看所有的進程的狀態,從中找出“就緒”狀態但已經換出的進程,將其中換出時間最久的進程作為換入進程,將之換入。

 

 

基本的分頁儲存管理方式引言

連續分配方式會形成許多的片段,雖然可通過“緊湊”方法將許多片段拼接成可用的大塊空間,但須為之付出很大的開銷。如果允許將一個進程直接分散地裝入到許多不相鄰接的分區中,則無須再進行“緊湊”。基於這一思想,產生了離散的分配方式。如果離散分配的基本單位是頁,則稱為分頁儲存管理方式;如果是段,則稱為分段儲存管理方式。

在分頁儲存管理中,如果不具備頁面對換功能,則稱為基本的分頁儲存管理方式,或稱為純分頁儲存管理方式,它不具有支援實現虛擬儲存空間的功能。它要求把每個作業全部裝入記憶體後才能運行。

頁面與物理塊

分頁儲存管理,是將一個進程的邏輯地址空間分成若干個大小相等的片,稱為頁面。也把記憶體空間分成和頁面大小相等的儲存塊,稱為物理塊或頁框。由於進程的最後一頁經常裝不滿一塊而形成了不可利用的片段,稱為“頁內片段”

 

頁面的大小

頁面太小,可以減小頁內片段,提高利用率。但是這樣會使得頁表過長。如果頁面過大,雖然頁面可以變得很短,但是頁內片段太大。所以一般選擇大小適中,且頁面大小就是2的冪,通常是512B-8KB。

地址結構

分頁地址中的地址如下:

一共32位,0-11位是位移量(頁內地址,所以一頁為4KB), 12-31是頁號,所以最多可以有1M頁。

地址變換機構---頁表

為了能將使用者地址空間中邏輯地址,變換為記憶體空間中的物理地址,在系統中必須設定地址變換機構。該機構的基本任務是實現從邏輯地址到物理地址的轉換。由於頁面內的地址與物理塊內的地址是一一對應的。所以只要把邏輯地址的頁號轉換為記憶體中的物理塊號就可以了。

而頁面映射表(頁表)就是用於實現從頁號到物理塊號的變換。因此,地址變換的任務是藉助於頁表來完成的。

 

基本的地址變換機構

頁表的功能可以藉助一組專門的寄存器來實現。一個頁表項用一個寄存器來實現,但是由於頁表太長,寄存器比較小,而且貴。所以一般把頁表放在記憶體上。在系統中只設定一個頁表寄存器PTR,在其中存入頁表在記憶體中的始址和大小。當程式未執行時,這兩個值是放在PCB中的。當發送器調度到某個進程時,才將這兩個資料裝入頁表寄存器中。因此在單處理機環境下,雖然系統中可以運行多個進程,但只要一個PTR就可以。

 

當進程要訪問某個邏輯地址中的資料時,分頁地址變換機構會自動地將有效地址分為頁號和頁內地址兩部分。再以頁號為索引去檢索頁表。尋找操作由硬體來執行,提高效率。首先判斷是不是越界,如果不越界,則將頁表始址與頁號和頁表項長度的乘積相加,便得到該表項在頁表中的位置,於是可從中得到該頁的物理塊號,將之裝入物理地址寄存器中。與此同時,再將有效地址寄存器中的頁內地址送入物理地址寄存器的塊內地址欄位中。這樣便完成了從邏輯地址到物理地址的變換。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.