news 2026/6/5 21:15:37

swap、pagecache与内存回收

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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)结构,描述该段在虚拟地址空间按中的起始地址、大小、权限(读/写/执行)和后备存储信息。
段类型后备存储是否匿名
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 21:14:09

如何在浏览器中创建心理学实验:jsPsych终极指南

如何在浏览器中创建心理学实验:jsPsych终极指南 【免费下载链接】jsPsych Create behavioral experiments in a browser using JavaScript 项目地址: https://gitcode.com/gh_mirrors/js/jsPsych 在数字化研究时代,你是否需要一种简单高效的方式来…

作者头像 李华
网站建设 2026/6/5 21:11:56

流量时代之下精准触达是核心

在进行应届生和实习生招聘时,很多HR经常面临一个困境:在某些知名度很高、流量庞大的综合大平台上付出了不低的成本,收到的简历数量虽然不少,但打开一看,大部分都偏向于社会招聘或者是跨行严重的泛化人员。这种“流量泛…

作者头像 李华
网站建设 2026/6/5 21:11:23

如何用LibreSignage快速构建企业级数字标牌系统

如何用LibreSignage快速构建企业级数字标牌系统 【免费下载链接】LibreSignage A free and open source digital signage solution. 项目地址: https://gitcode.com/gh_mirrors/li/LibreSignage LibreSignage是一款完全免费开源的数字标牌解决方案,专为技术爱…

作者头像 李华
网站建设 2026/6/5 21:08:00

Linux动态壁纸引擎终极指南:5个技巧让你的桌面焕然一新

Linux动态壁纸引擎终极指南:5个技巧让你的桌面焕然一新 【免费下载链接】linux-wallpaperengine Wallpaper Engine backgrounds for Linux! 项目地址: https://gitcode.com/gh_mirrors/li/linux-wallpaperengine 想要在Linux系统上体验Steam Wallpaper Engin…

作者头像 李华
网站建设 2026/6/5 21:07:03

2026国际EMBA QS排名解析:顶尖中英双语及全球优质项目盘点

2026年QS全球EMBA排名是当前国际工商管理领域最具权威性的榜单之一,覆盖全球55个国家、215个优质EMBA项目,从职业发展、师资实力、多元化、国际化水平等多重维度综合评估,是企业高管、企业家挑选国际EMBA项目的核心参考依据。在众多上榜项目中…

作者头像 李华
网站建设 2026/6/5 21:07:00

Java 质数 (prime numbers) 算法实现

一、题目编写 Java 程序,查找指定范围内的所有质数(素数),质数定义:大于 1,除了 1 和自身,不能被其他自然数整除的整数。二、质数原理说明质数n≥2,2 是最小质数,偶数除 …

作者头像 李华