- 10
- 0
- 约1.83万字
- 约 29页
- 2018-10-14 发布于浙江
- 举报
Linux进程虚拟内存中相关概念.pdf
内存分配的原理__进程分配内存有两种方式,分
别由两个系统调用完成:brk 和 mmap (不考
虑共享内存)。
如何查看进程发生缺页中断的次数?
用 ps -o majflt,minflt -C program 命令查看。
majflt 代表 major fault,中文名叫大错误,minflt 代表 minor fault,中
文名叫小错误。
这两个数值表示一个进程自启动以来所发生的缺页中断的次数。
发成缺页中断后,执行了那些操作?
当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操
作:
1、检查要访问的虚拟地址是否合法
2、查找/分配一个物理页
3、填充物理页内容(读取磁盘,或者直接置 0,或者啥也不干)
4、建立映射关系(虚拟地址到物理地址)
重新执行发生缺页中断的那条指令
如果第 3 步,需要读取磁盘,那么这次缺页中断就是 majflt,否则就是
minflt。
内存分配的原理
从操作系统角度来看,进程分配内存有两种方式,分别由两个系统调用完成:
brk 和 mmap (不考虑共享内存)。
1、brk 是将数据段(.data)的最高地址指针_edata 往高地址推;
2、mmap 是在进程的虚拟地址空间中(堆和栈中间,称为文件映射区域的地
方)找一块空闲的虚拟内存。
这
原创力文档

文档评论(0)