欢迎来到天天文库
浏览记录
ID:9496655
大小:82.00 KB
页数:17页
时间:2018-05-01
《aix 分页替换技术入门》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、AIX分页替换技术入门 引言 AIX®虚拟内存管理器(AIXVMM)是一种基于分页的虚拟内存管理器。一个分页就是一个固定大小的数据块。分页既可以位于内存中(也就是说,映射到物理内存中的某个位置)、也可以位于磁盘中(也就是说,从物理内存中替换到分页空间或者文件系统)。 AIXVMM有一个非常独特的方面,即缓存的文件数据的管理。AIXVMM将缓存的文件数据与对其它类型虚拟内存(例如,进程数据、进程堆栈等等)的管理集成到了一起。它将文件数据缓存为分页,就如同进程的虚拟内存一样。 AIX根据需要将分页映射到实际内存。如果应用程序引用了某个分页,而该分页并没有映射
2、到实际内存中,那么系统将产生一个缺页。为了解决缺页,AIX内核会将所引用的分页加载到实际内存中的某个位置。如果所引用的分页是一个新的分页(也就是说,位于先前从未引用过的进程数据堆中的分页),那么加载所引用的分页只需要用零来填充一个实际内存位置(也就是说,提供一个填满零的分页)。如果所引用的分页是一个预先存在的分页(也就是说,文件中的某个分页、或者先前换出的某个分页),那么加载所引用的分页需要从磁盘(分页空间或者磁盘文件系统)中将该分页读入到实际内存中的某个位置。 在将分页加载到实际内存中之后,它将被标记为未经修改的。如果某个进程或者内核修改了该分页,那么该分页的状态将
3、更改为已修改的。这允许AIX跟踪在将某个分页加载到内存之后是否对其进行过修改。 随着系统将更多的分页添加到实际内存中,实际内存中空闲位置(可以包含分页)的数目将会减少。也可以将空闲位置的数目称为空闲分页框架的数目。当空闲分页框架的数目达到某个较低的值时,AIX内核就必须清空实际内存中的某些位置,以便重用新的分页。这个过程也称为分页替换。 AIXVMM提供了一些后台守护进程,专门负责进行分页替换。其中一个分页替换守护进程称为lrud(显示为ps-k的输出中的lrud)。lrud守护进程负责在内存分页中进行扫描,并回收某些分页以便为实际内存腾出空间。当分页替换守护进程确
4、定它希望回收某个特定的分页时,这个分页替换守护进程将执行下面两项操作中的一项: 如果该分页经过了修改,那么分页替换守护进程将该分页写入到辅助存储位置(例如,分页空间或者文件系统磁盘)。将包含该分页的物理内存块标记为空闲,并为其它的分页做好重用的准备。 如果该分页没有经过修改,那么分页替换守护进程可以简单地将物理内存块标记为空闲,这样一来,就可以将该物理内存块重用于另一个分页。在这种情况下,分页替换守护进程不需要将该分页写入到磁盘,因为该分页在内存中的版本并没有经过修改,因此与位于磁盘中(在分页空间中、或者在磁盘文件系统中)的分页副本完全相同。 分页替换守护进程可以
5、根据系统内存的使用情况和可调参数,选择不同类型的分页进行回收。本文剩下的部分将详细地介绍分页替换守护进程如何选择要进行回收的分页。 分页类型 从本质上看,AIX中一共有两种分页类型: 工作存储分页(M对象以代表该文件。并且将其标记为非计算性的,这意味着所有的文件在一开始都是非计算性的。 随着程序对该文件进行读写操作,AIX内核将该文件的数据作为非计算性的永久存储分页在内存中进行缓存。 如果关闭该文件,那么AIX内核将继续在内存中(在永久存储分页中)缓存该文件的数据。内核继续缓存该文件是为了提高性能;例如,如果稍后出现了另一个进程,并且它也使用了相同的文件,那么
6、该文件数据仍然位于内存中,并且AIX内核不需要从磁盘读入该文件的数据。 如果某个文件因为指令取出发生了缺页,那么会将非计算性文件转换为计算性状态。当对某个文件出现进程缺页(意味着该进程引用了文件的部分内容,而这部分内容当前没有缓存在永久存储分页的内存中)的时候,该进程将产生一个缺页。如果是由于指令取出而导致的缺页(意味着该进程正在尝试加载来自该分页的指令,以便进行相关操作),那么内核会将该文件标记为计算性的。这涉及到将该文件中的所有分页都标记为计算性的。一个文件要么完全是计算性的,要么完全是非计算性的。 在将文件标记为计算性文件之后,它将一直保持为计算性文件,直到删
7、除该文件(或者重新启动系统)。因此,即使移动了该文件、或者对它进行了重命名,该文件仍然标记为计算性的文件。 分页替换 AIX分页替换守护进程一次扫描内存的一个分页,找出要回收的分页以释放内存。分页替换守护进程必须仔细地选择分页,以便将分页对系统的性能影响降到最低,并且分页替换守护进程将根据可调参数设置和系统情况来选择不同类型的分页。 您可以使用大量的可调参数来控制AIX选择分页进行替换的方式。 minperm和maxperm minperm和maxperm是两个最基本的分页替换可调参数。这两个可调参数用于指出AIX内核应该使用多
此文档下载收益归作者所有