需求分页和分段的区别
需求分页和分段都是操作系统中使用的内存管理技术。在需求分页中,只有在需要时,才会将页面从辅助存储器加载到主存储器。另一方面,分段遵循一种策略,即将整个内存空间划分为离散的段,并将每个段分配给一个进程。阅读本文,了解更多关于需求分页和分段的信息,以及它们之间如何不同。
什么是需求分页?
顾名思义,需求分页只在 CPU 需要时才将页面交换到主存中。主存中的可用空间是有限的,在任何给定时间,它都必须同时运行多个进程,并且这些进程中的每一个都需要从辅助存储器中提取一些页面(并非全部)。例如,假设您正在使用 MS-Excel,它在辅助存储器中占用 300 MB 的空间,但是它可能不需要所有这些空间在主存中同时存在。因此,主存只提取 CPU 为运行特定进程而需要的那些页面。
需求分页也称为“延迟交换”,因为它会延迟地从辅助存储器交换页面,并且仅在 CPU 需要时才交换。
需求分页的优点
需求分页支持高效的内存利用。它永远不会将 CPU 不需要的那些页面提取到主存中。在纯需求分页中,进程在主存中没有任何页面就开始运行,并且一旦进程开始执行,CPU 就会触发页面错误,从而将所需的页面从辅助存储器中提取出来。
需求分页的缺点
尽管需求分页提高了内存利用率,但内存访问时间通常更长。此外,由于中断和页面表,它会产生更多的开销。
什么是分段?
分段是另一种内存管理技术,就像分页一样,它将可寻址内存划分为不同的段。但是,页面和段之间存在差异。分页将内存划分为固定大小的块,而分段将内存划分为大小可变的段,这些段可以根据需要增长或缩小。使用分段作为内存管理技术的计算机将拥有一个逻辑地址空间,该空间可以被视为多个段。
分段的优点
分段通过将进程划分为模块来支持用户对内存的视图,从而提供更好的可视化。分段中没有内部碎片。段表跟踪所有段,与等效的页面表相比,它占用的空间更少,页面表记录了所有页面。
分段的缺点
分段是一种昂贵的技术,因为它涉及为每个进程维护一个单独的段表,从而产生大量开销。由于段的长度不相等,因此它们不适合交换。分段会导致外部碎片,因为随着进程的加载和移除,可用内存空间被分解成更小的块。
需求分页和分段的区别
下表突出显示了需求分页和分段之间的主要区别 -
关键 | 需求分页 | 分段 |
---|---|---|
定义 | 分页是一种内存管理技术,其中进程地址空间被分成称为“页面”的相同大小的块。 | 分段是一种内存管理技术,其中每个作业被分成几个不同大小的段,每个段对应一个包含执行相关功能的片段的模块。 |
块大小 | 在需求分页的情况下,块大小是固定的。 | 在分段中,进程地址空间被分成不同大小的块,称为“段”。因此,在分段的情况下,块大小不是固定的。 |
块大小依赖性 | 在需求分页中,块的大小取决于系统内存并相应地分配。 | 在分段中,大小不依赖于系统内存,完全取决于用户选择需要什么大小的块。 |
性能 | 在性能方面,需求分页比分段快。 | 与分页相比,分段速度较慢。 |
数据加载 | 在需求分页的情况下,页面在运行时根据用户的需要加载到主存中。 | 在分段的情况下,所有段在编译时加载。 |
数据记录 | 在需求分页中,有一个页面映射表管理内存中页面的记录。 | 在分段的情况下,有一个段映射表管理内存中每个段的地址。 |
结论
您应该注意的最重要的一点是,分页比分段速度更快。在分页中,页面的大小是固定的,由硬件决定。相反,分段中段的大小可以根据用户的需求而变化。