虚拟内存管理器(VMM)性能概述
2008-09-06 08:21:45 来源:WEB开发网
除了页面替换以外,算法还可通过使用一个包含最近缺页故障标识的历史缓冲区来跟踪新页故障(第一次引用)和重新调页故障(引用已经调出的页)。然后它可以尽量平衡文件(持久数据)页面的调出和计算(工作存储器或程序文本)页面的调出。
当进程退出时,它的工作存储器立刻释放并且它的关联内存帧也放回到空闲列表中。然而由该进程打开的任何文件可保留在内存中。
如果线程在单处理器上运行,那么页面替换可直接在线程作用域中进行。在多处理器系统中,页面替换通过内核进程 lrud 进行,在达到阈值 minfree 时,该进程被分派到 CPU 中。从 AIX 4.3.3 开始,内核进程 lrud 是多线程的,每个存储池中一个线程。根据 CPU 数量和 RAM 大小将实际内存划分成平均大小的存储池。系统中存储池的数量可通过运行命令 vmtune -A 来确定。
在 AIX 4.3.3 和后续版本中,使用命令 vmtune -m <number of memory pools> 更改存储池数量,这将在系统引导时进行配置。数值 minfree 和 maxfree 在命令 vmtune 的输出中,它们是每个存储池的 minfree 和 maxfree 的总和。
重新调页
缺页故障要么是新页故障要么是重新调页故障。如果没有最近引用页面的记录的话,会出现一个新页故障。而出现重新调页故障是指一个知道其最近已经引用的页再次被引用,但由于该页在上次访问后已经被替换(可能写到磁盘上)而在内存中找不到它。
理想的页面替换策略通过总是替换那些不会再次引用的页面帧而完全减少重新调页故障(假设有足够的实际内存)。因而重新调页故障数是页面替换算法有效性的一个相反评测标准,算法将频繁被重用的页面保存在内存中,从而降低了总体 I/O 需求并潜在地改善了系统性能。
更多精彩
赞助商链接