共享内存
wrhoylj
广西科技大学毕业
展开
-
system v信号量实现进程间共享内存同步机制---环形队列缓冲区
共享内存:上一篇文章已经介绍过shm共享内存和system v信号量机制,这里就不在重复介绍了。应用场景:进程间通讯方式有很多,其中最快的应该就是共享内存了,因为直接通过物理内存共享的方式进行通讯,所以速度是其他网络方式不可比的。但是没有一种同步机制管理这块内存的话,应用场景会很有限。下面我们就通过system v信号量的方式给共享内存加上同步机制,使之成为完善的进程间通讯功能。进程间共享环形队列模型—生产者、消费者模型:环形缓冲区数据图:关键代码如下:struct sembuf{原创 2020-10-17 22:17:17 · 508 阅读 · 0 评论 -
linux的两种共享内存方式---mmap和shmat区别
linux中的两种共享内存。一种是我们的IPC通信System V版本的共享内存,另外的一种就是我们今天提到的存储映射I/O(mmap函数)在说mmap之前我们先说一下普通的读写文件的原理,进程调用read或是write后会陷入内核,因为这两个函数都是系统调用,进入系统调用后,内核开始读写文件,假设内核在读取文件,内核首先把文件读入自己的内核空间,读完之后进程在内核回归用户态,内核把读入内核内存的数据再copy进入进程的用户态内存空间。实际上我们同一份文件内容相当于读了两次,先读入内核空间,再从内核空间读转载 2020-10-16 17:13:46 · 2548 阅读 · 0 评论