魁梧哈密瓜

文章
4
资源
0
加入时间
2年10月24天

操作系统的内存管理你知道吗

brk()的作用也只是通知Linux内核哪个范围的堆内存是可用的,真正的物理内存页是在进程实际读写内存的时候才会申请,而且是由内核根据写时复制/需求加载自动完成的,应用程序感知不到这点。如果想直接使用系统调用,可以使用Linux的syscall()函数,依次传入调用号和参数列表,就可以看到哪些是真实的系统调用,哪些是C库的封装。所以,新进程刚被创建出来时,它的用户空间并没有自己的物理内存页,只有当运行需要时才一点点地通过写时复制添加,以让物理内存最大限度的空闲着。