Maj*_*nko 5 c linux shared-memory
我试图找到一种方法来同步两个共享数据的进程.
基本上我有两个使用共享内存链接的进程.我需要进程A在共享内存区域中设置一些数据,然后进程B读取该数据并对其进行操作.
我期待的事件顺序是:
换句话说,B将阻塞直到它得到"1"信号,得到数据,然后再次阻塞,直到该信号变为"0".
我已经设法使用纯共享内存来模拟它,但是我使用while循环消耗100%的CPU时间,或者我使用带有nanosleep的while循环,有时会错过某些信号.
我已经尝试过使用信号量,但我只能找到一种方法来等待零,而不是一个,并尝试使用两个信号量只是没有用.我不认为信号量是要走的路.
将有许多进程都访问相同的共享内存区域,并且在修改共享内存时需要通知所有进程.
它基本上试图模拟硬件数据和控制总线,其中事件是边缘而不是电平触发.这是我感兴趣的国家之间的转变,而不是国家本身.
那么,任何想法或想法?