虚拟内存的分页或分段哪个更好?

时间:2011-06-02 14:50:50

标签: operating-system paging virtual-memory memory-segmentation

大多数操作系统使用分页进行虚拟内存。为什么是这样?为什么不使用细分?是因为硬件问题吗?在某些情况下,一个比另一个好吗?基本上,如果你必须选择一个而不是另一个,你想要使用哪一个?为什么?

我们假设它是一个x86用于参数的缘故。

3 个答案:

答案 0 :(得分:3)

取自:galvin的操作系统概念

其中一个问题..

分段允许进程的物理地址空间为非 连续的。分页是另一种提供此功能的内存管理方案 优点。但是,分页避免了外部碎片和压缩的需要,而分段则没有。

Segmentaion问题: 问题出现的原因是,当代码碎片时 或者需要换出驻留在主存储器中的数据,必须找到空间 在后盾商店。后备存储具有相同的碎片问题 但访问速度要慢得多,所以压缩是不可能的。

分页通过以下方式解决:

实现分页的基本方法包括将物理内存分解为称为帧的固定大小的块并将逻辑内存分解为 称为pages的相同大小的块。后备存储区分为固定大小的块,其大小与内存帧或多个帧的簇相同。

由于页面框架 - 后备存储区都被划分为相同的大小,因此它不会导致外部碎片。但可能有内部碎片。 所以必须正确选择pagesize

Operating Systems concepts

答案 1 :(得分:2)

Windows和Linux等操作系统同时使用segmentationpaging的组合。首先将进程的虚拟内存划分为多个段,然后每个段由许多页组成。操作系统首先进入特定段,然后在该段中找到特定页面以访问地址

答案 2 :(得分:2)

请注意,Single-Address-Space Operating Systems有时会使用细分来隔离流程。