Please enable JavaScript.
Coggle requires JavaScript to display documents.
3.2请求分页存储管理方式, 页面调入策略, 请求分页中的内存分配 - Coggle Diagram
3.2请求分页存储管理方式
缺页中断机构
内存中有空闲块,调入,
修改相应页表项
无,淘汰某页,若修改过则
写回外存
不在内存→缺页中断,阻塞进程,请求操作系统调入
特点
内部中断,
故障
,指令执行期间产生和处理中断信号(而非执行完)
一条指令可能中断多次
基于此,操作系统中的硬件机构应能保存多次中断时的状态
地址变换机构
未找到区内存找,对比
状态位P
,若在内存中,将页表项写入快表
未调入产生缺页中断
检索快表,若找到则修改访问位,(写指令重置修改位),得到物理地址
请求页表机制
页表
页号/物理块号/状态位P/访问字段A/修改位M/外存地址(物理块号)
页面调入策略
页面调入过程
CPU收到缺页中断,中断处理程序保存CPU环境,分析中断原因后转入
缺页中断处理程序
缺页中断处理程序工作过程,查找页表得到物理块,
(如果内存能容纳新页),
(如果内存已满),选出一页准备换出,根据是否被修改过决定是否需要写回磁盘
启动磁盘I/O,调入内存,
修改页表
,并将此页表项写入快表
利用修改后的页表形成物理地址,再去访问内存
此时缺页调入过程完成
整个调入过程对用户透明
缺页率
f=F/A
F是缺页次数,A是
该进程
总的页面访问次数
影响因素
进程所分配物理块数目
页面置换算法
页面大小
程序固有属性
从何处调入页面
对换区空间不足
不会被修改的文件直接从文件中调入,换出时不必重写到磁盘
可能被修改的部分,换出到对换区,以后从对换区调入
对换区空间足够
全部从对换区调入,调页速度高
进程运行前,需将与该进程有关的文件从文件区拷贝到对换区
UNIX方式
从未被运行过的在文件区,调入换出的页面在对换区
UNIX允许
页面共享
,某进程请求的可能已经在内存
工作集
工作集
某段时间间隔里,进程实际访问的页面的集合
驻留集大小不能小于工作集,否则频繁换页
驻留集
请求分页存储管理中给进程分配的内存块的集合
何时调入页面
请求调页策略
每次仅调入一页
预调页策略
采用
工作集
的系统,将工作集中所有页调入内存
第一次将进程调入内存时由程序员指出
抖动/颠簸
根本原因
同时在系统中运行的进程太多,由此分配给每一个进程的物理块太少,不能正常运行
现象
每个进程运行时频繁的出现缺页,排队等待页面调入/调出的进程增加,每个进程的大部分时机都在用于页面的换进/换出,处理机利用率急剧下降并趋于0
请求分页中的内存分配
(分配物理块时的)内存分配策略
可变分配全局置换
缺页就获得,空闲物理块用完才开始调出,被选择的进程物理块减少,缺页率增加
未
锁定
的页面才能换出外存,如重要的内核数据需锁定
只要缺页就加块
可变分配局部置换
频繁缺页加块
频繁缺页才加块
固定分配局部置换
分配多少难以确定
根据进程大小、优先级或程序员给出的参数决定分配的内存块数
物理块分配算法
按比例
优先权
平均分配
(正常运行所需)最小物理块数
与硬件结构有关,取决于指令的格式、功能和寻址方式