我正在尝试破解一个旧的unix内核。我只想用软件实现MMU和TLB。有人能告诉我在构建过程中最好的数据结构和算法是什么吗?我看到很多人使用splay树,因为它很容易实现LRU。有没有更好的数据结构?在software.Assume中,将虚拟地址转换为物理地址的最有效方法是什么?它的x86体系结构和任何基本的页表转换一样。
发布于 2010-07-20 11:04:40
你提到了效率。这就是你的工程目标吗?如果你不局限于任何特定的目标,就试着让它发挥作用。如果可以的话,我会做一个单级页面表,无论是直接的还是完全关联的。不过,听起来你已经忘了这件事了。
最高的效率将取决于大小和速度的权衡以及您期望的局部性。你有没有分析过一些关键的应用程序,或者这只是为了尝试一些实现而胡闹?在一些较新的体系结构上使用倒置的页表。我认为这表明有人花了很多时间在这上面工作,认为这是一种很好的方式。
https://stackoverflow.com/questions/3286667
复制相似问题