operating-system - 分页虚拟内存
问题描述
我目前正在研究考试题,但一直坚持这一题,希望有人能帮助我理解。
问题:假设我们有一个页面大小为 4Ki 字节的分页虚拟内存。假设每个进程有四个段(例如:代码、数据、堆栈、额外),并且这些段可以是任意但给定的大小。操作系统内部碎片会松动多少?
答案是:每个段平均会产生 2Ki 字节的碎片。这平均意味着每个进程 8 Ki 字节。例如,如果我们有 100 个进程,则总共丢失 800 Ki 字节。
我的问题:
- 答案如何获得每个段的 2Ki 字节碎片,我们怎么可能计算大小,我在这里遗漏了什么吗?
- 如果我们每个进程有 8Ki 字节,那甚至不适合 4Ki 字节页面,这实际上不是外部碎片吗?
解决方案
这是旨在使事情变得混乱的学术BS。
他们说概率明智,可执行文件中各部分的最后一页平均只使用页面大小的 1/2。你不能数那个大小,他们只是在做简单的组合。这假定了链接器的行为。
推荐阅读
- python - Python 在实现 eval + 高阶函数/装饰器时遇到问题
- javascript - 将 JSON 响应返回给 ajax 调用后,laravel 未读取代码(插入验证数据)
- rust - PartialEq 和 PartialOrd 实现不返回正确的输出
- angular - 如何在角度 11 中绑定到数组
- sql - 在 Oracle DBMS 中使用多个嵌套查询
- c# - ASP.NET 身份关系
- android - 如何在 Drawer 中使用 StreamBuilder?
- python - 我可以创建一个矩形表面并在其上绘制一个文本并在 pygame 中将这些对象拼凑在一起吗
- c# - Xamarin 中的随机图像
- function - 如何通过点击原生反应中的 touchableOpacity 来开始倒计时?