编程接口指南

进程状态转换

具有严格实时约束的应用程序可能需要阻止将进程换出或换页到辅助存储器。下图说明了 UNIX 进程状态以及状态之间转换的简要概况。

图 3–2 进程状态转换图

 正在运行的进程可以通过抢占内存在内存中进入可运行状态,也可以在内存中进行休眠。内存中的进程可以交换。

活动进程通常处于图中的五种状态之一。箭头指示了进程状态如何进行变化。

当进程可以再次运行时,换页和交换都会造成延迟。对于具有严格的时间安排要求的进程而言,这种延迟是不可接受的。

为了避免交换延迟,实时进程永远不能进行交换,尽管某些实时进程可以进行换页。程序可以通过将其文本和数据锁入到主存储器中来阻止换页和交换。有关更多信息,请参见 memcntl(2) 手册页。可以锁定的内存量受限于已配置的内存量。另外,锁定过多内存可能会对未将文本和数据锁入内存的进程造成无法忍受的延迟。

实时进程与其他进程之间的性能权衡取决于局部需求。在某些系统中,可能需要进行进程锁定才能保证必需的实时响应。


注 –

有关实时应用程序延迟的信息,请参见分发延迟