五、操作系统导论——内存超越(知识点总结)

操作系统导论——内存超越(知识点总结)

超越物理内存:机制

1、前面的假设全是内存空间足够大,能放入所有进程所需的页表。这里开始真实的情况,内存不一定能装下所有进程所需的资源(包括页表)。那为何操作系统要为进程提供足够的存储空间?答案是“方便和易用性”。

2、交换空间:

  • 含义:在硬盘上开辟一部分空间用于物理页的移入和移出。
  • 操作:在内存大小不足的情况下,将内存中的页交换到其中,并在需要的时候又交换回去。
  • 简单机制:加入标志位“存在位”。如果存在位设置为1,则表示该页存在于物理内存中,如果存在位设置为零,则页不在内存中,而在硬盘上。
  • 页错误:访问不在物理内存中的页,这种行为通常被称为页错误(page fault)。

3、页交换策略:选择哪些页被交换出或被替换(replace)的过程,被称为页交换策略(page-replacement policy)。这里在后面会详细说到。

4、页守护进程:

  • 含义:为了保证有少量的空闲内存,大多数操作系统会设置高水位线(High Watermark,HW)和低水位线(Low Watermark,LW),来帮助决定何时从内存中清除页。关键词:高水位线和低水位线。
  • 原理:当操作系统发现有少于LW 个页可用时,后台负责释放内存的线程会开始运行,直到有HW 个可用的物理页。

超越物理内存:策略

1、已知缓存命中和未命中的次数,可以计算程序的平均内存访问时间(Average Memory Access Time,AMAT):

AMAT = (PHit·TM) + (PMiss·TD)

其中TM 表示访问内存的成本,TD 表示访问磁盘的成本,PHit 表示在缓存中找到数据的概率(命中),PMiss 表示在缓存中找不到数据的概率(未命中)。PHit 和PMiss 从0.0 变化到1.0,并且PMiss + PHit = 1.0。
结论:在现代系统中,磁盘访问的成本非常高,即使很小概率的未命中也会拉低正在运行的程序的总体AMAT。所以,必须尽可能地避免缓存未命中,避免程序以磁盘的速度运行。

2、常用策略介绍(重点):

  1. 最优替换策略:替换内存中在最远将来才会被访问到的页,可以达到缓存未命中率最低。
  2. 简单策略(FIFO):当发生替换时,队列尾部的页(“先入”页)被踢出。
  3. 随机策略(RAND):在内存满的时候它随机选择一个页进行替换。
  4. 最近最少使用策略(LRU):特换最近最少使用的页。页替换策略可以使用的一个历史信息是频率(frequency)。

3、在不同工作负载下的表现:
test1

结论1:当工作负载不存在局部性时,使用的策略区别不大。

test2

结论2:在“80-20”负载场景中,随机和FIFO表现类似,都能很好地运行,但LRU 更好,因为它更可能保持热门页。

test3

结论3:在循环工作负载场景中,LRU和FIFO都可能出现最坏情况。随机策略明显更好,虽然距离最优策略还有距离,但至少达到了非零的命中率。

4、近似LRU:
原因:在实际应用中,难以真正实现LRU。所以采用近似LRU算法实现。这里主要指的是时钟算法。
时钟算法:

  • 硬件准备:增加一个使用位(use bit)。
  • 具体方案:周期性地清除使用位。遇到一个页的引用位为1,就清除该位(即将它设置为0)。直到找到一个使用位为0的页,将这个页进行替换。

效果:
test4

5、其他的虚拟内存策略:

  • 页选择策略:操作系统来决定何时将页载入内存。这要求,操作系统可能需要猜测一个页面即将被使用,从而提前载入。这种行为被称为预取。
  • 聚集写入策略:该策略决定了操作系统如何将页面写入磁盘。许多系统会在内存中收集一些待完成写入,并以一种(更高效)的写入方式将它们写入硬盘。

6、抖动:

含义:当内存就是被超额请求时(正在运行的进程的内存需求超出了可用物理内存),系统将不断地进行换页,这种情况有时被称为抖动(thrashing)。
简单解决思想:准入控制。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值