为什么在QNX中接收到消息后进程的优先级会发生变化?



我编写了一个简单的C程序,并像往常一样使用gcc进行编译。启动时,默认优先级为10。使用sched_setparam() API,我将进程的优先级提高到100。我注意到,当另一个优先级为10的进程通过MsgSend() API向第一个进程发送消息时,第一个进程的优先级会回到10 !

我想知道为什么会发生这种情况?在其他posix兼容的操作系统中是否有类似的行为?

请看这个。http://www.qnx.com/developers/docs/6.4.0/neutrino/sys_arch/ipc.html Priority_inheritance_messages

这种行为称为"优先级继承"。这种消息驱动的优先级继承避免了优先级反转问题。

相关内容

  • 没有找到相关文章

最新更新