操作系统 请求分段存储管理
作者:互联网
段表机制
- 存取方式 用于标识本分段存取属性是只执行、只读还是允许读/写
- 存在位P 用于指示该段是否已调入内存
- 访问字段A 用于记录本页在一段时间内被访问的次数,或记录本页在最近多长时间未被访问
- 修改位M 表示该段在调入内存后是否被修改过
- 外存地址 本段在外存上的地址,盘块块号
- 增补位 本段在运行过程中是否做过动态增长
请求分段系统中的中断处理过程
- 从中可看出,对缺段中断的处理要比对缺页中断的处理复杂,因为段是不定长的。
地址变换机构
- 请求分段系统中的地址变换机构,是在分段系统地址变换机构的基础上形成的。
- 因为被访问的段并非全在内存,因而在地址变换时,若发现所要访问的段不在内存时,必须先将所缺的段调入内存,并修改了段表之后,才能再利用段表进行地址变换。
- 为此,在地址变换机制中又增加了某些功能,如缺段中断的请求及其处理等。
请求分段系统的地址变换过程
共享段表
- 为了实现分段共享,可在系统中配置一张共享段表所有各共享段都在共享段表中占有一表项
- 共享进程计数count
- 记录有多少个进程需要共享该分段
- 存取控制字段
- 对于一个共享段,应给不同的进程以不同的权限
- 段号
- 对于一个共享段,不同的进程可以各用不同的段号去共享该段
- 对于一个共享段,不同的进程可以各用不同的段号去共享该段
共享段分配与回收
共享段的分配
- 对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,再把共享段调入该区,同时将该区的始址填入请求进程的段表的相应项中,还须在共享段表中增加一表项,填写有关数据,把count置为1;
- 当又有其它进程需要调用该共享段时,无须再为该段分配内存,而只需在调用进程的段表中,增加一表项,填写该共享段的物理地址;在共享段的段表中,填上调用进程的进程名、存取控制等,再执行count∶=count+1操作,以表明有两个进程共享该段
共享段的回收
- 撤消在该进程段表中共享段所对应的表项
- 执行count∶=count-1操作
- 若结果为0,则须由系统回收该共享段的物理内存,以及取消在共享段表中该段所对应的表项,表明此时已没有进程使用该段;
- 否则(减1结果不为0),则只是取消调用者进程在共享段表中的有关记录。
分段保护
越界检查
在段表寄存器中放有段表长度信息;同样,在段表中也为每个段设置有段长字段。
在进行存储访问时,首先,将逻辑地址空间的段号与段表长度进行比较,如果段号等于或大于段表长度,将发出地址越界中断信号;
其次,还要检查段内地址是否等于或大于段长,若大于段长,将产生地址越界中断信号,从而保证了每个进程只能在自己的地址空间内运行。存取控制检查
在段表的每个表项中,都设置了一个“存取控制”字段,用于规定对该段的访问方式。通常的访问方式有:- 只读 :只允许程序对该段中的程序或数据进行读访问;
- 只执行 :只允许程序调用该段去执行,但不准读该段的内容,也不允许对该段执行写操作;
- 读/写 :允许程序对该段进行读写访问。
环保护机构
它是一种功能较完善的保护机构。在该机制中规定:低编号的环具有高优先权,OS核心处于0环内;某些重要的实用程序和操作系统服务,占居中间环;而一般的应用程序,则被安排在外环上。
在环系统中,程序的访问和调用应遵循以下规则:- 低编号的环具有高优先权,操作系统位于最核心环
- 一个程序可以访问驻留在相同环或较低特权环中的数据
- 一个程序可以调用驻留在相同环或较高特权环中的服务
- 一个程序可以访问驻留在相同环或较低特权环中的数据;(内环可访问外环数据)
- 一个程序可以调用驻留在相同环或较高特权环中的服务。(外环可请求内环服务)
请求分段存储管理——优点
- 可提供大容量的虚存
- 允许动态增加段的长度
- 允许段的动态增长特性便于处理变化的数据结构,如表格和数据段等
- 便于段的动态链接
- 便于实现程序段的共享
- 便于实现存储保护
请求分段存储管理——缺点
- 进行地址转换和实现紧凑操作都要花费CPU的时间;各段还要设立若干表格而占用额外的存储空间。
标签:存储管理,分段,访问,进程,段表,该段,共享,操作系统 来源: https://blog.51cto.com/u_14175378/2759911