当前位置: 首页 > news >正文

malloc中的mmap是如何分配内存的

mmap 的内存分配过程

  1. 虚拟内存的分配:当调用 mmap 分配匿名内存时,系统在进程的虚拟地址空间中为请求的内存区域创建一块地址空间。此时并不会立即为该区域分配物理内存,而是仅仅在虚拟地址空间中预留了空间。

  2. 页面分配:当进程第一次访问这个内存区域时(读、写等),会触发缺页异常(Page Fault)。操作系统在此时为该虚拟地址分配物理内存页,并将虚拟地址映射到物理内存。

  3. 内存保护mmap 调用允许指定内存区域的访问权限(prot 参数)。操作系统会根据设置的权限控制该内存区域的读写或执行权限。如果进程访问该内存时违反了权限设置,则操作系统会发出访问违规(segmentation fault)信号。

  4. 内存的释放mmap 分配的内存区域不会自动释放。当进程结束时,系统会自动回收该内存区域。如果需要提前释放该内存区域,可以调用 munmap

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Leetcode第414周赛第二题:3281. 范围内整数的最大得分
  • 两种常用损失函数:nn.CrossEntropyLoss 与 nn.TripletMarginLoss
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • 解决 Python IDLE 横向显示文字的方法
  • JavaWeb笔记整理14——公共字段自动填充技术实现
  • 比特币网络和支付
  • Linux网络编程IO管理
  • 使用Docker快速启动Nacos集群
  • 微信小程序页面制作——个人信息
  • 探究:为什么JavaScript要在body标签尾部引入?
  • 韦季李输入法_屏幕键盘第二个选择
  • 社群空间站9.9付费入群系统二开源码 易支付版全套搭建教程
  • 2024上学期--实验室学习计划
  • Android终端如何快速接入GB28181平台实现实时音视频回传
  • 计算机网络(二) —— 网络编程套接字
  • hexo+github搭建个人博客
  • 08.Android之View事件问题
  • android图片蒙层
  • Apache Pulsar 2.1 重磅发布
  • CentOS7 安装JDK
  • CSS中外联样式表代表的含义
  • ES学习笔记(12)--Symbol
  • express.js的介绍及使用
  • idea + plantuml 画流程图
  • Java知识点总结(JavaIO-打印流)
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Mysql数据库的条件查询语句
  • PHP变量
  • Spark RDD学习: aggregate函数
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 从伪并行的 Python 多线程说起
  • 后端_ThinkPHP5
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前端面试之CSS3新特性
  • 前端性能优化——回流与重绘
  • 前言-如何学习区块链
  • 删除表内多余的重复数据
  • 使用Swoole加速Laravel(正式环境中)
  • 新书推荐|Windows黑客编程技术详解
  • 以太坊客户端Geth命令参数详解
  • Hibernate主键生成策略及选择
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​业务双活的数据切换思路设计(下)
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #stm32驱动外设模块总结w5500模块
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (12)Linux 常见的三种进程状态
  • (C#)一个最简单的链表类
  • (CPU/GPU)粒子继承贴图颜色发射
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (排序详解之 堆排序)
  • (循环依赖问题)学习spring的第九天