malloc中brk和mmap的区别: 在 malloc 函数内部,它会通过系统调用向操作系统请求一块连续的虚拟内存空间, 并将这个虚拟内存映射到进程的地址空间中。在 Linux 系统中,这个映射的过程涉及到两个系统调用:brk 和 mmap。 brk 和 mmap 都是 Linux 系统中用于管理进程虚拟内存空间的系统调用。 它们的主要区别在于, brk 是将进程的数据段(data segment)调整到指定的地址, 而 mmap 是创建一个新的虚拟内存映射区域。 在 malloc 函数内部, 如果要分配的内存大小较小(通常小于 128KB),则会使用 brk 系统调用向数据段中添加一个新的内存区域, 否则会使用 mmap 系统调用创建一个新的虚拟内存映射区域。 总的来说,brk 和 mmap 都是 Linux 系统中用于管理进程虚拟内存空间的系统调用,它们的主要区别在于 brk 是将当前数据段末尾指针向后移动,而 mmap 是创建一个新的虚拟内存映射区域。
点赞 评论

相关推荐

码农索隆:我头回见校招简历把个人优势写在最前面的,是我老了吗
点赞 评论 收藏
分享
牛客网
牛客企业服务