3

在处理器中,如果没有足够的空间在内存中保存所有正在运行的进程的页面,那么当操作系统替换页面时缓存会发生什么?是否需要在每次页面替换时刷新缓存?

提前感谢您的回复。

4

2 回答 2

0

我不是 100% 确定细节会发生什么,但是使用分页的缓存和虚拟内存是相似的:两者都分为“页面”。

与在缺页时只需要替换一页的方式相同,当缓存发生未命中时,只需要替换缓存中的一行。缓存有几个“页面”(行),但只会替换有问题的页面。

还有其他一些我不知道是否参与此类替换的事情:缓存大小、缓存一致性 - 直写/回写等等。我希望其他人能给你一个更详细的答案。

于 2013-09-22T03:35:01.760 回答
0

当页面被换入时,内容会从磁盘读取到内存中。通常这是使用 DMA 完成的。所以真正的问题是,“缓存如何与 DMA 保持一致?”。您可以在每次访问时让 DMA 与缓存控制器对话,或者让操作系统手动管理缓存。请参阅http://en.wikipedia.org/wiki/Direct_memory_access#Cache_coherency

于 2014-01-30T03:48:43.383 回答