📜  OS转换预留缓冲区

📅  最后修改于: 2020-12-15 03:44:09             🧑  作者: Mango

翻译预留缓冲区

分页的缺点

  • Page表的大小可能非常大,因此浪费了主内存。
  • CPU将花费更多时间从主存储器读取单个字。

如何减小页表大小

  • 可以通过增加页面大小来减小页面表的大小,但这将导致内部碎片,并且还会浪费页面。
  • 其他方法是使用多级分页,但这会增加有效的访问时间,因此这不是一种实用的方法。

如何减少有效访问时间

  • CPU可以使用内部存储有页面表的寄存器,以便访问页面表的访问时间可以大大减少,但是该寄存器并不便宜,并且与页面表大小相比非常小,因此这也不是实用的方法。
  • 为了克服分页中的许多缺点,我们必须寻找一种比寄存器便宜并且比主存储器更快的存储器,以便可以减少CPU一次又一次访问页表所花费的时间,并且它只能集中访问实际单词。

参考地点

在操作系统中,引用局部性的概念指出,与其将整个进程加载到主存储器中,不如将OS加载到CPU中频繁访问的主存储器中的页面数,以及与此相关的OS还可以仅加载与许多页面相对应的那些页面表条目。

转换后备缓冲区(TLB)

转换后备缓冲区可以定义为内存缓存,可用于减少一次又一次访问页表所花费的时间。

它是一个更靠近CPU的内存缓存,CPU访问TLB所花费的时间比访问主内存所花费的时间短。

换句话说,我们可以说TLB比主存储器更快,更小,但比寄存器便宜且更大。

TLB遵循引用局部性的概念,这意味着它仅包含CPU经常访问的许多页面的条目。

在翻译后备缓冲区中,有标记和键,借助它们可以完成映射。

TLB命中是在翻译后备缓冲区中找到所需条目的条件。如果发生这种情况,则CPU只需访问主存储器中的实际位置。

但是,如果在TLB中找不到条目(TLB丢失),则CPU必须访问主存储器中的页表,然后访问主存储器中的实际帧。

因此,在TLB命中的情况下,有效访问时间将比TLB未命中的情况要短。

如果TLB命中的概率为P%(TLB命中率),则TLB未命中的概率(TLB未命中率)将为(1-P)%。

因此,有效访问时间可以定义为:

EAT = P (t + m) + (1 - p) (t + k.m + m)

如果已实现单级分页,则p→TLB命中率,t→访问TLB所需的时间,m→访问主存储器所需的时间k = 1。

通过公式,我们知道

  • 如果提高TLB命中率,则有效访问时间将减少。
  • 在多级寻呼的情况下,有效的访问时间将增加。