第四章 存储器管理 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.分段保护

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

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

      ③环保护机构

      低编号具有高优先权。

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

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

posted @   LEE_Minhyung  阅读(360)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示