操作系统内存管理二(2)页框分配
根据王道2024
一、驻留集大小
驻留集:
给一个进程分配的物理页框的集合
特点:
-
分配给一个进程的页框越少→驻留在主存中的进程越多→CPU利用率越高
-
分配的页框过少→缺页率较高
-
分配的页框过多→对进程的缺页率影响不大
二、内存分配策略
内存分配三种策略:
-
固定分配局部置换
-
分配给进程一定数量的物理块(运行时固定不变)
-
难以确定分配的物理块数量,太少→缺页中断频繁;太多→降低CPU和其他资源利用率
-
-
可变分配全局置换
-
分配一定数量的物理块(运行时可适当增减)
-
需要调入页面时,从空闲物理块调入,盲目增加→可能导致多道程序的并发能力下降
-
-
可变分配局部置换
-
分配一定数量的物理块(运行时,缺页率低→减少分配的物理块;缺页率高→增加物理块;缺页率适中→固定不变)
-
保证适当的缺页率,保持了系统的多道程序并发能力
-
开销更大,浪费资源更多,实现更复杂
-
三、物理块调入算法
分配空闲物理块算法:
-
平均分配算法:将可供分配的物理块平均分配给进程
-
按比例分配算法:根据进程大小按比例分配
-
优先权分配算法:为重要和紧迫的进程分配较多的物理块
通常将一部分按比例分配,另一部分按优先权分配
四、调入页面的时机
调页策略:
-
预调页策略(运行前调入):以预测为基础,将预计在最近会被访问的页面预先调入内存
-
成功率不高
-
主要用于进程首次调入
-
-
请求调页策略(运行时调入):当所需页面不在内存时请求调入内存
-
易于实现
-
每次仅调入一页,增加磁盘IO开销
-
五、从何处调入页面及如何调入页面
外存分区:
-
文件区:存放文件
-
离散分配
-
磁盘IO速度较慢
-
-
对换区:存放对换页面
-
连续分配
-
磁盘IO速度较快
-
缺页请求调入内存的三种情况:
-
对换区空间充足
-
全部从对换区调入页面→提高调页速度
-
运行前需将相关文件从文件区复制到对换区
-
-
对换区空间少
-
不修改的文件都直接从文件区调入
-
未被修改页面不必换出内存;修改的部分换出到对换区,需要时再从对换区调入
-
-
UNIX方式
-
未运行过的页面都从文件区调入
-
运行过又被换出到对换区的页面从对换区调入
-
进程请求的共享页面若被其他进程调入内存,不需要再从对换区调入
调入页面步骤:
-
当要访问的页面不在内存中时(存在位为0),发出缺页中断执行处理程序
-
通过查找页表找到对应的物理地址
-
若内存已满,则按置换算法选出一页换出【未修改(修改位为0)→无须写回磁盘;已修改(修改位为1)→写回磁盘】,将缺页调入内存,修改存在位为1
-
若未满,磁盘IO→将缺页调入内存,修改存在位为1