操作系统在访问快表时的问题

今天突然想到一个问题,就是操作系统在访问快表时,是以虚拟地址还是以物理地址访问快表的?

这个问题答案应该是以虚拟地址访问的,因为如果还是以物理地址来访问快表,那么还需要进行虚拟地址到物理地址的转换,要么用到MMU, 要么其他操作,都会影响速度。

 

那么就假定以虚拟地址访问快表(纯属猜想,因为没有看实际源码实现)

那么在进程切换时,块表就会失效,因为不同进程的虚拟地址空间是一样的,那么怎么找到正确的内容呢。

 

猜想的可能解决方案:

1. 在进程切换时,直接将缓存清空 或 置为无效。

2.加上进程的pid号来区分不同进程的虚拟地址。

 

记录一下,待日后再验证。如果有大佬知道,劳烦帮忙解答一下,在此谢过!!!

posted @ 2022-11-21 23:03  gang.w  阅读(37)  评论(0编辑  收藏  举报