请求分段存储管理方式
在分段基础上所建立的请求分段式虚拟存储器系统,是以分段为单位进行换入、换出的,实现时需要与请求分页存储管理方式类似的硬件支持。
1. 请求分段中的硬件支持
1.1. 请求段表机制
请求分段的段表项:
| 段名 | 段长 | 段基址 | 存取方式 | 访问字典 A | 修改位 M | 存在位 P | 增补位 | 外存始址 |
- 存取方式:标识只执行、只读、读写
- 访问字段 A:记录该段被访问的频繁程度
- 增补位:用于本段在运行过程中是否做过动态增长
1.2. 缺段中断机制
缺段中断要求在一条指令执行期间产生和处理中断,和处理多次缺段中断。
1.3. 地址变换机构
2. 分段共享与保护
分段存储管理方式的优点是便于实现分段的共享与保护。
2.1. 共享段表
为实现分段共享,需在系统中配置相应的数据结构——共享段表,所有共享段都在共享段表中占有一项。
- 共享进程计数count:记录需要此共享段的进程数,当 count=0 系统才能收回该段所占用的空间。
- 存取控制字段:对于一个共享段,不同进程被赋予不同的存取权限。
- 段号:对于一个共享段,在不同进程中可以具有不同的段号。
2.2. 共享段的分配与回收
在为共享段分配内存时,对第一个请求使用该共享段的进程,由系统为该共享段分配以物理区,再把共享段调入该区,同时将该区的始址填入请求进程的段表中,还需在共享段表增加一表项,填写请求使用该共享段的进程名、段号和存取控制等数据,把 count 置“1”;当又有其他进程需要调用该共享段时,由于该共享段已被调入内存,只需调用进程的段表增加一表项,填写该段的物理地址,在共享段表中添加一个表项,count 加“1”。
当共享此段的某进程不再需要此段时,应将此段释放,包括撤销在该进程段表中共享段所对应的表项, count-“1”,进程在共享段表中的有关记录。若 count 结果为“0”,还需系统收回该共享段的物理内存,以及取消在共享段表中该段所对应的表项。
2.3. 分段保护
易于实现信息保护的原因是每个分段在逻辑上是独立的。
越界检查
越界检查利用地址变换机构完成。地址变换机构设置了段表寄存器,用于存放段表始址和段表长度,逻辑地址空间的段号需要跟段表长度比较;每个段表中为每个段设置段长字段,段内地址需要与段长比较。
存取控制检查
存取控制检查是以段为基本单位,段表的每个表项都设置存取控制字段。
环保护机构
在环保护机构中规定,低编号的环具有高优先级,OS 核心处于0号环,一个程序可以访问驻留在相同环或较低特权环中的数据,可以调用驻留在相同环或较高特权环中的服务。
3. ChangeLog
2018.09.16 初稿