1
|
Zachariah the Magnificent · 技术社区 · 7 年前 |
![]() |
1
1
有几个场景,让我们选择一个。在此场景中,使用物理地址访问缓存。 所有并行执行的多个进程(P1、P2…Pn)都在虚拟地址上运行。我们可以让TLB(保存虚拟到物理转换)在上下文切换上刷新其条目。所有进程都可以具有相同数量的虚拟页。但在给定的时间内,只有少数人通过一个过程进行裁判。因此,您可以将这些最常用的页面保存在物理内存中,其余页面保存在硬盘中。这适用于当前处于活动状态的所有进程。 当进程P1当前正在运行时,当需要从内存中提取数据时,该进程类似于仅存在一个进程时的处理方式。这里需要注意的一点是,当进程P1发生页面错误时,如果要在物理内存中替换的页面属于另一个进程,则需要更新该进程的页面表以反映这一点。 如果检查物理页面的上下文,它可以包含来自多个进程的页面。这样每个进程的页面表就可以知道虚拟页面位于哪个物理位置。 |
![]() |
2
0
大多数CPU设计的缓存基于 身体的 地址,因此即使TLB失效需要页面遍历才能为虚拟地址找到正确的物理页面,它们在上下文切换后仍然可能很热。 如果进程迁移到另一个CPU核心,则专用L1和L2将是冷的,但共享L3仍将是热的。 |
![]() |
tincho87 · 避免Javascript/Css缓存 7 年前 |
![]() |
Zac · 如何强制客户端重新下载我的网站? 7 年前 |
![]() |
Kumar · bitbake清理使用只读NFS SSTATE缓存失败 7 年前 |
![]() |
Chris Williams · 休眠/JPA缓存查找值 7 年前 |
![]() |
Nymeria · 仅绑定到当前事务的Spring缓存 7 年前 |