我目前正在学习 A Silberschatz、P Galvin、G Gagne 的操作系统。
我正在研究内存管理策略,以及他们介绍翻译后备缓冲区 (TLB) 的部分。
一些 TLB 在每个 TLB 条目中存储地址空间标识符 (ASID)。ASID 唯一标识每个进程并用于为该进程提供地址空间保护。当 TLB 尝试解析虚拟页号时,它会确保当前运行的进程的 ASID 与与虚拟页关联的 ASID 匹配。如果 ASID 不匹配,则将尝试视为 TLB 未命中。
以上是解释ASID的教科书的引述。
我有点困惑,因为 TLB 未命中意味着逻辑地址无法在 TLB 中匹配,因此必须使用页表检查它以前往物理内存。
话虽如此,ASID 是 TLB 中每个条目的额外位,用于检查正在访问该条目的进程是否属于该进程。
我想知道的是,当使用 ASID 拒绝进程时,它不应该捕获,而不是 TLB 未命中?TLB 未命中会将进程转发到页表,其中进程的逻辑地址将能够映射到主内存中的某个地址。
请帮助我理解错误的地方。
谢谢!