我一直在研究模拟页面替换算法的内核模块。
它由许多页面替换算法组成:FIFO、LRU、Clock、LFU,它们同时运行,每个算法都有自己的主存视图,每个算法都有自己的页表。只有一种算法有效运行,而其他算法继续在它们的内存视图上运行,影响它们的页表。在某个时间间隔之后,调用一个切换器来比较该时间间隔内算法的缺页计数,并将缺页计数最低的那个指定为当前算法。这个想法是尝试动态切换到性能更好的算法。
我已经启动并运行了模块。它从以前运行的程序中读取页面访问数据,这些程序由成对的形式(虚拟地址,pid)组成。
我的问题是:如果我要尝试在 Linux 内核中实现这个方案,从哪里开始比较好?我一直在阅读梅尔·戈尔曼的书,但只阅读了前几章。您能否建议一些其他可能对这项特定工作有所帮助的资源?
编辑:对不起,这是一个非常广泛的问题。您能否指出我需要研究的内存管理器的特定部分?