段式与页式存储管理的比较如下表所示。
段式
页式
分段由用户设计划分,每段对应一个相应的的程序模块,有完整的逻辑意义。
分页用户看不见,由操作系统为内存管理划分。
段面是信息的逻辑单位
页面是信息的物理单位
便于段的共享,执行时按需动态链接装入。
页一般不能共享
段长不等,可动态增长,有利于新数据增长。
页面大小相同,位置不能动态增长。
二维地址空间:段名、段中地址;段号、段内单元号
一维地址空间
管理形式上象页式,但概念不同
往往需要多次缺页中断才能把所需信息完整地调入内存
实现页(段)的共享是指某些作业的逻辑页号(段号)对应同一物理页号(内存中该段的起始地址)。页(段)的保护往往需要对共享的页面(段)加上某种访问权限的限制,如不能修改等;或设置地址越界检查,对于页内地址(段内地址)大于页长(段长)的存取,产生保护中断。
分页与分段的主要区别在于:
(1)页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了更好的满足用户的需要。
(2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面,而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分的。
(3)分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间是二维的,程序员在标识一个地址时,既需要给出段名,又需给出段内地址。