Memory management 关于TLB条目和页表条目

Memory management 关于TLB条目和页表条目,memory-management,operating-system,cpu-architecture,virtual-memory,tlb,Memory Management,Operating System,Cpu Architecture,Virtual Memory,Tlb,从关于TLB的网站:(): 对于我强调的以下部分: 1:TLB条目的格式是否与PTE(页面表格条目)相同?而且还不清楚 页面中的“页面”可以标记为表示TLB条目或PTE 2:对于中的“页面”,浏览所有页面,它们是TLB条目还是PTE 3:为什么移出而不是“移入” 4:顺序是(1)设置放入TLB的两位(2),还是相反 TLB通常会产生另外两个重要的错误,这有助于管理已访问和脏页。每个页面通常包含一个以单个位形式表示的属性,该属性用于标记页面是否已被访问或是否脏 已访问的页面就是任何已访问的页面1当

从关于TLB的网站:():

对于我强调的以下部分:

1:TLB条目的格式是否与PTE(页面表格条目)相同?而且还不清楚
页面中的“页面”可以标记为表示TLB条目或PTE

2:对于中的“页面”,浏览所有页面,它们是TLB条目还是PTE

3:为什么移出而不是“移入”

4:顺序是(1)设置放入TLB的两位(2),还是相反

TLB通常会产生另外两个重要的错误,这有助于管理已访问和脏页。每个页面通常包含一个以单个位形式表示的属性,该属性用于标记页面是否已被访问或是否脏

已访问的页面就是任何已访问的页面1当页面翻译最初加载到TLB中时,页面可以标记为已被访问(否则为什么要加载?[19])

2操作系统可以定期浏览所有页面并清除访问的位,以了解当前正在使用的页面。。当系统内存已满,操作系统需要选择要交换到磁盘的页面时,显然那些访问位未重置的页面是最好的删除对象,因为它们的使用时间最长

脏页是指有数据写入的页,因此与磁盘上已有的任何数据都不匹配。例如,如果页面从交换加载,然后由进程写入,3在将其移出交换之前,需要更新其磁盘副本。干净的页面没有任何更改,因此我们不需要将页面复制回磁盘的开销

两者的相似之处在于它们帮助操作系统管理页面。一般的概念是一个页面有两个额外的位;脏位和访问的位4将页面放入TLB时,这些位被设置为指示CPU应引发故障。

当进程尝试引用内存时,硬件执行通常的转换过程。但是,它还额外检查是否未设置访问标志。如果是这样,它会向操作系统引发故障,操作系统应设置位并允许进程继续。同样,如果硬件检测到它正在写入未设置脏位的页面,它将引发操作系统将页面标记为脏的故障


我建议忽略该链接作为来源。这非常令人困惑。我没有看到任何关于具体实现的提及,但它清楚地描述了一个实现

在任何合理设计的处理器中,TLB对程序员(甚至是系统程序员)都是完全透明的。这完全是一件硬件

1:TLB条目的格式是否与PTE(页表条目)相同

程序员永远不会看到TLB条目。它们可以具有与PTE相同的格式。他们可能不会

2:对于所有页面中的“页面”,它们是TLB条目还是PTE

程序员无法访问TLB条目。他们必须向PTE咨询

3:为什么搬出去不搬进去

可能吧,但在你的链接中似乎有很多困惑

4:顺序是(1)设置放入TLB的两位(2),还是相反


这是在描述一些特定的、未命名的实现。大多数处理器都有脏位,但并非所有处理器都有访问位。

我建议忽略该链接作为源。这非常令人困惑。我没有看到任何关于具体实现的提及,但它清楚地描述了一个实现

在任何合理设计的处理器中,TLB对程序员(甚至是系统程序员)都是完全透明的。这完全是一件硬件

1:TLB条目的格式是否与PTE(页表条目)相同

程序员永远不会看到TLB条目。它们可以具有与PTE相同的格式。他们可能不会

2:对于所有页面中的“页面”,它们是TLB条目还是PTE

程序员无法访问TLB条目。他们必须向PTE咨询

3:为什么搬出去不搬进去

可能吧,但在你的链接中似乎有很多困惑

4:顺序是(1)设置放入TLB的两位(2),还是相反


这是在描述一些特定的、未命名的实现。大多数处理器都有脏位,但并非所有处理器都有可访问位。

是的,“在它可以移出交换之前”的措辞是错误的。这是指复制脏页以再次交换空间。我不确定TLB是否允许写回对PTE的访问位和脏位的缓存修改,或者这些对内存的修改是否必须(逻辑上)立即变为可见,比如存储指令的结果。我马上就猜。@PeterCordes:这是否意味着如果另一个进程想使用该页(因此调出),必须先写回脏页?不,这没有意义。这种解释要求“it”是你想交换的其他页面的代词。但这没有任何意义,因为这一主题在该段的任何地方都没有被介绍,所以“it”显然仍然是有问题的肮脏页面。具有脏位的全部意义在于表明磁盘上的副本与内存中的副本不同步(对于内存映射文件或以交换作为其备份存储的页面)。“移出交换”听起来像是释放磁盘页,而不是释放RAM页,所以它是向后的。是的,“在移出交换之前”的措辞是错误的。这是指复制脏页以再次交换空间。我不确定TLB是否允许写回对PTE的访问位和脏位的缓存修改,或者