请耐心等待,这些问题可能非常基本。我只是想了解基本面。
缓存逐出算法(如LRU)是否由OS实现?如果是这样,我们如何找出当前使用的算法,并且程序员可以更改它吗?
由于缓存是与处理器一起使用的,因此读写策略是硬编码的,还是操作系统决定的?
是否有单独的数据和指令缓存?或者他们共享相同的缓存?
当前在操作系统中采用什么算法来解决缓存一致性问题?
感谢您耐心回答我的问题。
答案 0 :(得分:1)
通常,缓存策略由硬件决定。通常有单独的数据和指令缓存,以及转换后备缓冲区(TLB)缓存。操作系统无法直接控制缓存,但可以在虚拟内存映射中做出决策以优化缓存使用。
答案 1 :(得分:0)
只有一个答案?井
1。)没有硬件实现。它们应该由供应商记录,如果没有,那么microbenchmarking是一个选项。
2。)硬件
3。)如上所述,L1高速缓存具有用于数据和指令的单独高速缓存。还有用于虚拟内存的TLB。
4。)我参加了上学期的课程,涵盖了这些主题。幻灯片可在线获取:http://www.systems.ethz.ch/education/past-courses/hs09/mmdbms