简单分页/分段

简单分页

前述固定分区和可变分区存储技术存在着一定的缺点;
分页技术思想的由来;
分页存储管理技术中的基本作法;
 等分主存;(页架、页框、帧)
 用户逻辑地址空间的分页;(页)
 逻辑地址的表示。(数对(p, d))
主存分配原则;
 分页情况下,系统以页架为单位把主存分给进程,分给一个进程的各页架不一定是相邻和连续的;
 页表—指出每个进程的各页放在主存的哪些页架中;
 分页系统中的地址结构—分为两部分;
 页面尺寸应是2的幂—可以省去除法运算,拆分地址场中的数即可。
地址转换过程:
首先将逻辑地址左边表示页号部分的页号抽取出来;
以页号作为索引查找该进程页表,找出该页存放的主存页架号;
用此页架号(二进制形式)取代逻辑地址的左边部分,并与右边的页内地址合并成相应的物理地址去访问主存。
简单分页方法的优点:
它基本没有页内碎片,只是在每个进程的最后一页中,会有页内碎片;也不会有小到不可再用的页外碎片,主存的利用率高;
不管采用哪种数据结构(空闲页架表、位图、空闲页架链表等),分配和释放存储都很快;
管理简单(类似于固定分区的情况)。

简单分段

为什么需要按段分配主存?
 事先将用户逻辑地址空间连接成一维线性地址空间,既费时又不便于作业的执行,尤其不便于共享;
 因此,人们希望按照程序模块来划分段,并按这些段来分配主存;
 段,就是一组逻辑信息的集合,如子程序、数组和数据区等。
分段存储管理的基本概念
进程的逻辑地址空间(二维的,用段名和段内地址两个成分来描述)
程序的地址结构
主存分配
段表(每个进程一个段表,用来指出进程的某段放在主存中的何处,以及该段的长度等信息)
段的地址转换(把逻辑地址左边段号部分提取出来,作为索引,查找进程的段表,将段内地址与段的长度比较,如果大于段的长度,则引起非法访问中断,即越界访问,如果访问合法,就将段的起始地址与段内地址相加,就得到所要访问的物理地址。)
简单分段的优点是没有段内碎片,只有外部碎片;
简单分段也是基于多重分区技术的进一步发展而来的;
简单分段对用户是可见的,而且分段需要用户提供支持,用户也需要知道系统的最大段长度限制;
当进程被交换出主存时,它的页表或段表也需随进程一起撤出主存。

分段和分页的比较

分段是信息的逻辑单位,由源程序的逻辑结构所决定,用户可见,段长可根据用户需要来规定,段起始地址可以从任何主存地址开始;在分段方式中,源程序(段号,段内位移)经连结装配后仍保持二维结构。

分页是信息的物理单位,与源程序的逻辑结构无关,用户不可见,页长由系统确定,页面只能以页大小的整倍数地址开始。在分页方式中,源程序(页号,页内位移)经连结装配后变成了一维结构。