共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
盐焗鹌鹑蛋22 分钟前
【C++】继承
开发语言·c++
会周易的程序员1 小时前
使用 pybind11 封装 C++ 日志库 microLog 为 Python 模块
java·c++·python·物联网·架构·日志·aiot
WZF-Sang1 小时前
网络基础——2
服务器·网络·c++·学习·网络编程·php
-西门吹雪3 小时前
现代C++ 并发编程-学习指南
java·jvm·c++
aaPIXa6224 小时前
C++ TensorRT Edge-LLM 边缘推理框架:从原理到实战
开发语言·c++·edge
nianniannnn6 小时前
c++复习自存--标准模板库STL
开发语言·c++·windows
努力努力再努力wz6 小时前
【高性能网络库与HTTP Server系列】:基于主从 Reactor 模型实现高性能 C++ 网络库与 HTTP Server
开发语言·网络·数据结构·数据库·c++·网络协议·http
Robot_Nav6 小时前
C++ 面试常问问题汇总:基础语法、面向对象、STL、多线程与设计模式
c++·设计模式·面试
一拳一个呆瓜7 小时前
【STL】iostream 编程:使用插入运算符并控制格式
c++·stl
盐焗鹌鹑蛋7 小时前
【C++】二叉搜索树
c++