memory-management - 了解页面大小
问题描述
问题指出,“物理内存由 64 个字节组成,分为 16 个字节的页面。同样,虚拟地址空间也是 64 个字节。”
它还指出,“每个页表都将被放置在模拟内存中自己的页中[我们正在使用一个字符数组作为我们的物理内存]数组。”
最后,一次最多只能运行 4 个进程,因此需要四个页表。
我不明白的是,如果物理内存只有 64 个字节并且每个页表应该占用 16 个字节,那么是否没有剩余空间来存储有关进程或来自进程的任何信息?
解决方案
你正在处理一个完全荒谬的问题。不幸的是,操作系统教科书和教授似乎一心想将计算机科学的简单化为混乱。
如果虚拟地址空间是 64 字节,而页面是 16 字节,那么地址空间(和物理地址空间)中只有 4 个页面。因此,每个页表条目中只需要 2 位(在这种不切实际的情况下)。页表最多一个字节。
这种问题会导致很多误解。例如,页表不需要覆盖虚拟地址空间的整个范围。
推荐阅读
- bash - 为什么Input中的文件不会移动到带有前缀的目录Output?
- r - INTEGER() 只能应用于“整数”,而不是 R 中的“双精度”?
- javascript - 单击元素后,HtmlUnit 无法更改页面
- python - 在 Python 中处理可选值的最佳方法是什么?
- java - System.out.println 只打印一个空行
- grafana - 如何显示每个时间间隔发出的命令的 Grafana 仪表板
- javascript - 为什么我收到 ArgumentError(错误数量的参数(给定 0,预期为 1)进行销毁操作?Rails 5.2
- c# - MahApps DateTimePicker 自定义日期时间格式
- android - 为什么在不指定 IntentFilter 的情况下隐式电子邮件 Intent 可以工作?
- go - Go GCP Cloud PubSub 不批量发布消息