- 论坛徽章:
- 0
|
以下是我对hp-unix内存的一些理解,请大家不吝赐教:
1.关于hp-unix(以下简称unix)内存:
a.在一个帖子中我曾看到,在unix中总内存就为为虚拟内存,物理内存是机器实际的ram内存,因此有如下公式:
虚拟内存=物理内存(physic memory)+swap内存.
swap内存=设备页面区(device paging areas)+文件系统页面区(file system paging areas)
b.如果总内存称为虚拟内存,那么还可以有如下公式成立:
虚拟内存=系统缓存(比如,内核占用的内存....)+PageFile.
物理内存(physic memory)=系统缓存(比如,内核占用的内存....)+驻留在物理内存中的PageFile.
2.unix对物理内存的管理:
通过仔细看了一下swapinfo命令的man手册:
a.unix对物理内存一部分用作系统缓存(给内核等使用);
b.对剩下的大部分内存实行页面文件管理,当cpu需要对应数据时,如果包含对应数据的页面文件不在物理内存中就与swap区进行页入操作.同时如果空间紧张会将不用的页面文件页出.
3.unix对页面文件的管理:
unix swap区包括设备页面区(device paging areas)和文件系统页面区(file system paging areas),其中设备页面区是相对固定的专门分配给swap的,文件系统页面区是一个动态的辅助页面区.
对于如下一个swapinfo的输出:
/home/oracle>swapinfo -a
Kb Kb Kb PCT START/ Kb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 4194304 719960 3474344 17% 0 - 1 /dev/vg00/lvol2
reserve - 1465184 -1465184
memory 2097152 573680 1523472 27%
当一个进程创建或申请更多空间时,unix检测是否还可分配空间,就是dev,fs,memory的可用空间是否大于reserve的FREE栏的绝对值:
a.如果大于unix则拒绝空间申请.
b.如果小于unix则在将在reserve中增加相应的空间预留,等待页面活动发生已分配内存空间.
以上是我对hp-unix内存管理的一点理解,希望指正.另,有几处疑惑:
1.物理内存中的系统缓存,是不是用来储存指令,变量等,除了给内核还有其它的设备也占用吗?
2.关于swapinfo输出中的memory是不是也象reserve一样是一个伪存储区,它没有象dev和fs等对应的存储设备?
3.按照swapinfo的man中描述,在实际页面活动分配存储空间时,只有在dev和fs已经枯竭才会用到memory中的空间,也就是上面swapinfo的memory输出USED栏应该时0. |
|