pet*_*ter 1 operating-system context-switch virtual-memory tlb page-tables
这可能取决于操作系统,但一般来说,据我所知,当发生页面错误(所需的页面不在主内存中)时,操作系统将指示CPU从磁盘读取页面,我想知道操作系统是否分派到另一个处理磁盘 I/O 时?如果确实如此,那么上下文切换时将完全刷新 TLB,对吗?
或多或少,但页面错误并不总是意味着该页面位于磁盘上(它也可能根本不存在,是惰性分配页面,是写入的写时复制页面,存在但被标记为不可读/不可写等)。但如果是这样的话,它可能至少会调度另一个线程,因为磁盘 IO 大约需要永远的时间。
必要的切换量取决于它切换到的内容,在同一上下文的线程之间切换并不意味着 TLB 刷新。如果需要 TLB 刷新,则由于全局页面的原因,它可能不是完整的刷新(通常,您不会刷新内核页面的 TLB 条目)。还有 PCID 可以避免完全刷新(刷新可以限制为指定的进程上下文 ID),但这是最近才出现的,并且使用起来很棘手,因为只有 4096 个不同的 ID。
| 归档时间: |
|
| 查看次数: |
7027 次 |
| 最近记录: |