什么是任务优先级
时下有很多嵌入式实时操作系统可供选择,这种操作系统一般都是支持优先级的抢占式操作系统。
它们的根本特点就是一旦某个高优先级的任务就绪就可以马上获得CPU资源得以运行。任务优先级的安排在这类型操作系统中非常关键,优先级安排不当,轻者让系统运行不够理想,重则完全失控。如果任务调度是基于优先级的,那么任务必须是可阻塞的。一个非阻塞的任务会使比它优先级低的任务永远得不到运行机会。在优先级的安排上,如果两个任务无任何关系,那么赋予那个运行时间短(从运行到阻塞)或者运行频率低的任务更高的优先级,这样会使整个系统中的任务的平均响应时间最短。对于单向任务间通信的两个任务,一般赋予接收消息或信号量的任务更高的优先级。双向通信的两个任务优先级可以互为高低。如果消息和信号量不是在任务运行前申请和初始化,那么切记把初始化放在先得以运行的那么任务中,否则会造成先运行的任务无法阻塞。在优先级安排的时候一既要合理使用消息、信号量等任务间通信又不能滥用,避免造成死锁。