主要内容

任务优先级和抢占

任务优先级将任务的重要性以及一组等待任务的执行顺序告知操作系统。通过设置任务的优先级任务管理器阻塞,需要对关键或时间敏感事件作出反应的任务可以抢占低优先级和后台任务。

任务管理器块执行率单调秩序。速率单调顺序要求处于抢占状态的静态优先级最高的任务立即抢占其他所有任务,进入运行状态。周期较短的计时器驱动任务具有较高的静态优先级。如果两个具有相同优先级的任务处于抢占状态,当没有其他正在运行的任务时,任务将按照先进先出(FIFO)的顺序执行。

中列出的每个事件驱动任务任务管理器块可以设置一个显式的执行优先级。计时器驱动的任务从模型的基本速率任务优先级继承其优先级。下面的示例显示了一对相互竞争的任务之间的交互。

高优先级任务抢占低优先级任务

此示例展示了任务管理器如何更改两个任务的状态,抢占低优先级任务以允许高优先级任务运行。

高优先级和低优先级任务管理器

下面的模型模拟一个具有高优先级和低优先级任务的软件应用程序。一个任务管理器块调度软件应用程序模型参考块内的任务子系统的执行。

低优先级、计时器驱动的任务计划每0.5秒运行一次,持续时间为0.2秒。高优先级,事件驱动,任务被安排在一个新的UDP数据包到达时运行,每1.1秒发生一次,需要0.5秒的任务持续时间。由于这些计时条件,低优先级任务将被抢占,以允许高优先级任务运行。

模拟显示任务抢占

单击Run按钮构建并运行模型。当模型完成运行时,打开仿真数据检查器以查看仿真的结果。选择高优先级和低优先级任务波形以查看任务抢占。

在时间1.0时检查仿真数据检查器,低优先级任务开始执行,直到时间1.1,被高优先级任务抢占。然后,低优先级任务将在1.7秒后运行到完成,超过应该在1.5秒后启动的低优先级任务的下一个实例。

另请参阅

相关的话题

Baidu
map