共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
Zenova EdgeOS12 分钟前
C++ 工业边缘 Boost.Asio 高级实战
开发语言·c++·边缘计算·工业网关
小小龙学IT13 分钟前
C++ std::chrono 时间库深度解析:从 duration 模板到 C++20 日历与时区
linux·c++·c++20
nike0good2 小时前
CF 126B(Password-z algorithm/exkmp)
开发语言·c++·算法
01_ice2 小时前
C++入门基础
c++
神仙别闹2 小时前
基于C++ MFC RSA 实现加密程序
开发语言·c++·mfc
Yzzz-F3 小时前
CF2023D
c++·算法·dp
Mr.Lu ‍3 小时前
C++开发,使用openCV API对图片进行压缩
开发语言·c++·opencv
大鹏的NLP博客3 小时前
ONNX Runtime CUDA 推理优化实战:破解 C++ 比 Python 慢 28 倍的假象
c++·onnx·推理优化
HugoStudio_SWAN4 小时前
【按键反馈】C++ 实现键盘烟花秀
开发语言·c++·学习·程序人生
间歇性努力持续性发呆的野生快乐选手4 小时前
二分模板(整型,浮点型)
数据结构·c++·算法