首页 > 解决方案 > 分页虚拟内存

问题描述

我目前正在研究考试题,但一直坚持这一题,希望有人能帮助我理解。

问题:假设我们有一个页面大小为 4Ki 字节的分页虚拟内存。假设每个进程有四个段(例如:代码、数据、堆栈、额外),并且这些段可以是任意但给定的大小。操作系统内部碎片会松动多少?

答案是:每个段平均会产生 2Ki 字节的碎片。这平均意味着每个进程 8 Ki 字节。例如,如果我们有 100 个进程,则总共丢失 800 Ki 字节。

我的问题

  1. 答案如何获得每个段的 2Ki 字节碎片,我们怎么可能计算大小,我在这里遗漏了什么吗?
  2. 如果我们每个进程有 8Ki 字节,那甚至不适合 4Ki 字节页面,这实际上不是外部碎片吗?

标签: operating-systempagingvirtual-memory

解决方案


这是旨在使事情变得混乱的学术BS。

他们说概率明智,可执行文件中各部分的最后一页平均只使用页面大小的 1/2。你不能数那个大小,他们只是在做简单的组合。这假定了链接器的行为。


推荐阅读