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

Mat*_*att 6 paging operating-system virtual-memory memory-segmentation

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

出于参数考虑,我们假设它是x86。

sou*_*yar 5

摘自:galvin 的操作系统概念

问题之一..

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

分段问题:出现该问题的原因是,当需要换出主存中的代码片段或数据时,必须在后备存储上找到空间。后备存储也有同样的碎片问题,但访问速度要慢得多,因此不可能进行压缩。

分页通过以下方式解决:

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

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

操作系统概念


Bjo*_*rnD 2

请注意,单地址空间操作系统有时使用分段来隔离进程。