简单分页
前述固定分区和可变分区存储技术存在着一定的缺点; 分页技术思想的由来; 分页存储管理技术中的基本作法; 等分主存;(页架、页框、帧) 用户逻辑地址空间的分页;(页) 逻辑地址的表示。(数对(p, d)) 主存分配原则; 分页情况下,系统以页架为单位把主存分给进程,分给一个进程的各页架不一定是相邻和连续的; 页表—指出每个进程的各页放在主存的哪些页架中; 分页系统中的地址结构—分为两部分; 页面尺寸应是2的幂—可以省去除法运算,拆分地址场中的数即可。
地址转换过程: 首先将逻辑地址左边表示页号部分的页号抽取出来; 以页号作为索引查找该进程页表,找出该页存放的主存页架号; 用此页架号(二进制形式)取代逻辑地址的左边部分,并与右边的页内地址合并成相应的物理地址去访问主存。 简单分页方法的优点: 它基本没有页内碎片,只是在每个进程的最后一页中,会有页内碎片;也不会有小到不可再用的页外碎片,主存的利用率高; 不管采用哪种数据结构(空闲页架表、位图、空闲页架链表等),分配和释放存储都很快; 管理简单(类似于固定分区的情况)。
简单分段
为什么需要按段分配主存? 事先将用户逻辑地址空间连接成一维线性地址空间,既费时又不便于作业的执行,尤其不便于共享; 因此,人们希望按照程序模块来划分段,并按这些段来分配主存; 段,就是一组逻辑信息的集合,如子程序、数组和数据区等。 分段存储管理的基本概念 进程的逻辑地址空间(二维的,用段名和段内地址两个成分来描述) 程序的地址结构 主存分配 段表(每个进程一个段表,用来指出进程的某段放在主存中的何处,以及该段的长度等信息) 段的地址转换(把逻辑地址左边段号部分提取出来,作为索引,查找进程的段表,将段内地址与段的长度比较,如果大于段的长度,则引起非法访问中断,即越界访问,如果访问合法,就将段的起始地址与段内地址相加,就得到所要访问的物理地址。)
简单分段的优点是没有段内碎片,只有外部碎片; 简单分段也是基于多重分区技术的进一步发展而来的; 简单分段对用户是可见的,而且分段需要用户提供支持,用户也需要知道系统的最大段长度限制; 当进程被交换出主存时,它的页表或段表也需随进程一起撤出主存。
分段和分页的比较
分段是信息的逻辑单位,由源程序的逻辑结构所决定,用户可见,段长可根据用户需要来规定,段起始地址可以从任何主存地址开始;在分段方式中,源程序(段号,段内位移)经连结装配后仍保持二维结构。 分页是信息的物理单位,与源程序的逻辑结构无关,用户不可见,页长由系统确定,页面只能以页大小的整倍数地址开始。在分页方式中,源程序(页号,页内位移)经连结装配后变成了一维结构。