1. 电脑中所运行的程序均需经由内存执行。
2. 当内存不足时,拿出一部分硬盘空间来充当内存使用,这部分空间即称为虚拟内存。
3. RSS指的是常驻内存,我的理解是确确实实正在被该进程使用的内存,即包含了共享的内存以及把被交换的内存(swap)剔除掉了。
最终理解↓
进程所writeable的内存 = { RSS , 自己暂时用不上被别人拿去用掉的内存 }
RSS = { 本身私有的,共享并且在用的{ 自己本身共享出去的,别人共享出来的 } }
4. xms xmx 限制的应该是指上述所说的进程所writeable/private的内存。
所以top命令查回来的RSS有可能会比xms所限制的还要少。
用pmap -x [pid]查回来的writeable∈[xms,xmx]
转化成实例理解:
1. 一个宿舍六个人,每个人交100块宿费,那么这600块就是共享的(shared)
2. 我作为宿舍的一员,我拥有1000块,交了100块宿费之后,手头上还有900块。
3. 宿友A不够钱花了,我从900块里面借出200块给他用,他给我写了张借条(虚拟内存)。
现在我就有700块现金,200块借条,以及600块共享的宿费。
当我要花950块的时候,我可以拿自己的700块+共享250块 = RSS
属于我名下的有1000块,现金700+借条200+共享出去的100 = writeable/private
另外还有个分配给进程的虚拟内存,我的理解是存在银行的钱,非现金。每当要用的时候,还得先去取钱(调度)。
借条200也是非现金,要想用还得先让他还钱(调度,page-in)。但宿费600是现金,我手头的700是现金。