当前位置:网站首页>MMAP学习
MMAP学习
2022-07-05 21:34:00 【51CTO】
MMAP
虚拟进程地址空间(vm_area_struct)和虚拟内核地址空间(vm_struct)都映射到同一块物理内存空间。当Client端与Server端发送数据时,Client(作为数据发送端)先从自己的进程空间把IPC通信数据copy_from_user拷贝到内核空间,而Server端(作为数据接收端)与内核共享数据,不再需要拷贝数据,而是通过内存地址空间的偏移量,即可获悉内存地址,整个过程只发生一次内存拷贝。一般地做法,需要Client端进程空间拷贝到内核空间,再由内核空间拷贝到Server进程空间,会发生两次拷贝。
对于进程和内核虚拟地址映射到同一个物理内存的操作是发生在数据接收端,而数据发送端还是需要将用户态的数据复制到内核态。到此,为何不直接让发送端和接收端直接映射到同一个物理空间,那样就连一次复制的操作都不需要了,0次复制操作那就与Linux标准内核的共享内存的IPC机制没有区别了,对于共享内存虽然效率高,但是对于多进程的同步问题比较复杂,而管道/消息队列等IPC需要复制2两次,效率较低。
如下是大致流程图:
边栏推荐
- MMAP
- MySQL deep paging optimization with tens of millions of data, and online failure is rejected!
- [daily training -- Tencent select 50] 89 Gray code (only after seeing the solution of the problem)
- postgres 建立连接并删除记录
- 终端安全能力验证环境搭建和渗透测试记录
- SQL knowledge leak detection
- Zhang Lijun: penetrating uncertainty depends on four "invariants"
- LeetCode_哈希表_困难_149. 直线上最多的点数
- Recursive query of multi-level menu data
- SQL common syntax records
猜你喜欢
Interviewer: will concurrent programming practice meet? (detailed explanation of thread control operation)
Display DIN 4102-1 Class B1 fire test requirements
xlrd常见操作
Deployment of Jenkins under win7
DBeaver同时执行多条insert into报错处理
Golang(1)|从环境准备到快速上手
Why can't Chinese software companies produce products? Abandon the Internet after 00; Open source high-performance API gateway component of station B | weekly email exclusive to VIP members of Menon w
冯唐“春风十里不如你”数字藏品,7月8日登录希壤!
Longest swing sequence [greedy practice]
Clion configures Visual Studio (MSVC) and JOM multi-core compilation
随机推荐
int GetMonth( ) const throw( );后面的throw( )什么意思?
ArcGIS\QGIS无插件加载(无偏移)MapBox高清影像图
Parker driver maintenance COMPAX controller maintenance cpx0200h
@Validated basic parameter verification, grouping parameter verification and nested parameter verification
2022-07-03-CKA-粉丝反馈最新情况
xlrd常见操作
SQL common syntax records
Three components of openpyxl
Teach yourself to train pytorch model to Caffe (I)
Learning robots have no way to start? Let me show you the current hot research directions of robots
854. 相似度为 K 的字符串 BFS
JS common method encapsulation
Uni app Bluetooth communication
Realize the function of verifying whether the user has completed login when browsing the page
selenium 获取dom内验证码图片
Summary of data analysis steps
Get JS of the previous day (timestamp conversion)
Dictionary tree simple introductory question (actually blue question?)
Chapter 05_ Storage engine
Haas506 2.0 development tutorial - Alibaba cloud OTA - PAC firmware upgrade (only supports versions above 2.2)