首页 > 其他分享 >mmap原理

mmap原理

时间:2024-08-13 20:20:33浏览次数:13  
标签:mmap 链表 地址 页表 原理 虚拟内存 内存

https://www.cnblogs.com/binlovetech/p/17712761.html
https://yangjie2.github.io/2021/11/14/mmap原理与应用/

基础

物理世界中的实体或者逻辑实体在计算机中都用数据结构来表示,比如一个进程就用一个task_struct来表示。进程的虚拟内存用一个代表虚拟内存的节点组成的链表来表示,task_struct->mm就是这个链表的头。比如栈区、文件映射和匿名映射区(mmap)、堆区、BSS段、data段、text端都是一个链表节点。

阶段一:准备数据结构

  • 检查虚拟地址空间,寻找一段连续的空闲地址。
  • 申请一个vm_area_struct 初始化并插入mm链表中。

阶段二:调用内核空间的mmap函数(不同于用户空间函数),实现文件物理地址和进程虚拟地址的一一映射关系

建立虚拟内存和磁盘地址的映射,也就是页表的页项有效位标记为0(物理内存不在),页表中的地址项为磁盘地址。这时物理内存中没有任何文件内容。

阶段三:进程访问虚拟内存,引发缺页中断,将文件调入物理内存

进程读或写会触发缺页中断,操作系统根据页表中的磁盘地址将文件内容调入内存,页表项的有效位改为1,地址更换为物理地址。

标签:mmap,链表,地址,页表,原理,虚拟内存,内存
From: https://www.cnblogs.com/hellozhangjz/p/18357613

相关文章

  • Tornado 龙卷风混币原理
    项目背景Tornado(https://tornado.cash/)是以太坊隐私赛道著名的混币项目,其混币技术主要使用了 zk-SNARK零知识证明。1、关于zk-SNARK零知识证明的原理可以参见if(DAO)之前的文章:https://mirror.xyz/0xd05cFA28Eaf8B4eaFD8Cd86d33c6CeD1a1875417/X3qSOjObTknXQ_iGhD......
  • WebSockets:原理、握手及代码实现
    1.WebSockets原理WebSockets是HTML5标准的一部分,旨在为Web应用提供全双工通信能力。与传统的HTTP请求不同,WebSockets连接一旦建立,就可以在客户端和服务器之间自由传输数据,而不再需要每次通信都重新建立连接。工作流程:建立连接:客户端通过HTTP协议发起WebSocket握......
  • 【华为云MySQL技术专栏】MySQL 8.0事务提交原理解析!
    摘要:当多个引擎/节点同时访问和修改数据时,如何保证数据在各个引擎/节点之间的一致性成为了一项挑战。本文将深入探讨MySQL集群在保持数据一致性的解决方案。本文分享自华为云社区《【华为云MySQL技术专栏】MySQL8.0事务提交原理解析!》,作者:GaussDB数据库。 1.概述MySQL是一......
  • 索迪迈车载双目客流统计系统工作原理
          车载双目客流分析算法是整个系统的灵魂其运行在高性能数字信号处理器(TIDSP)中,每秒进行25帧的实时图像分析,客流统计处理算法嵌入式客流分析终端中的DSP处理器,实时采集视频图像,并检测运动目标的特征点(featurepoints),然后对特征点进行空域上的聚类(Cluster)和时域上......
  • uniapp中如何使用uni.canvasToTempFilePath方法上传Canvas内容为图片,并理解其工作原理
    1.主函数uni.canvasToTempFilePath({ canvasId:'canvasid', fileType:'png', quality:1,//图片质量 success(res){ uni.uploadFile({ url:that.baseUrl+'/file/upload',//后端接口地址 name:'file&......
  • 软件无线电系统 高速图像采集卡 设计原理图: 613-基于6UVPX C6678+XCVU9P的信号处理板
    基于6UVPXC6678+XCVU9P的信号处理板卡一、板卡概述      板卡基于6U VPX标准结构,包含一个C6678 DSP芯片,一个XCVU9P 高性能FPGA,双路HPC FMC。 二、处理板技术指标•  DSP处理器采用TI 8核处理器TMS320C6678;•  DSP 外挂一组64bit DDR3颗粒,总容量2GB,数据......
  • 为什么自动控制原理中要采用对数频率特性曲线(伯德图)进行绘制?
    什么是伯德图?伯德图是系统频率响应的一种图示方法。也称为开环对数频率特性曲线。可以根据伯德图系统频率的角度分析系统性能,包括稳定性,动态品质,稳态误差。伯德图分为两张图,幅频特性和相频特性。1.幅频特性图横坐标为lgw:实际工程中低频成分较多,采用此坐标形式可以扩展低频......
  • 人人都能搞定的大模型原理 - 神经网络
    ​人工智能的发展起步于1950年,期间经历了各种里程碑和变革,与此相关的神经网络技术也从最初的单层感知到复杂的层级和卷积神经网络一路创新和变革,不断推动人工智能领域的发展,直到 2022 年 ChatGPT 的问世,彻底引爆了大众的目光。人工智能技术经历了漫长的迭代过程,无论如何变革......
  • 24/8/11算法笔记AdaBoost多分类原理展示
    importnumpyasnpfromsklearn.ensembleimportAdaBoostClassifierfromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitfromsklearnimporttreeimportgraphviz加载数据X,y=datasets.load_iris(return_X_y=True)X_train,X_test......
  • 【Spring boot】自动装配原理
    什么是自动装配自动装配(Auto-Configuration)是SpringBoot框架的核心特点,通过扫描应用程序的classpath和依赖关系,自动配置和装配Spring应用程序所需的各种组件在传统的Spring应用程序中,开发者需要手动配置大量的bean,例如数据源、事务管理器、视图解析器等。这些配置过程繁琐而容......