计算机系统中分页和分段的区别
目录
计算机系统中分页和分段的区别
1.目的
页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页是出于系统管理的需要而不是用户需要。
段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了更好地满足用户的需要。
2.长度
页的大小固定而且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面。
段的长度不固定,决定于用户所编写的程序,通常由编译程序在对程序进行编译时,根据信息的性质来划分。
3.地址空间
页的地址空间是一维的,即单一的线形地址空间,程序员只要利用一个记忆符就可以表示一个地址。
作业地址空间是二维的,程序员在标识一个地址时,既需要给出段名,又需给出段内地址。
4.碎片
分页有内部碎片无外部碎片
分段有外部碎片无内部碎片
5.绝对地址
处理器使用页号和偏移量计算绝对地址
处理器使用段号和偏移量计算绝对地址
6.管理方式
对于分页,操作系统必须为每个进程维护一个页表,以说明每个页对应的的页框。当进程运行时,它的所有页都必须在内存中,除非使用覆盖技术或虚拟技术,另外操作系统需要维护一个空闲页框列表。
对于分段,操作系统必须为每个进程维护一个段表,以说明每个段的加载地址和长度。当进程运行时,它的所有短都必须在内存中,除非使用覆盖技术或虚拟技术,另外操作系统需要维护一个内存中的空闲的空洞列表。
特别的,当使用虚拟技术是,把一页或一段写入内存时可能需要把一页或几个段写入磁盘。
7.共享和动态链接
分页不容易实现,分段容易实现