QNX手册学习笔记——IPC(3)

论坛 期权论坛 脚本     
匿名技术用户   2021-1-7 09:43   162   0
读QNX_Neurino_RTOS_System_Architecture 的Interprocess Communcation章的Events节。
QNX Neutrino提供了event处理的子集。POSIX和他的实时拓展接口提供了许多异步处理方法。对于QNX的内核而言额外地提供了一些如pulses的通知技术。QNX将event机制封装为一个子集,从一定意义上来讲,实现了应用程序与各种通知技术的解耦。举例来讲,应用程序不关注底层的通知技术究竟是POSIX实时信号队列还是UNIX信号队列。
一个正在执行的线程可能遇到三种事件源:
  • 其他线程调用的MsgDeliverEvent(软)
  • 中断处理(硬)
  • 计时器到时(硬)
事件(event)的种类也各式各样,下一节讲到的signal便是其中一种。QNX并不是在server端线程根据不同的事件种类选用不同的通知技术,通知客户端(client)线程。而是client端将信号事件封装为小甜饼,发送给server端,server端不立即处理,而是过一段时间需要通知client时,将小甜饼反馈给client。这样将server端对event的处理转嫁给了client。如下图所示。
QNX手册学习笔记——IPC(3)
通过ionotify函数可以实现Client的异步传输,即当读取文件时,客户端请求文件数据等耗时的操作时,不需要干等,而是可以异步地继续执行其他的操作。(此处有疑惑,下一节调用SignalWaitInfo等待阻塞的特殊信号,需要同步,貌似不支持这种异步操作)。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP