系统调用brk 和 mmap 有什么不同?

news/2025/9/25 14:01:09/文章来源:https://www.cnblogs.com/TibiFide/p/19111048

系统调用brk 和 mmap 有什么不同?

1. 核心功能差异

‌brk‌: 通过调整进程堆顶指针(_edata)扩展/收缩堆空间,仅适用于连续内存分配‌。
‌mmap‌:在进程虚拟地址空间中创建独立映射区域,支持文件/匿名内存映射,可分配非连续内存‌。

2. 内存管理机制

‌brk‌:分配时仅修改虚拟地址边界,物理内存按需分配(首次访问触发缺页中断)‌。释放时内存由malloc内部缓存,不立即归还操作系统‌。
‌mmap‌:分配时建立虚拟地址与文件/内存的映射关系,支持共享/私有模式‌。释放时通过munmap**立即归还虚拟地址空间和物理内存‌**。

3. 性能与适用场景

特性 brk mmap
分配大小‌ 适合小块内存(<128KB)‌ 适合大块内存(≥128KB)‌
碎片问题‌ 易产生堆碎片‌ 独立管理,无外部碎片‌
系统开销‌ 仅移动指针,开销低‌ 需系统调用,开销高‌
多线程‌ 需全局锁,性能受限‌ 支持线程独立映射,无锁竞争‌

4. 典型应用场景

‌brk‌:频繁分配/释放小内存(如字符串、结构体)‌。
‌mmap‌:大文件I/O、共享内存、进程间通信(IPC)‌。

问题思考:
1. 什么是缺页中断?
2. _edata 具体是指什么?除了_edata 区还有哪些内存区域的划分?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

雷达系统杂波设计与仿真

一、杂波建模方法体系 1. 统计建模方法瑞利分布:适用于低分辨率雷达地杂波,假设散射体数量足够多且无主导散射体 % 瑞利分布仿真代码 sigma = 1.2; % 杂波标准差 clutter = sigma * abs(randn(1,1000));韦布尔分布:…

把网站做成微信小程序网页设计作业设计意图

[css] 异步加载CSS的方式有哪些&#xff1f; 异步加载CSS 说到加载 CSS 这种事儿不是很简单吗&#xff1f;像这样咯&#xff1a; 这不就完事儿了嘛&#xff01; 这样是没错&#xff01;但是这样有问题啊——会阻塞渲染&#xff01;浏览器看到这个标签就会停下手里的活儿&…

国标GB28181视频平台EasyCVR一体化加油站安防视频监控方案与实践

国标GB28181视频平台EasyCVR一体化加油站安防视频监控方案与实践在现代油品销售行业,确保加油站的安全运营和提供优质的客户服务是至关重要的。为了满足这些需求,必须构建一个依托于尖端信息技术的视频监控系统。这一…

JavaScript 沙箱

概述 沙箱可以简单的理解为一个虚拟机,是一个和宿主机隔离的环境,在这个环境中去运行一些不受信任的代码或者应用程序,防止不安全的代码对系统造成损害。 比如我们现在知道某个应用是诈骗软件或者病毒软件,但是我们…

PDF入参以及模板对应签章图踩坑点

模板PDF推荐使用万兴PDF工具破解版调整表单域和表单域名称,入参后的PDF需要设置入参字体和扁平化来保证PDF可以直接显示入参参数。可以防止出现打开PDF显示文本域// OSS上的PDF模板文件URLprivate static final Strin…

网站分页导航廊坊百度快照优化

一、Android抓包方式 对Https降级进行抓包&#xff0c;降级成Http使用抓包工具对Https进行抓包 二、常用的抓包工具 wireshark&#xff1a;侧重于TCP、UDP传输层&#xff0c;HTTP/HTTPS也能抓包&#xff0c;但不能解密HTTPS报文。比较复杂fiddler&#xff1a;支持HTTP/HTTPS…

高性能PCIe 3.0软核,x1~x16,支持EP/RC,AXI4接口,内置DMA控制器,适用ASIC和FPGA

PCIe-AXI-Controller兼容PCI Express Base Specification Revision 3.1,实现PCIe PHY Layer,Data Link Layer以及Transaction Layer的所有功能特性,不仅内置DMA控制器,而且具备AXI4用户接口,提供一个高性能,易于…

使用git clone 批量下载huggingface模型文件

1.选定要下载的模型 以下载moka-ai/m3e-base为例,切换到Files and versions。2.更改下载网页的url 如上图所示,当前要下载模型网页的url为: https://huggingface.co/moka-ai/m3e-base/tree/mainAI写代…

深入 Spring Boot 异常处理底层机制 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python 换进安装GDAL

Hello World本文来自博客园,作者:南宫影,转载请注明原文链接:https://www.cnblogs.com/nangongying/p/19111056

sync(同步本地文件到OSS)

注意事项要将本地文件同步到OSS,您必须具有oss:PutObject、oss:ListObjects和oss:DeleteObject权限。具体操作,请参见为RAM用户授权自定义的权限策略。Binary名称 从ossutil 1.6.16版本开始,命令行中Binary名称支持…

云南装饰公司做网站湖北城乡住房建设厅网站怎查证件

操作系统习题习题一一、选择习题二一、选择二、综合题习题三一、选择题&#xff1f;二、简答题进程互斥遵循的四个原则&#xff1a;空闲让进、忙则等待、有限等待、让权等待重点习题四一、选择&#xff1f;&#xff1f;二、综合题死锁产生的 4 个必要条件是&#xff1a; &#…

淘宝客网站一定要备案网易企业邮箱怎么申请

Xsens动作捕捉技术助力于中国戏曲演员运动分析 搜维尔科技&#xff1a;Movella Xsens动作捕捉技术助力于中国戏曲演员运动分析

番禺网站建设培训班友情链接交换方式有哪些

一、什么是数据结构 数据结构是一组用来保存一种或多种特定关系的数据的集合。其主要目的是组织和存储数据&#xff0c;以便于高效的访问和修改。在程序设计中&#xff0c;将大量而复杂的问题以特定的数据类型和特定的存储结构存储在内存中&#xff0c;并在此基础上实现某个特定…

网站关键词搜不到了百度建网站

做过很多winform项目&#xff0c;都为winform控件头疼不已。想实现一些漂亮的样子总是很难。我这里列举几个缺点&#xff1a; 1.winform控件大多是 绝对布局 &#xff0c;你需要给出准确的坐标。那么在实现居中效果就会很难。 2.学习成本&#xff0c;也了解各个控件的结构&…

MyBatisPlus 会默认设置 mybatis 的 scanPackages 为当前 BeanFactory 的 auto-configuration 的 base packages

MyBatisPlus 会默认设置 mybatis 的 scanPackages 为当前 BeanFactory 的 auto-configuration 的 base packagesMybatisPlus 在自动配置时,会自动注册 MapperScannerConfigurer,并设置 自动扫描 Mapper 的 basePacka…

工程实践 使用本地包开发python项目

工程实践 使用本地包开发python项目 当python项目比较庞大, 把共用的公共函数和方法封装成一个本地包不仅便于在不同项目间复用,还能通过统一的方式读取资源文件, 是一个很好的工程实践. 下面来介绍一下这种开发方式.…

详细介绍:Python + Flask + API Gateway + Lambda + EKS 实战

详细介绍:Python + Flask + API Gateway + Lambda + EKS 实战pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

实用指南:【设计模式】适配器模式 在java中的应用

实用指南:【设计模式】适配器模式 在java中的应用2025-09-25 13:45 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displ…

日记4

今天接着学Java,直接从类和对象入手。理解类是模板,对象是实例,像设计图纸和盖好的房子。试着写简单类定义对象,一开始老把属性和方法弄混,改了几次代码,终于成功创建对象并调用方法,感觉对面向对象的思路更清晰…