进程间通信概述
进程间通信包括: 1、数据传输,一个进程需要将其数据发送到另一个进程,发送的数据量在1字节到几米之间; 2、共享数据多个进程正在尝试操作共享数据。 通过一个过程修改数据,其他过程应该立即看到; 3、一个进程向另一个进程或组进程发送消息,通知他们发生了什么需要通知的事件; 4、资源共享,多个进程共享同一资源。 为此,内核必须提供锁定和同步机制。 5、过程控制。 一些进程希望完全控制另一个进程的执行。 例如,调试进程。 此时,控制进程希望阻止另一个进程中的所有陷阱和异常,并及时了解其状态的变化。
Linux进程之间的通信是从以下几个部分发展而来的。
初始UNIX进程间通信:包括管道、FIFO和信号。
基于System V的进程间通信,包括System V消息队列、System V信号量和System V共享内存。
基于套接字进程间通信。
基于POSIX的进程间通信:包括POSIX消息队列、POSIX信号、POSIX共享存储器。
在Linux上,与IPC相关的命令包括ipcs、ipcrm (释放IPC )、
IPCS命令是在Linux上显示进程间通信设备状态的工具。 已经知道,当系统进行进程间通信(IPC )时,可用的方案可以包括信号量、共享存储器、消息队列、管道、信号)套接字等形式[2]。 IPCS允许您查看共享内存、信号和消息队列的状态。
例如在CentOS6.0上运行ipcs
具体使用方法总结如下。
1、查看所有IPC设施
# ipcs -a
2、显示所有消息队列消息队列
# ipcs -q
3、显示所有信号量
# ipcs -s
4、显示所有共享内存
# ipcs -m
5、查看IPC设施详细信息
# ipcs -q -i id标识
id对应于shmid、semid、msgid等。 -q查看设备类型(队列)、信号量详细信息-s;查看共享内存使用情况-m。
6、显示IPC设施限制大小
# ipcs -m -l
-m对应设施类型,可选参数为-q、-m、-s。
7、查看IPC设施权限关系
# ipcs -c
# ipcs -m -c
# ipcs -q -c
# ipcs -s -c
8、显示最近访问IPC设施的进程ID。
# ipcs -p
# ipcs -m -p
# ipcs -q -p
9、显示IPC设施的最后操作时间
# ipcs -t
# ipcs -q -t
# ipcs -m -t
# ipcs -s -t
10、显示IPC设施的当前状态
# ipcs -u
Linux上的ipcs命令不支持UNIX上的-b,-o命令。 此外,由于UNIX不支持-l和-u命令,因此在编写跨平台脚本时必须注意此问题。
参考资料:
1、详细了解IPCS在Linux上的使用方法
2、Linux进程间通信
3、IPCS在Linux上的10种用法
4、Linux IPC总结
5、Linux IPC总结
转载于:https://www.cn blogs.com/coco wool/archive/2012/05/22/2513027.html