首页 > 其他 > 详细

66、在执行malloc申请内存的时候,操作系统是怎么做的?

时间:2021-08-14 15:18:59      阅读:6      评论:0      收藏:0      [点我收藏+]

从操作系统层面上看,malloc是通过两个系统调用来实现的: brk和mmap

  brk是将进程数据段(.data)的最高地址指针向高处移动,这一步可以扩大进程在运行时的堆大小

  mmap是在进程的虚拟地址空间中寻找一块空闲的虚拟内存,这一步可以获得一块可以操作的堆内存。

 

通常,分配的内存小于128k时,使用brk调用来获得虚拟内存,大于128k时就使用mmap来获得虚拟内 存。

 

进程先通过这两个系统调用获取或者扩大进程的虚拟内存,获得相应的虚拟地址,在访问这些虚拟地址 的时候,通过缺页中断,让内核分配相应的物理内存,这样内存分配才算完成。

 

66、在执行malloc申请内存的时候,操作系统是怎么做的?

原文:https://www.cnblogs.com/crbhf/p/15140809.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!