有几百个进程却只有几G的内存,求解释这几百个进程如何共享内存的?
我感觉每个进程“占的内存”加起来应该大于物理内存,,怎样的内存管理和调度可以让这几百个进程看起来是一块运行的啊? 呵呵,这正是虚拟内存要解决的问题。
进程分配的内存实际是虚拟内存,实际的物理内存不会立即分配,物理内存仅在访问时通过缺页异常分配,所以所有进程的占用虚拟内存总和是可以超过物理内存的,但物理内存总和不行。top命令结果中,VIRT和RES分别代表虚拟内存和物理内存使用量。
关于调度,cpu分时复用,按一定的算法给每个进程分配时间片,简单说,就是每个进程间隔运行一小段时间,由于时间片粒度小(通常ms级别),所以用户和上次业务通常感知不明显。
页:
[1]