【发布时间】:2013-09-19 02:35:01
【问题描述】:
在处理器中,如果内存中没有足够的空间来容纳所有正在运行的进程的页面,那么当操作系统替换页面时缓存会发生什么?是否需要在每次页面替换时刷新缓存?
提前感谢您的回复。
【问题讨论】:
标签: caching memory-management operating-system processor
在处理器中,如果内存中没有足够的空间来容纳所有正在运行的进程的页面,那么当操作系统替换页面时缓存会发生什么?是否需要在每次页面替换时刷新缓存?
提前感谢您的回复。
【问题讨论】:
标签: caching memory-management operating-system processor
我不能 100% 确定细节会发生什么,但缓存和虚拟内存使用分页 相似:都分为“页面”。
同样的方式,在缺页时只需要替换一页,只需要一行 当缓存发生未命中时,需要更换缓存。缓存有 几个“页面”(行),但只会替换有问题的页面。
还有其他我不知道是否参与此类替换的事情:缓存大小, 缓存一致性 - 直写/回写等。希望其他人能给你一个更详细的答案。
【讨论】:
当页面被换入时,内容会从磁盘读取到内存中。通常这是使用 DMA 完成的。所以真正的问题是,“缓存如何与 DMA 保持一致?”。您可以在每次访问时让 DMA 与缓存控制器对话,或者让操作系统手动管理缓存。见http://en.wikipedia.org/wiki/Direct_memory_access#Cache_coherency。
【讨论】: