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

swap、pagecache与内存回收

一、程序从加载到运行中内存空间的使用情况

以linux系统上一个典型的c程序(如./a.out)为例,从shell执行到进程退出,详细分解匿名内存的分配、管理、销毁全过程。
1、shell调用fork()创建子进程

  • shell调用fork()系统调用,内核复制shell的进程描述符(task_truct)及页表,创建出一个几乎完全相同的子进程。
  • 内存分配:内核为子进程分配新的mm_struct(内存描述符)和新的页表。此时父子进程的虚拟地址空间指向相同的物理页,且这些也被标记为只读(写时复制)。
  • 匿名内存初始状态:子进程继承了shell的匿名内存(如shell的堆和栈)。但随后子进程会立即执行execve,这些旧的匿名内存将被完全替换,所以它们没有实际意义。
    2、子进程调用execve()加载新程序
    execve系统调用负责将新的可执行文件加载到当前程序的地址空间,丢弃原有的所有内存映射,建立权限的虚拟地址空间布局。
    ①、内核读取可执行文件头(如elf)
  • 参与者:内核(fs/exec.c)中的do_execve系列函数)。
  • 动作:解析elf文件头,识别代码段(.text)、数据段(.data)、只读数据段(.rodate)、bss段等。
    ②、建立虚拟内存区域(vma)
    内核为程序的每个段创建一个vm_area_struct(vma)结构,描述该段在虚拟地址空间按中的起始地址、大小、权限(读/写/执行)和后备存储信息。
段类型后备存储是否匿名
http://www.gsyq.cn/news/1469175.html

相关文章:

  • 从ChatGPT到礼盒交付,AI工具链如何重构礼品行业工作流?
  • 嵌入式RTOS稳定性对比与选型指南
  • 【RT-DETR实战】139、调试手记:从RT-DETR的部署困境看YOLO新版本的演进启示
  • 实战演练:借鉴idea ai插件思路,在快马平台构建可运行的股票数据ai分析看板
  • .net+vue+oracle21xe部署教程
  • Nexus Mods App:5分钟掌握游戏模组管理的终极解决方案
  • spring websocket实现扫码登录
  • 如何在Linux系统上安装Realtek 8852AE Wi-Fi 6驱动:完整指南
  • 国际EMBA怎么选?5大主流国际EMBA项目全方位对比分析
  • 跨境支付AML漏检率骤降81%的秘密(某国有大行Gemini私有化部署内部技术备忘录节选)
  • 终极解决方案:CAD Sketcher 0.27.6安装失败问题深度剖析与修复指南
  • 2026年青春期精华液哪家好:专业TOP5深度解析指南 - 17322238651
  • 华为三层交换机 企业标准完整配置
  • 正则表达式用法
  • 三步解锁音频转字幕新技能:AsrTools终极指南
  • 新手友好:通过快马平台生成嵌入式按键控制LED入门项目代码
  • 2026重庆化工原料优选榜单:氨水/双氧水/草酸/液碱/柠檬酸/葡萄糖酸钠等20+试剂精准批发推荐 - 品牌企业推荐师(官方)
  • 终极改造指南:3分钟将电视盒子变身高性能Linux服务器
  • 【国家级智慧社区认证必过清单】:AI工具合法性、隐私计算合规性、实时响应SLA三重校验表(附可下载模板)
  • 你的TensorFlow真的在‘吃’GPU吗?Win10下用nvidia-smi和任务管理器交叉验证(避坑指南)
  • 2026年控油精华液哪家好:独家TOP5专业精选报告 - 13724980961
  • 营销AI工具配置已进入“秒级失效”时代:3个信号预示你的配置将在Q3失效(附实时健康度自检工具)
  • 亚马逊儿童玩具车F963-23标准
  • TypeScript 从零基础到上岗就业超全学习指南(2026最新)
  • 2026年广州搬家公司行业白皮书:监管落地与消费升级下的正规服务商全测评 - 生活服务
  • Rustix库:Rust 系统编程 的 基石
  • 从数字疲劳到个性表达:如何用光标重塑你的桌面叙事
  • 2026沈阳和平区防水补漏哪家好?住建实地测评权威榜单TOP5|卫生间免砸砖/阳台屋顶/厨卫漏水维修(6月和平区专项调研) - 苏易修缮
  • 3步解锁你的加密音乐:Unlock-Music浏览器解密工具完全指南
  • SuperCLIP:细粒度图像文本对齐的技术突破与应用