存储器管理 4.9 请求分段存储管理方式

Posted 05-ReFrain-19

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储器管理 4.9 请求分段存储管理方式相关的知识,希望对你有一定的参考价值。

硬件支持,分段的共享与保护

工作原理:请求分段系统中,程序运行之前,只需先调入若干个分段(不必调入所有的分段),便可启动运行。当所访问的段不在内存中时,可请求OS将所缺的段调入内存。 

一、硬件支持

    1.请求分段的段表机制

      ①状态位(存在位)P:用于说明该段是否已调入内存,供程序访问时参考

      ②访问位A:用于记录本段在一段时间内被访问的次数,提供给置换算法选择换出段时参考

      ③修改位M:用于表示该段在调入内存后是否被修改过,也是提供给置换算法在换出段时是否将该段写回外存作参考

      ④增补位:说明该分段是否允许扩展,此外如该段已被增补,则在写回辅存时,需另选择辅存空间

      ⑤外存地址:用于指出该段在外存上的地址,供调入该页时使用

    2.缺段中断机构

    3.地址变换机构 

二、分段的共享与保护 

    1.共享段表 

     为了实现分段共享,可在系统中配置一张共享段表,所有共享段都在共享段表中占有一个表项。

      ①共享进程计数:记录有多少进程共享该段

      ②存取控制字段:对同一共享段,不同进程有不同的操作权限

      ③段号:共享段在不同进程中有不同的段号

    2.共享段的分配

      对第一个请求使用该共享段的进程:由系统为该共享段分配一物理区,再把共享段调入该区,同时将该区的始址填入请求进程的段表的相应项中,还须在共享段表中增加一表项,填写有关数据,把count置为1;

      当又有其它进程需要调用该共享段时,无须再为该段分配内存,而只需在调用进程的段表中,增加一表项,填写该共享段的物理地址;在共享段表中,填上调用进程的进程名、存取控制等,再执行count:=count+1操作。

    3.共享段的回收

      当共享此段的某进程不再需要该段时,应将该段释放, 包括撤消该进程段表中共享段所对应的表项,以及执行count:=count-1操作;

      若count结果为0,则须由系统回收该共享段的物理内存,以及取消在共享段表中该段所对应的表项,表明此时已没有进程使用该段;否则(减1结果不为0), 则只是取消调用者进程在共享段表中的有关记录。

    4.分段保护

      ①越界检查:段号等于或大于段表长度,将发出地址越界中断信号,确保每个进程只能在自己的地址空间内运行

      ②存取控制检查:只读,只执行,读/写 

      ③环保护机构

      低编号具有高优先权。

      一个程序可以访问驻留在相同环或较低特权环中的数据;

      一个程序可以调用驻留在相同环或较高特权环中的服务。

操作系统王道考研 p41 基于分段存储管理方式

基于分段存储管理方式

知识总览

分段

按照程序自身的逻辑划分段,每段从0开始编址。
分配:以段为单位进行分配,每个段在内存中占据连续空间,但各段之间不能相邻。

段号位数决定了每个进程最多可以分为几个段,段内地址位数决定了每个段的最大长度是多少。
举个例子,最大的段号是1023,说明最后一个段是1023——那么在它前面还有0-1022这1023个,所以一共有1024个段,也就是说,最大段号为1023说明共有1024个段,也就是进程最多被分为1024个段。
段内地址同理。

段表

通过段表可以找到某个逻辑段的存放位置。
每个段表项包括:段长,基址。各个段表项长度相同。
段号可以隐含,因为段表项长度相同,而且是按顺序存放的。

地址变换

一张没啥用的图:

逻辑地址转换为物理地址的流程:

分段、分页管理的对比

或许可以理解为(我猜的):
页是信息的物理单位——因为实际上计算机内部就是这样存放信息的。
段是信息的逻辑单位——因为这样用户能更好理解信息并分配、运用信息,所以把它整成段。

分页——地址空间一维。
分段——地址空间二维。


分段更容易实现信息的共享和保护。
不能被修改的代码可以被共享。只需让各进程的段表项指向同一个段就相当于实现了共享。


关于分页不容易共享:页面不是按逻辑模块划分的,就很难共享。

更完整的对比:

总结

以上是关于存储器管理 4.9 请求分段存储管理方式的主要内容,如果未能解决你的问题,请参考以下文章

:内存管理 -- 非连续分配管理方式:基本分段存储管理方式段页式管理方式

C语言怎么实现模拟请求段式存储管理-NRU?

基本分段存储管理方式以及段页式管理方式

基本分段存储管理方式以及段页式管理方式

操作系统——内存管理

分页存储管理和分段存储管理