分页和分段的区别


分页

分页是一种内存管理技术,其中进程地址空间被划分为大小相同的块,称为页(大小为2的幂,介于512字节和8192字节之间)。进程的大小以页数来衡量。类似地,主内存被划分为小的固定大小的块(物理)内存,称为帧,并且帧的大小与页的大小保持一致,以优化主内存的使用并避免外部碎片。

类似地,主内存被划分为小的固定大小的块(物理)内存,称为帧,并且帧的大小与页的大小保持一致,以优化主内存的使用并避免外部碎片。

分段

分段是一种内存管理技术,其中每个作业被划分为多个不同大小的段,每个段对应一个包含执行相关功能的代码块的模块。每个段实际上是程序的不同逻辑地址空间。当要执行一个进程时,其对应的段被加载到非连续的内存中,尽管每个段都加载到一个连续的可用内存块中。分段内存管理的工作方式与分页非常相似,但是这里的段是可变长度的,而分页中的页是固定大小的。

程序段包含程序的主函数、实用函数、数据结构等等。操作系统为每个进程维护一个段映射表和一个空闲内存块列表,其中包含段号、大小和主内存中的相应内存位置。对于每个段,该表存储段的起始地址和段的长度。对内存位置的引用包括一个标识段的值和一个偏移量。

以下是分页和分段之间的一些重要区别。

序号关键点分页分段
1内存大小在分页中,进程地址空间被划分为固定大小的块,称为页。在分段中,进程地址空间被划分为大小不同的块,称为段。
2职责操作系统将内存划分为页。编译器负责计算段的大小、虚拟地址和实际地址。
3大小页的大小由可用内存确定。段的大小由用户确定。
4速度就内存访问而言,分页技术更快。分段比分页慢。
5碎片分页可能会导致内部碎片,因为某些页可能未得到充分利用。分段可能会导致外部碎片,因为某些内存块根本没有被使用。
6逻辑地址在分页中,逻辑地址被划分为页号和页偏移量。在分段中,逻辑地址被划分为段号和段偏移量。
7在分页中,逻辑地址被划分为页号和页偏移量。在分段中,逻辑地址被划分为段号和段偏移量。
8数据存储页表存储页数据。段表存储段数据。

更新于:2023年9月13日

31K+ 浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告