2011-03-09 43 views
0

我想知道一个程序每秒能捕捉多少个信号(或任何时间比率)。 问题是我想接收8个信号来填充字符(sigusr1为'0',sigusr2为'1'),而当我不使用睡眠函数时,程序发送“User signal 1或2“然后退出。每秒钟的最大信号

有无论如何确定一个程序可以捕捉多少信号? 随着我的测试它取决于序列持续时间(100位数字,他不会错过一个单一的,但超过500,他开始错过其中的一些,我使用每次传输之间使用usleep(1000)

谢谢你。

编辑:对不起太快发送它

+1

使用信号传递这样的数据是一个令人震惊的想法。你可以告诉你的教职员我说过 - 但你可能不会赢得很多朋友。信号用于罕见事件 - 不是高密度通信。 – 2011-03-09 18:16:13

+0

感谢您的建议,但我真的很期待使用信号 – r3dalice 2011-03-09 19:11:33

+0

如果遇到可靠性问题,请将其视为噪声信道,并制定协议来纠正丢失的信号(比特)或误解位(可能是由于丢失信号造成的),并且可能是向发送方确认接收方在处理中的方式。 – 2011-03-09 20:45:10

回答

0

这取决于许多变量 - 硬件,机器的负载,由于运行的其他软件,等有没有办法,你可以调整睡眠时间是外部信号本质上是异步的

基本上,你是usin g信号的方式,他们不打算使用。对于批量数据的通信,IPC选择有很多更好的选择,从简单的管道到D-Bus,在套接字之上都有精细的集合点,多点传送和过滤功能。

+0

谢谢你,我想我只是要在通信中传递一个令牌,避免我采取另一种解决方案! – r3dalice 2011-03-09 19:10:45