浅谈共享内存与信号的互用
来源:互联网 发布:西门子plc s7编程软件 编辑:程序博客网 时间:2024/06/07 04:09
作者:曹冬洋,华清远见嵌入式学院讲师。
共享内存是进程间通信(IPC)的一种。因为进程在使用共享内存时,可以直接读写内存,不需要任何数据拷贝,所以它的效率是最高的。关于共享内存是内核专门留出来的一块内存,这段内存可以让访问的进程映射到自己的私有地址空间,从而可以操作共享内存。 共享内存可以让不同的进程来映射地址,从而实现了进程之间的通信。
多个程序都来操作共享内存,需要一种同步机制,下面来介绍信号同步的机制。
共享内存的实现分为三步:第一步是创建共享内存,用的函数是shmget()函数;第二步是映射共享内存,用的函数是shmat();最后一步是撤销映射,用的函数是shmdt()。
建立好共享内存后,我是用信号来实现同步机制的,当然也可以用信号量等其他的。 使用信号需要了解kill()信号发送函数和signal()捕捉信号函数。首先kill函数需要知道对方进程的进程号,所以第一步就是获得对方的进程号,可以通过共享内存获得。然后获得自己的进程号再通过共享内存发给对方。
这样当一个进程操作完以后,就可以发信号给另一个进程,实现了进程之间的同步。
更多免费资料,尽在华清远见嵌入式学院免费课堂:http://www.embedu.org/lecture/
- 浅谈共享内存与信号的互用
- 信号与共享内存函数库
- 非亲缘进程间的共享内存与信号通信
- 非亲缘进程间的共享内存与信号通信
- [转]PHP 信号与共享内存函数库
- [转]PHP 信号与共享内存函数库
- PHP 共享内存使用与信号控制
- 共享内存和信号
- 共享内存和信号
- 浅谈 Linux下的 共享内存
- PHP 信号与共享内存(两个类)-1
- 信号通信之共享内存
- 信号处理和共享内存
- 一个包含了信号、信号量、共享内存的例子
- linux操作系统编程——共享内存的读写(采用信号机制进行同步互斥)
- 信号机制、共享内存和消息队列
- 信号机制、共享内存和消息队列
- 管道/FIFO/共享内存/消息队列/信号
- C++ 年、月、天数……
- Java 实现各种排序算法并测试排序效率
- 递归经典初级题目--汉诺塔
- Java内存泄漏
- 自定义MFC打开/保存对话框的扩展名
- 浅谈共享内存与信号的互用
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- 英语练习90 What's your type
- SqlServer随笔——执行带输入输出参数的存储过程
- 偷偷告诉你,我们是朋友
- 个人所得税计算器
- 怎样让一个单选按钮(radio)不可用
- poj_1083_Moving Tables
- JAVA SWING 台球收费系统 设置台球桌数量