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

Linux/AndroidOS中进程间的通信线程间的同步 - 虚拟内存操作

前言

介绍在进程的虚拟地址空间上执行操作的各个系统调用。

  • mprotect()系统调用修改一块虚拟内存区域上的保护信息。
  • mlock()和 mlockall()系统调用将一块虚拟内存区域锁进物理内存,从而防止它被交换出去。
  • mincore()系统调用让一个进程能够确定一块虚拟内存区域中的分页是否驻留在物理内存中。
  • madvise()系统调用让一个进程能够将其对虚拟内存区域的使用模式报告给内核。
  • 此文章介绍的技术实际上与 IPC 一点关系也没有,之所以放在本文章里是因为有时候将它们与共享内存结合起来使用。

1 改变内存保护:mprotect()

2 内存锁:mlock()和 mlockatt()

3 确定内存驻留性:mincore()

4 建议后续的内存使用模式:madvise()

http://www.xdnf.cn/news/4202.html

相关文章:

  • 20250506让NanoPi NEO core开发板使用Ubuntu core16.04系统的TF卡启动
  • 德尔菲法和层次分析法是什么
  • 基于STM32、HAL库的W25Q32JVSSIQ NOR FLASH存储器驱动应用程序设计
  • 【日撸 Java 三百行】Day 3(注释,基本if语句,函数调用)
  • Vue 2.0 详解全教程(含 Axios 封装 + 路由守卫 + 实战进阶)
  • OpenCV 图形API(78)图像与通道拼接函数-----调整图像大小的函数resize()
  • C# 方法(值参数和引用参数)
  • mysql 如何查询数据库链接日志
  • Spring 中四种常见初始化方法,对比 static {} 和 @PostConstruct 在并发,Spring 加载顺序大致为: JVM 加载类
  • 生成了一个AI算法
  • 网络安全的范式革命:从被动防御到 AI 驱动的主动对抗
  • 基于大模型的自然临产阴道分娩全流程预测与方案研究报告
  • 开个帖子记录一下自己学spring源码的过程
  • Spyglass:官方Hands-on Training(三)
  • 数据中台架构设计
  • c++类【发展】
  • 【全面解析】Poco C++ Libraries 模块详解与使用指南
  • UE5 使用插件进行Audio2face和UE5的实时链接并实时输出嘴型
  • 多模态训练与微调
  • 突破v0.dev对话限制的两种方法
  • k8s node 报IPVS no destination available
  • 19.第二阶段x64游戏实战-vector容器
  • 二叉树的最大深度(简单)
  • 标题:基于自适应阈值与K-means聚类的图像行列排序与拼接处理
  • LintCode第484题-交换数组两个元素,第9题-Fizz Buzz 问题,第46题-主元素,第50题数组剔除元素后的乘积
  • 超表面加工流程
  • 从零开始了解数据采集(二十二)——塑胶制品行业趋势分析案例
  • (leetcode) 力扣100 6.三数之和 (双指针)
  • 卷积神经网络的简单实战项目
  • 大模型——GraphRAG基于知识图谱+大模型技术构建的AI知识库系统