天天看点

AIX VMM基本概念

AIX虚拟内存管理器(AIX VMM)是基于分页的虚拟内存管理器,一个分页就是一个固定大小的数据块。分页可以位于内存中,也就是映射到物理内存中的某个位置,也可以位于磁盘中,也就是物理内存中替换到分页空间或者文件系统。

请求分页原理:

内核一次仅加载部分页面到实际内存中,当CPU需要另一个页面时,会到RAM中查找,如果无法再RAM中找到这个页面,则出现一次缺页,然后向内核发出信号以便于从磁盘加载更多的页面到RAM。优点是分页空间不需要非常大,因为数据总在分页空间和磁盘间不断的交换

交换

进行分页时,进程的部分内容会在磁盘和RAM间来回移动,当发生交换时,会将整个进程来回移动。为了支持这种情况,在将进程移动到分页空间之前,AIX会挂起整个进程,只有在将进程交换会RAM之后,才能够继续执行,,出现这种情况不是很好,应该尽量防止交换的发生。

计算内存

当进程对计算信息进行处理时,将使用到计算内存。这些工作段是临时的,并且当进程终止或者页面被替换,这些工作段将不复存在,其没有对应的持久磁盘存储位置。在许多情况下,当一个进程终止时,将释放其物理和分页空间。

当可用页面出现较大的峰值时,你可以在监视系统的过程中发现这种情况,许多情况下,当一个进程终止时,将释放其物理和分页空间,当可用页面出现较大的峰值时,可以在监视系统中的过程中被发现。在VMM中,当空闲物理内存较少时,可以将最近没有使用的程序从RAM移出到分页空间,以帮助释放物理内存,从而完成更多的实际工作。

文件内存

使用持久段,并在池畔上就有持久存储位置,数据库文件或者可执行程序都映射为持久段,而不是工作段。数据文件可以能与系统文件相关。他们一直都处于内存中,知道文件被卸载,页面被替换、或者取消到文件的链接。将数据文件复制到RAM中后,VMM控制何时对这些页面进行覆盖或者将其用于存储其他数据。在可以选择的情况下,大多数人更希望将文件内存调到磁盘,而不是计算内存。

当进程引用磁盘上某个页面时,必须将其调入,这样会可能将其他的页面调出内存,VMM常驻内存并在后台运行将内存中的最近未使用的页面调出。当内存量很低并且不断的调入调出页面支持任务处理时,可能会出现系统颠簸,VMM提供的内存负载算法可以检测并处理。

AIX她根据需要将分页映射到实际内存,如果应用引用了某个分页,而该分页没有映射到实际内存中,那么系统将产生一个缺页,为了解决缺页,AIX内核会将所引用的分页加载到实际内存中的某个位置。如果锁引用的分页是一个新的分页,也就是从前从未引用过的进程数据堆中的分页,

那么“加载”所引用的分页只需要用零来填充一个实际的内存位置;如果所引用的分页时一个预先存在的分页,也就是文件中的某个分页、或者先前换出的某个分页,那么加载所用的分页需要从磁盘中将该分页读入到实际内存中的某个位置。

将分页加载到实际内存之后,它将被标记为未经修改,如果某个进程或者内核修改了改分页,那么该分页的状态将更改为已经修改的,这样AIX可以跟踪某个数据页加载在内存中是否被修改。随着系统将更多的分页添加到实际内存总,实际内存中空闲位置的数目将会减少,也可以将空闲位置的数据库称为空闲分页框架的数目,当空闲分页框架的数目、达到某个较低的值时,AIX内核就必须清空实际内存中的某些位置,以便于重用新的分页,这个过程就是分页替换。

AIX VMM提供守护进程lrud专门负责在内存分页中进行扫描。并回收某些分页以便于为实际内存腾出空间。当分页替换守护进程确定它希望回收某些特定的分页时,这些分页替换守护进程将执行下面的操作:

如果该分页经过了修改,那么分页替换守护进程将该分页写入到辅助存储位置,将包含该分页的物理内存块标记为空闲,并未其它的分页做好重用的准备。

如果该分页没有经过修改,那么分页替换守护进程可以见到的将物理内存块标记为空闲,这样以来就可以重用该内存块,这种情况下不需要写入磁盘,因为分页在内存中版本没有进过修改,和磁盘中的数据页副本完全一致。

分页类型:

工作存储分页

工作永久分页

工作存储分页包含易变数据分页,也就是重启后不存在的数据的分页,工作存储分页组成类型:

进程数据

堆栈

共享内存

内核数据

当需要经过修改的工作存储分页替换出时,他们将写入分页空间,不会将工作存储分页写到文件系统,当进程退出时,系统将释放其所有的私有存储分页,因此,当进程退出时,系统将释放进程数据和堆栈的存储分页。对于工程存储区域,知道删除共享内存区域以后,才会释放其工作存储分页。

永久存储

永久存储分页是一些包含永久数据的分页,这种永久数据就是数据文件,因此永久数据时缓存在内存中的部分文件。当经过修改的永久存储分页需要换出时,它将会写入到数据文件系统

继续阅读