Chinaunix

标题: 关于ipc---进程间信号量通信的问题? [打印本页]

作者: fishmanno1    时间: 2003-07-16 10:10
标题: 关于ipc---进程间信号量通信的问题?
进程a放信息,进程b取信息,a之间b 异步通信。
条件:
1、进程a放(put)信息时,进程b等待a放完之后,才能取信息。
2、进程b取信息时,进程a等待b取完之后,才能放(put)信息。
3、进程a不放(put)信息时,进程b可以连续取信息。
4、进程b不取信息时,进程a可以连续放(put)信息。

请问通过semphore如何实现?
作者: sunlan    时间: 2003-07-16 13:41
标题: 关于ipc---进程间信号量通信的问题?
使用两个信号灯,一个用于表示a写,另一个表示b读。
作者: renguoh    时间: 2003-07-16 17:59
标题: 关于ipc---进程间信号量通信的问题?
可以利用管道,因为管道的读写是阻塞的,一个用于读,一个用于写
作者: 蓝色键盘    时间: 2003-07-17 15:36
标题: 关于ipc---进程间信号量通信的问题?
类似于生产者消费者问题,看OS的熟,几乎市面上的书中都讨论了这个问题。

但是楼主描述的异步是不准确的
作者: houhuaw    时间: 2003-07-18 10:09
标题: 关于ipc---进程间信号量通信的问题?
最基本的生产者消费者问题,若是用共享内存考虑用基于内存的信号灯,要不就用有名信号灯。
作者: unicorns    时间: 2003-07-18 10:18
标题: 关于ipc---进程间信号量通信的问题?
semphore提供的不是原子操作吗?
我没用过,不会那么土吧。

如果是原子操作的话,一个就够了
如果不是原子操作,那和变量有什么区别,任何一本讲OS的书上都有
现成的算法,最有名的是两个。
作者: KerryJava    时间: 2008-06-27 21:40
用信号量实现进程通信的方法有:
管程。
屏障。
消息传递。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2