作業系統之儲存

來源:互聯網
上載者:User

儲存管理

    儲存管理指的是對記憶體儲器的管理,負責對記憶體的分配和回收、記憶體的保護和擴充等,目的是盡量提高記憶體的使用效率。

文章脈絡

            

分類

    實存:真正的記憶體空間;虛存:外存中的虛擬記憶體

重定位

   重定位是指,裝入程式時,將程式中的邏輯地址轉換為物理地址的過程。安裝方式,可以分為靜態重定位和動態重定位。為什麼要重定位?因為程式的邏輯地址一般從0開始,而記憶體中前面的空間留給系統或其他程式使用,導致了邏輯地址和物理地址不對應的問題,所以進行轉換。

   靜態重定位:虛空間程式執行之前,裝配程式完成的地址轉換工作。如下,程式轉移時,把其中涉及到的邏輯地址全部轉換為物理地址,如下所示:

        

 

   動態重定位:程式裝入記憶體,CPU訪問記憶體之前,進行的地址轉換。如下:

        

   因為動態重定位實在CPU訪問之前才進行地址轉換,所以在記憶體中2500仍為2500,當CPU提取時,才會進行地址轉換。

實存分配

   分為以下幾種方式

        

   單一連續分配:把整個使用者可用記憶體區當做一個塊使用,很明顯,這樣只能執行單使用者單程式模式。

   固定分區分配:把使用者可用記憶體區分成幾個不等的塊,一旦分配即固定不變。

   可變分區分配:分成幾個大小不等的塊,但是可以隨著程式執行完畢對記憶體進行回收和合并。可變分區有四種演算法:

   首次適應法:從主存地址值開始尋找,找到第一塊可用的自由區,並把剩餘的部分進行合并。這種方法的優點是可以快速分配,縮小尋找時間。

   最佳適應法:選擇記憶體中等於或最接近需求大小的記憶體自由區。這種方法的優點是可以減少記憶體片段,但是由於最接近需求所用的記憶體地區,容易剩餘小得無法再用的片段。

   最差適應法:選擇記憶體中最大的自由區使用。

    迴圈首次適應演算法:是首次適應法的變型,它的特點是每次都是向下尋找,而不是從頭開始。

   隨著進程的執行,剩餘的地區變得越來越小,怎麼解決?可以用合并自由地區和儲存拼接技術。合并自由區指的是,將相鄰自由儲存區合并為單一自由區的方法;儲存拼接技術也叫片段收集,包括移動儲存空間等,把所有佔用的地區放到主存的一端,依此來解決片段浪費問題。

   每種演算法都有各自的優缺點,根據實際情況選擇使用。

虛存管理

   為什麼會有虛存?因為虛存可以擴大記憶體的使用範圍,讓原本記憶體不可啟動並執行大程式,經過虛存管理變成可行。虛存管理方式分為以下三種方式:

   頁式儲存群組織

   這種方式是將使用者程式分為若干個大小相等的頁,將記憶體分為若干個段,讓後把這些也和段分別對應起來,盛放對應關係的容器,稱之為頁表,如下所示:

            

   段式儲存群組織

   從使用者的角度出發,何為從使用者的角度出發?即按照意義將程式分段,比如按主程式、子程式、邏輯分段,段的大小不等,且段的大小大於頁的大小。   

            

   段頁式儲存

   結合了頁式儲存群組織和段式儲存群組織的優勢,根據程式模組分段,段內再分頁,記憶體被分為定長的頁,段也是儲存雖然提高了記憶體空間的利用率,但是增加了段表和頁表的開銷:

   

   頁面置換演算法

   如果頁面被頻繁地裝入和調出,成為“抖動”,應盡量減少抖動,常用的演算法有以下幾種:

  • 最優演算法:選擇不再使用或很久以後才使用的頁。的確最優,但是難以實現。
  • 隨機演算法:隨機播放被淘汰的頁,開銷小,但是可能剛選中就要訪問。
  • 先進先出演算法:選擇在記憶體駐留時間最長的頁,但也可能淘汰掉頻繁使用的頁。
  • 最近最少使用演算法:選擇離目前時間使用最少的頁。

   還有其它演算法,不管演算法是什麼,都圍繞這一個主題:合理減少頁面的淘汰和調入。

   儲存管理的對象是記憶體,圍繞著記憶體管理、分配、最佳化等中心,讓盡量少的資源完成盡量多的任務,儲存管理先說到這裡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.