开启成长之旅!这是我参加「日新计划 12 月更文挑战」的第21天,点击查看活动概况
前面咱们已经学过根本分段存储办理方式,今日咱们学习恳求分段存储办理方式,与前者相比又有些不同,恳求分段存储办理方式是在根本分段基础上,添加了部分段装入、恳求调段、分段置换功用。
一、恳求分段存储办理中的硬件支持
1 段表机制
恳求分段体系中的段表是为了实现缺段中止,恳求调段,分段置换功用,对根本分段中的段表内容进行扩充,添加某些表项而设计的。
(1)存取方式:用于标识分段的存取特点,如执行、只读、读/写等;
(2)拜访位(A):用于记载分段被拜访的状况,如多久未拜访、拜访次数等;
(3)修正位(M):用于符号分段是否被修正过;
(4)存在位(P):用于指示本段是否已经调入内存;
5)补充位:这是恳求分段存储办理方式中特有的字段,用于表明分段在运转进程中,是否做过动态添加;
(6)外存始址:用于记载分段在外存中的起始地址;
2 缺段中止机构
当进程要拜访的段不在内存时,发生缺段中止,由缺段中止处理程序将所需段调入内存。缺段中止比缺页中止少,但因为段长的不一致,使得将段调入内存的进程要复杂一些。
查看内存中是否有满足的空闲空间
1、有:则装入该段,修正有关数据结构,中止回来
2、无:查看内存中空闲区的总和是否满足要求,
是:紧凑,转1;
否:淘汰一些段,转1;
3 地址改换机构
在由逻辑地址到物理地址的转化中,仍是运用段表。还可考虑段的维护和缺段。
越界中止处理:
进程在执行进程中,有时需要扩大分段,如数据段。
因为要拜访的地址超出原有段长,所以发生越界中止。
操作体系处理中止时,首先判别该段的“扩充位”,如可扩充,则添加段的长度;否则按出错处理。
二、分段同享和维护
1 同享段表
在体系中设置一张段表,各同享段都在段表中占有一表项,表项中可有:段号、段长、内存始址、存在位等信息。并记载同享此段的进程的状况。
1)同享进程记数count:记载有多少个进程同享该段。
2)存取操控字段:不同进程对同一段有不同的权限。
3)段号:不同进程可用不同段号来标识该同享段,是由段的动态链接功用作保证。
2 同享段的分配、收回
1)分配:当第一个进程申请该段时,将其调入内存,填写进程段表、体系的同享段表,设count=1;再有进程申请该段时,只需在调用进程中填写进程段表(该同享段的物理地址)、同享段表(调用进程名、存取操控等),count+1等。
2)收回:某进程释放段后,执行count-1。若成果为0,则收回物理块,撤销同享段表中该段的表项,撤销该进程段表中同享段对应的表项;不为0,则不用收回物理块。
3 分段维护(Segment Protection)
1)越界查看(段表维护):段表长度和段号比较;段长和段内地址比较。
2)存取操控查看(段表中的存取操控字段)。
3)环维护机构:低编号的环具有高优先权。
一个程序能够拜访驻留在相同环或较低特权环中的数据。
一个程序能够调用驻留在相同环或较高特权环中的服务。
学到这儿咱们就把关于恳求分段存储办理方式的相关内容学习完了。