bsp; 脱离访问关系. 消息队列中的某条消息被读后即从队列中删除.
消息队列的访问具备锁机制处理,即一个进程在访问时另一个进程
不能访问.
操作时要注意系统资源和效率.
在权限允许时,消息队列的信息传递是双向的.
. 共享内存
通过共享内存key值定义和生成共享内存.
任何进程只要有访问权限并知道key即可访问共享内存.
共享内存为内存块方式的数据段.
共享内存中的数据长度可为系统参数限制内的任何长度.
共享内存的访问同数组的访问方式相同.
在取得共享内存标识符将共享内存与进程数据段联接后即可开始对
之进行读写操作,在所有操作完成之后再做共享内存和进程数据
段脱离操作,才完成全部共享内存访问过程.
共享内存中的数据不会因数据被进程读取后消失.
共享内存的访问不具备锁机制处理,即多个进程可能同时访问同一
个共享内存的同一个数据单元.
共享内存的使用最好和信号量一起操作,以具备锁机制,保证数据的
一致.
在权限允许时,共享内存的信息传递是双向的.
. 信号量
用于生成锁机制,避免发生数据不一致.
没有其他的数据信息.
不需要有父子关系或兄弟关系.
. 信号
信号由系统进行定义.
信号的发送只要有权限即可进行.
信号是一个事件发生的信息标志,不带有其它信息.
信号不具备数据块.
信号的处理可由用户自己定义.
信号可能由用户进程,操作系统(软件或硬件原因)等发出.
有一些信号是不可被屏蔽的.
信号中断的是系统调用级的函数.
信号的信息传递是单向的.
. 管道
做为系统的特殊设备文件,可以是内存方式的,也可以是外存方式的.
管道的传输一般是单向的,即一个管道一向,若两个进程要做双向传
输则需要2个管道.管道生成时即有两端,一端为读,一端为写,两个
进程要协调好,一个进程从读方读,另一个进程向写方写.
管道的读写使用流设备的读写函数,即:read(),write.
管道的传输方式为FIFO,流方式的.不象消息队列可以按类型读取.
* 有名管道
一般为系统特殊文件方式,使用的进程之间不一定要有父子关系
或兄弟关系.
* 无名管道
一般为内存方式,使用的进程之间一定要有父子关系或兄弟关系.
. 文件
文件是最简单的进程间通讯方式,使用外部存贮器为中介.
操作麻烦,定位困难.
保密程度低.
容易出现数据不一致问题.
占用硬盘空间.
只要有权限并知道文件名,任何进程都可对之操作.
* 特殊处理
为避免出现保密问题,在打开文件,取得