当前位置:嗨网首页>书籍在线阅读

22-关于实时进程的注意事项

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.6.7 关于实时进程的注意事项

由于实时进程的本质,开发者在开发和调试这类程序时应该特别慎重。如果一个实时程序走极端,系统可能会失去响应。在实时程序中,任何CPU约束型的循环——或者是任何不会阻塞的代码——都会一直运行,直到有更高优先级的实时进程就绪。

因此,设计实时程序需要非常慎重。这些实时程序优先级很高,很容易导致系统崩溃。以下是关于实时进程的一些技巧和注意事项:

  • 切记,任何CPU约束型的循环,如果没有中断或者被高优先级进程打断,在完成前都会一直运行。如果该循环是个无限循环,系统就会失去响应。
  • 因为实时进程运行会占有系统的所有资源,所以在设计时需要特别谨慎,不要使得系统中其他程序由于轮不上处理器周期而被“饿死”。
  • 注意避免“忙等待(busy waiting)”。如果一个实时进程忙等待一个较低优先级进程占有的资源,该实时进程会永远处于忙等待状态。
  • 当开发实时程序时,应该确保一直开着一个终端,以比正在开发的程序更高优先级的方式运行。这样,在紧急情况下,终端会保持响应,允许你杀死失控的实时进程。(当终端空闲等待键盘输入时,除非必要,它不会干扰其他实时进程。)

util-linux工具包中的实用工具chrt可以很容易获取和设置其他实时进程的属性。该工具可以很方便地在实时调度策略下启动任意程序,比如之前提到的终端,或者改变已有应用的实时进程优先级。