當前位置:
首頁 > 知識 > 請求分頁系統中頁面分配策略與頁面置換策略的關係

請求分頁系統中頁面分配策略與頁面置換策略的關係

回顧幾種分配策略:

  • 固定分區分配
  • 動態分區分配
  • 夥伴系統
  • 可重定位分區分配

頁面置換策略:

  • 全局置換
  • 局部置換

其中,關於分區分配策略已經很熟悉了,需要特別說明的是頁面置換策略。這是我們在課本上不太強調的。

局部置換隻置換本進程內的物理頁面。一個進程佔用的物理頁面總數是限定的,當需要置換時,即總數已經用完,新進來一個頁面,本進程就需要出去一個老的頁面。所謂,朋友圈就那麼大,有人進來自然需要有人出去。但是需要注意的是,如果分配給你的總數還沒用完,自然是不用置換的,那是最初的紅利時期,競爭還不激烈,先到先得。

全局置換指的是進程缺頁時,可能置換的是內存中所有可換出的物理頁面。即要換進的是A進程的頁面,出去的可以是B進程的頁面,因此分配給進程的頁面總數是動態變化的。

這兩種總的置換策略下有各自的方法:

局部置換:

  • 最優演算法
  • 先進先出演算法(有Belady異常)
  • Least Recently Used(最近最久未使用演算法)
  • 時鐘演算法
  • 最不常用演算法(Least Frequently Used)演算法

全局置換:

  • 工作集演算法
  • 缺頁率演算法

(2015.30) 請求分頁系統中,頁面分配策略和頁面置換策略不能組合使用的是:C

C_

A. 可變分配,全局置換

B. 可變分配,局部置換

C. 固定分配,全局置換

D. 固定分配,局部置換

固定分配:將內存用戶空間劃分為多個固定大小的區域,在每個分區中只裝入一個作業

劃分分區的方法有兩種:

  • 分區大小相等
  • 分區大小不等

內存分配方法:按照分區大小建立分區使用表。記錄每個分區的起始地址,大小和狀態。

因此,固定分配不可能實現跨越進程的頁面分配,個人自掃門前雪類型。

動態分區分配:根據進程的實際需要,動態地為之分配內存空間。

這句話不可以簡單跳過,根據的是進程的需要,進程是動態的,是一次靜態程序的執行過程。

為了實現這個,需要建立空閑分區表和空閑分區鏈。空閑分區表自然也是記錄分區區號,分區起始地址和大小等。分區可以是離散的,因此需要鏈表來維護分區之間的關係。

分配內存:根據某種分配演算法(首次適應,循環首次適應,最佳適應,最壞適應,快速適應等),從空閑分區鏈中找到需要的分區,根據一個算式:

m.size?u.size≤size

m.size?u.size≤size,其中m.size是每個空閑分區的大小,u.size是請求的分區大小,size是規定的不可再切割的剩餘分區的大小。即,如果分配完以後,剩餘部分小於size這條線了,那麼就把整個分區給你,否則,你只能拿到你所需要的。也即是超過一定量的交易額是大客戶,待遇要好於小客戶。

從這個過程中我們可以看到,空閑分區沒有屬於哪個進程的概念,即大家是吃大鍋飯的。則在實現分頁系統時,可以實現全局分配。局部分配是基礎配置,自然不必多說。

因此,C項是無法組合在一起使用的。

請求分頁系統中頁面分配策略與頁面置換策略的關係

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

dubbo同名方法的問題及思考
程序員,為何總是那麼的低調

TAG:程序員小新人學習 |