【问题标题】:TLB Hit - Checking if the page is within the process's memory spaceTLB Hit - 检查页面是否在进程的内存空间内
【发布时间】:2014-05-30 04:43:14
【问题描述】:
我一直在阅读有关将虚拟地址转换为物理地址的内容。我知道 TLB 是一个硬件缓存,位于 CPU 的内存管理单元中,包含最近访问的页面的映射。
但是,假设有一个 TLB 命中 - 操作系统如何确保该页面可以被进程实际访问(在进程分配的地址空间内)?
我相信这样做的一种方法是检查进程的页表,但这似乎违背了使用 TLB 的全部目的。有什么见解吗?
【问题讨论】:
标签:
memory-management
operating-system
tlb
【解决方案1】:
这取决于操作系统使用的内存管理策略。例如,在操作系统使用倒排页表的情况下,页表中的每个条目都包含拥有该页的进程 (PID) 的 ID。
对于“正常”分页,每个分页条目可能包含用于内存保护和共享的额外位。
【解决方案2】:
在基本级别上,TLB 仅包含内存中的页面,并且每当从内存中删除页面时,操作系统都会清除 TLB。