operating-system - 页表寄存器和缓存
问题描述
我刚刚了解了内存管理,目前正在尝试弄清楚页表是什么。根据我的理解,页表是一种类似于哈希表的数据结构,用于映射和连接操作系统中的逻辑和物理内存地址。
我们将需要一个寄存器来确定进程页表的位置。但是我们需要多少个寄存器来确定多级页表的位置,例如两级和三级页表?你如何确定它?
此外,处理器中的缓存(L1-L3)将如何影响对页表的内存引用访问?大多数人会错过或受到打击吗?为什么会这样?
我试图为此找到参考资料,但它把我带到了 TLB,我还没有了解它。可能会说我真的是操作系统的初学者。帮助 :)
解决方案
根据 Nate 的回答,我们在表的顶层只需要一个寄存器,表中的条目是指向下一层的指针,因此在任何级别的页表中都不需要多个寄存器。
推荐阅读
- amazon-web-services - EKS/Kubernetes 或 docker 中的容器是否有任何默认 RAM 限制?
- android - 在 Kotlin 多平台移动项目中访问设备和操作系统信息
- java - 并发问题使 vololitile 不起作用
- azure - `docker-compose up` 与 `docker compose up` 与环境变量
- tornado - PandasGUI 错误 — tornado.application — 回调函数 functools.partial 中的异常
- c# - c# 表未显示在 .db3 文件中
- python - 使用用户定义的 url 和文件名构建 python 网络爬虫函数
- moodle - 创建一个直接链接到 SCORM 包的 Moodle 课程
- android - 无法通过 RecyclerView 显示来自 Firebase 数据库的所有消息
- c# - 在 .Net Core 项目中使用 .Net Framework dll (v4.7.2)