Linux应用程序中2个进程如何同步?
Linux应用程序中2个进程如何同步?
平台:ARM9-s3c2410
系统:嵌入式linux2.4.18
在应用程序中我创建了2个进程:
一,uard_read
线程中通过调用驱动,循环读取uart的数据(驱动中通过DMA读取数据, 速度很快)
然后将数据不断放到一个环形缓冲区(N个buf)。
二,data_break
用来解析环形缓冲区每个buf里的数据。
data_break中解析1个buf的数据的时间比uard_read中存放完1个buf数据要短很多。
希望实现:
我希望在uard_read中,读取数据存放完1个buf后,
就类似中断一个通知data_break继续执行来解析这个buf里面的数据包。
处理完后,就睡眠了。而不是循环去查询状态。
请问在linux下如何来实现上面的功能呢?
软中断能够实现吗,软中断时,软中断能够多块地响应呢?
data_break的功能就放到软中断的回调函数里面去做了。
还有别的更好的方法吗? 类似驱动开发中的通过信号量同步一样?
感谢高手指点...