共享内存原理和实现

实现原理

实现函数

1,ftok--shmget--shmat--shmdt

shmget用于分配映射物理内存的虚拟内存。

怎么保证不同进程访问同一块物理内存呢

key_t ftok(const char *pathname, int proj_id);

ftok的第一个参数是一个文件,只要使用同一个文件进行映射,不同进程就可以访问同一块物理内存。mmap也一样。

2,mmap--mummap

映射的物理是不是调用函数的时候就分配了

不是的,映射只是确定用于映射物理内存的虚拟内存,当程序真正使用到物理内存时才真的映射物理内存。

这个共享的内存是虚拟内存还是物理内存

相关推荐
liu****18 小时前
LangChain-AI应用开发框架(一)
c++·python·langchain·本地部署大模型
承渊政道18 小时前
【优选算法】(实战剖析链表核心操作技巧)
开发语言·数据结构·c++·vscode·学习·算法·链表
代码改善世界18 小时前
【C++初阶】string类(二):常用接口全解析
开发语言·c++
stolentime18 小时前
树套树+标记永久化:[POI 2006] TET-Tetris 3D&&SPOJ1741 TETRIS3D - Tetris 3D题解
c++·算法·线段树·树套树·标记永久化
江公望18 小时前
GNU C语句表达式,10分钟讲清楚
c语言·开发语言·c++
初中就开始混世的大魔王18 小时前
3.2 DDS 层-Domain
开发语言·c++·中间件
sdm07042718 小时前
Linux-库制作与原理
linux·c++·操作系统
Yu_Lijing18 小时前
基于C++的《Head First设计模式》笔记——访问者模式
c++·笔记·设计模式
计算机安禾19 小时前
【数据结构与算法】第20篇:二叉树的链式存储与四种遍历(前序、中序、后序、层序)
c语言·开发语言·数据结构·c++·学习·算法·visual studio
顶点多余19 小时前
POSIX信号量+生产消费模型应用+环形缓冲区实现
linux·c++