第三章 内存管理 七、具有快表的地址变换结构

目录

一、什么是快表

二、快表有什么用?

例子:

三、快表和慢表同时查询

四、局部性原理

五、总结


一、什么是快表

快表,又称联想寄存器(TLB,translation lookaside buffer),是一种访问速度比内存快很多的高速缓存(TLB不是内存! ),用来存放最近访问的页表项的副本,可以加速地址变换的速度。与此对应,内存中的页表常称为慢表

第三章 内存管理 七、具有快表的地址变换结构_第1张图片

注意:一般不把整个页表都放在TLB里,因为成本太高了。

二、快表有什么用?

例子:

1、我们要访问(0,0)(0,4)(0,8)这几个逻辑地址

第三章 内存管理 七、具有快表的地址变换结构_第2张图片

2、当进程上处理机时或进程切换时,系统会清空快表的内容。

3、假设访问TLB只需要1us,访问内存需要100us

4、我们首先要访问(0,0),首先,检查是否越界。

5、未越界,访问快表(此时快表为空),在快表内找不到对应的项。

6、因为找不到,所以未命中,所以访问内存中的慢表,找到内存号为600,并将此项复制到快表中。

第三章 内存管理 七、具有快表的地址变换结构_第3张图片

7、之后算出物理地址

8、接着就是访问(0,4),还是先判断是否越界,发现没有越界。

9、查询快表,找到对应的内存块,接着算出物理地址。

10、(0,8)同样如此

11、这样所用的时间就是100+1+1=102,如果没有快表,时间就是100*3=300

第三章 内存管理 七、具有快表的地址变换结构_第4张图片

三、快表和慢表同时查询

第三章 内存管理 七、具有快表的地址变换结构_第5张图片

四、局部性原理

局部性原理(Locality Principle)是计算机科学中的一个基本原理,指的是在一段时间内,计算机程序访问数据的局部性比全局性强。也就是说,程序在某一时间段内更倾向于访问一组紧密相关的数据,而不是随机、散开的数据。

局部性原理具体包括以下三种:

  1. 时间局部性(Temporal Locality):如果一个数据被访问过一次,那么在近期内它有很高的概率会被再次访问。

  2. 空间局部性(Spatial Locality):如果一个数据被访问了,那么在其附近的数据也有很高的概率会被访问。

  3. 顺序局部性(Sequential Locality):如果一个数据被访问了,那么在其之后或之前的数据也有很高的概率会被访问。

通过充分利用局部性原理,计算机可以提高数据访问的效率,从而提高程序的执行效率。例如,在缓存中存储最近访问过的数据,可以避免反复访问主存中的数据,提高程序运行效率。

第三章 内存管理 七、具有快表的地址变换结构_第6张图片

五、总结

第三章 内存管理 七、具有快表的地址变换结构_第7张图片

你可能感兴趣的:(操作系统学习,操作系统)