主要内容

任务超支和对策

有限的处理系统中可用的资源,一个执行任务的实例可能无法在开始之前完成下一个任务实例。这个任务泛滥导致的开始下一个任务执行的实例被推迟。因此,下一个任务必须追赶避免再次泛滥。这个图显示了一个简化的执行两个任务:一个高优先级事件驱动任务和一个低优先级定时器驱动型可任务。

由于长时间执行的事件驱动任务,第一次执行的实例定时器驱动型可超支的开始下一个任务执行实例。这泛滥将第二个执行实例到追赶模式。

当任务被多次,执行积压可以开发的应用程序,可能会破坏系统。这些章节讨论典型的对策来减少任务超支的可能性或处理情况任务泛滥,防止执行积压。

提高任务执行的时间间隔

定时器驱动型可任务,减少超支的机会通过提供任务执行时间。提高任务执行时间减少可用,相当于增加了任务执行实例之间的时间。这个额外的时间提供了每个任务的执行实例运行完成的几率更大,即使在其他任务的存在。定时器驱动型可任务的速度可以调整任务管理器块通过设置参数。

减少任务执行的时间间隔在所有情况下都无法保证。这些情况包括:

  • 事件驱动任务,多个事件可以发生在同一时间,根据事件驱动任务的优先级。这种情况迫使其他任务泛滥由于缺乏资源。

  • 实时任务需求,定时器或事件驱动,必须回应最近的事件触发信号和新数据不管以前的任务实例完成。这种情况下修复任务执行的时间间隔值决定的设计要求。

在这些情况下,分配任务在多个处理器核心或允许任务放弃可以有利的根据设计要求。

跨多个处理器核心分配的任务

大多数现代嵌入式处理器提供多个核心任务可以执行的地方。通过分布在多个处理器核心任务,任务可以同时运行没有直接竞争处理资源和减少任务超支的机会。在SoC Blockset™,一个任务可以被设置为一个特定的处理器上运行的核心任务管理器块通过设置核心核心数量参数。更多信息的选择、执行、和可视化的任务在多个核心,明白了多核和核心执行可视化

下降超过任务

在一些设计,一个任务必须执行任务触发信号发生时系统的或最新的状态。如果是触发一个任务和一个新的任务触发发生时,可以删除或新实例下降了。后放弃执行任务,占领了未来的实例执行实例事件触发信号到达时开始。放弃任务时发生溢出,任务管理器块,使降低任务泛滥参数。

任务滴在模拟

这个例子展示了如何配置一个任务任务管理器块放弃当一个任务被发生在模拟。

任务泛滥没有下降

该模型模拟了在ARM处理器上运行的软件应用程序。任务管理器块时间表定时器驱动子系统的执行,在软件应用程序模型参考块。一块随机数模拟数据源,定时器驱动型可任务样本。

在这个模型中,0.6秒的任务持续时间超过任务的时期0.5秒导致任务泛滥。单击Run按钮来构建和运行模式。当模型结束运行时,检查员仿真数据显示了任务执行时间。

检查任务的执行时间后开始显示,每个任务实例从预期的延迟0.5秒的时间间隔的泛滥之前的任务。即使降低任务泛滥被设置为,不超过2的实例可以被执行的任务。所示Timer_Task_drop信号,额外的任务实例被自动删除。

任务泛滥成灾

使用相同的模型,而不是超过定时器驱动型可任务,任务滴下一个任务实例的开始0.5秒的时间间隔。打开任务管理器块对话框面具,并选择降低任务泛滥。再次运行模型。打开仿真数据检查查看任务执行和任务实例。

另请参阅

相关的话题