分页与分段有什么区别?

分页和分段都是内存管理的策略,但它们的目的和方式是不同的:

  1. 分页:分页是一种内存管理技术,它将虚拟内存空间和物理内存空间分割成固定大小的单元,我们称这个单元为”页”。分页是为了解决内存碎片的问题,因为分页可以让每一块内存空间都被有效利用。分页是透明的,也就是说这个过程对用户程序是不可见的。用户程序看到的仍然是一个连续的内存空间。

  2. 分段:对于分段,其主要目标是将程序自身的逻辑结构反映到物理存储器中去。在逻辑上,程序员根据代码的逻辑关系将程序分成大小不等的段,比如说代码段、数据段等。然后根据程序的需要,将这些段加载到内存中。 分段是可见的,也就是说程序员在编写程序的时候可以看到分段的效果。

总结一下,它们的主要区别在于:

  1. 目的: 分段是为了反映程序的逻辑结构,分页是为了更有效地使用内存,并减少内存碎片。

  2. 大小:页的大小是固定的,机器系统决定了页的大小,且各个系统的页面大小不一样。段的大小是可变的,由程序的逻辑结构决定。

  3. 可见性:用户程序可以看到分段的结果,但是看不到分页的结果。

在实际的系统中,分页和分段往往并用,这种技术被称为段页式管理

发表评论

后才能评论