请求分页系统中页面分配策略与页面置换策略的关系
請求分頁系統中頁面分配策略與頁面置換策略的關系
@(OS)
回顧幾種分配策略:
- 固定分區分配
- 動態分區分配
- 伙伴系統
- 可重定位分區分配
頁面置換策略:
- 全局置換
- 局部置換
其中,關于分區分配策略已經很熟悉了,需要特別說明的是頁面置換策略。這是我們在課本上不太強調的。
局部置換只置換本進程內的物理頁面。一個進程占用的物理頁面總數是限定的,當需要置換時,即總數已經用完,新進來一個頁面,本進程就需要出去一個老的頁面。所謂,朋友圈就那么大,有人進來自然需要有人出去。但是需要注意的是,如果分配給你的總數還沒用完,自然是不用置換的,那是最初的紅利時期,競爭還不激烈,先到先得。
全局置換指的是進程缺頁時,可能置換的是內存中所有可換出的物理頁面。即要換進的是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項是無法組合在一起使用的。
?
總結
以上是生活随笔為你收集整理的请求分页系统中页面分配策略与页面置换策略的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全面总结:进程与线程
- 下一篇: 处理被中断的系统调用