大多数OSes对虚拟内存使用分页。为什么会这样呢?为什么不使用分段呢?是不是因为硬件问题?在某些情况下,一个比另一个更好吗?基本上,如果你必须选择一个而不是另一个,你会选择哪一个,为什么?
为了便于讨论,我们假设它是一个x86。
发布于 2011-06-03 17:29:06
请注意,Single-Address-Space Operating Systems有时使用分段来隔离进程。
发布于 2011-06-02 17:33:06
windows和Linux等操作系统同时使用segmentation
和paging
。进程的虚拟内存首先被划分为多个段,然后每个段由许多页组成。操作系统首先转到特定的段,然后在该段中查找特定页以访问地址
发布于 2016-03-30 07:15:48
摘自: galvin的操作系统概念
其中一个问题..
分段允许进程的物理地址空间不连续。分页是提供这种优势的另一种内存管理方案。然而,分页避免了外部碎片和紧凑的需要,而分段则不是。
分段问题:出现这个问题是因为,当驻留在主内存中的代码片段或数据需要换出时,必须在后备存储器上找到空间。后备存储具有相同的碎片问题,但访问速度要慢得多,因此压缩是不可能的。
分页通过以下方式解决此问题:
实现分页的基本方法包括将物理存储器分成称为帧的固定大小的块,并将逻辑存储器分成相同大小的块,称为pages.The后备存储器被分成与存储器帧或多个帧的簇相同大小的固定大小的块。
因为页面-框架-后备存储器都被划分成相同的大小,所以它不会导致外部碎片。但可能具有内部碎片。因此必须正确选择页面大小
https://stackoverflow.com/questions/6216175
复制