分页性能


分页是一种内存管理方法。操作系统可以创建和释放内存中的页面,页面是更小、固定大小的块。由于分页,操作系统可以使用虚拟内存,允许进程访问比物理上可访问的内存更多的内存。但是,分页也会引入页面错误和页面替换开销。因此,分页性能是设计和改进现代操作系统的一个关键考虑因素。

本文将涵盖许多与分页相关的性能主题,包括基准测试、页面替换技术、工作集模型、抖动、页面大小选择、TLB(转换旁路缓冲区)和缓存以及结论。

页面替换算法

当进程尝试访问物理内存中不存在的页面时,就会发生页面错误,在这种情况下,操作系统必须将页面从磁盘加载到内存中。如果内存已满,操作系统必须决定将哪个页面从内存中移除以腾出空间供新页面使用。此过程称为页面替换,它是影响分页性能的最重要因素之一。

操作系统可以使用多种页面替换技术来选择要删除的页面。一些最流行的算法如下:

先进先出 (FIFO)

这种方法会移除最先加载到内存中的页面。

最近最少使用 (LRU)

最近最少使用 (LRU) 算法会移除最长时间未被访问的页面。

时钟 (或第二次机会)

此技术类似于 FIFO,但会给最近读取的页面第二次机会。

每种算法都有其优点和缺点,算法的选择取决于系统的特定需求和特性。

工作集模型

工作集模型是一种确定进程将使用多少内存的方法。该模型假设一个工作集,即每个进程经常访问的页面集合。工作集大小是指保持进程有效运行所需的最小页面数。

工作集概念可用于通过更改进程工作集的大小来提高分页速度。如果工作集太小,则进程将经常遇到页面错误;如果工作集太大,则会浪费内存。

抖动

抖动是一种现象,当操作系统比实际运行任务更频繁地将页面移入和移出内存时发生。抖动会大大降低系统速度,这是一个严重的性能问题。

当操作系统难以在分配给每个进程的页面数和可用的总内存量之间取得平衡时,就会发生抖动。如果进程分配到的页面太少,则它会经常遇到页面错误,这会导致操作系统花费额外的时间将页面移入和移出内存。但是,如果进程分配到的页面太多,操作系统将耗尽内存,并且必须开始将页面交换到磁盘,这是一个缓慢的操作。

页面大小选择

页面大小也会极大地影响分页的性能。较小的页面会导致更精确的内存管理,从而减少未使用的内存量。但是,较小的页面会导致更大的页面表,这可能会减慢页面表查找的速度。另一方面,较大的页面会导致更少的浪费内存,但会减小页面表的大小。

页面大小的选择取决于系统的特定需求和特性。通常,大多数现代操作系统使用 4KB 或 8KB 的页面。

转换旁路缓冲区 (TLB) 和缓存

缓存和转换旁路缓冲区 (TLB) 是两个可以提高分页速度的硬件组件。

TLB 充当最近访问的页面表条目的缓存。当 CPU 需要将虚拟地址转换为物理地址时,它首先会在 TLB 中搜索。如果转换可以由 CPU 快速访问,则它将存储在 TLB 中。如果转换不在 TLB 中,则 CPU 必须在页面表中进行较慢的查找。

特别是对于具有大型页面表的系统,使用 TLB 可以显着减少页面表查找的成本。

另一个可以提高分页速度的硬件组件是缓存。缓存是一块小而快的内存,它存储了经常请求的页面。当操作系统需要访问页面时,它首先会在缓存中搜索。如果在缓存中找到页面,则操作系统可以快速访问它,而无需从磁盘读取它。

在具有高局部性引用的系统中,使用缓存可以显着减少页面错误的数量。

基准测试

基准测试是评估和比较不同系统或算法性能的过程。在分页的背景下,基准测试可用于比较不同页面替换技术、页面大小、TLB 设置和缓存配置的性能。

SPEC CPU 和 SPECint 是操作系统行业中常用的基准测试示例。这些基准测试提供了一组标准测试,可用于比较不同系统在各种工作负载下的性能。

结论

现代操作系统的设计和优化必须考虑到分页的性能。由于操作系统使用分页实现虚拟内存,因此进程可以访问比物理上可访问的内存更多的内存。但是,分页也会引入页面错误和页面替换开销。

操作系统使用多种技术来提高分页速度,包括页面替换算法、工作集模型、TLB 和缓存。所选方法取决于系统的特定需求和特性。

基准测试是评估不同分页方法在各种工作负载下的性能的有用工具。通过仔细调整系统设置并选择正确的分页机制,可以在现代操作系统中实现高性能和有效的内存利用率。

更新于: 2023-07-19

606 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告