请求分页存储管理方式
基本分页 + “请求调页”和“页面置换”功能。
换入和换出基本单位都是长度固定的页面
1.硬件支持
一台具有一定容量的内/外存的计算机+ 页表机制+ 缺页中断机构+ 地址转换机构
1.1页表基本功能不变:逻辑地址映射为物理地址
增加虚拟功能后需记录的页表项信息有变化:
- 状态位P :指示该页是否已调入内存。
- 访问字段A :用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问。(置换时考量的参数)
- 修改位M :该页在调入内存后是否被修改过。(关系到置换时调出的具体操作)
- 外存地址:用于指出该页在外存上的地址。
1.2缺页中断机构
每当要访问的页面不在内存时,便产生一缺页中断通知OS,OS则将所缺之页调入内存。
1)作为中断,需经历几个步骤:
a) “保护CPU环境”
b) “分析中断原因”
c) “转入缺页中断处理程序”
d) “恢复CPU环境”等。
2)作为一种特殊中断,与一般中断有明显区别:
在指令执行期间产生和处理中断信号。
一条指令在执行期间,可能产生多次缺页中断。
1.3地址变换机构
分页系统地址变换机构的基础上增加
产生和处理缺页中断(请求调入)
从内存中换出一页的功能(置换)
2.内存分配
作业不一次装入,部分装入的情况下如何为进程分配内存,涉及三个问题:
2.1最小物理块数的确定
少于此数量进程将不能运行
与计算机的硬件结构有关,取决于指令的格式、功能和寻址方式
2.2物理块的分配策略
考虑:固定OR可变分配、全局OR局部置换。
组合出三种适合的策略。
1)固定分配、局部置换
为每个进程分配一定数目的物理块,在整个运行期间不再改变(基于进程的类型,或根据程序员、程序管理员的建议)
运行中缺页时,只能从该进程内存中n个页面中选出一页换出,然后再调入一页。
困难:难以把握为每个进程分配“适量”物理块数
2)可变分配、全局置换
先为每个进程分配一定数目的物理块
OS管理一个空闲物理块队列,发生缺页时,系统从队列中取出一块分配给该进程,将欲调入的页装入(动态增长型,全局空闲空间都可分配使用)
空闲空间不足时,可与其他任何进程页面置换。“会使其他进程缺页率提高,影响运行”。
最易实现
3)可变分配、局部置换
为每个进程分配一定数目的物理块
缺页时,只允许换出该进程在内存的页面,不影响其他进程执行。
根据缺页率增减进程的物理块数:若频繁缺页中断,则系统再为进程分配若干物理快;若缺页率特别低,则适当减少分配给该进程的物理块。
2.3物理块的分配算法
固定分配策略时,分配物理块可采用以下几种算法:
1)平均分配算法
将所有可供分配的物理块平均分配给各进程。
缺点:未考虑各进程本身的大小&#