在处理器中,如果没有足够的空间将所有正在运行的进程的页面保存在内存中,当操作系统替换页面时缓存会发生什么?是否需要在每次更换页面时刷新缓存?
提前感谢您的回复。
答案 0 :(得分:0)
我不是100%确定细节会发生什么,而是使用分页来缓存和虚拟内存 类似:两者都分为“页面”。
在页面错误中只需要替换一个页面的方式相同,只有一行 当缓存中出现未命中时,需要替换缓存。缓存有 几个“页面”(行),但只有有问题的页面将被替换。
如果参与此类替换还有其他一些我不知道的事情:缓存大小, 缓存一致性 - 直写/后退等。我希望别人可以给你一个更详细的答案。
答案 1 :(得分:0)
当交换页面时,内容将从磁盘读取并进入内存。通常,这是使用DMA完成的。所以真正的问题是,“缓存如何与DMA保持一致?”。您可以在每次访问时与缓存控制器进行DMA通信,也可以让操作系统手动管理缓存。请参阅http://en.wikipedia.org/wiki/Direct_memory_access#Cache_coherency。