建模多任务执行

多任务和Pseudomultitasking模式

当周期性任务在多任务模式下执行,在默认情况下以最快的采样率块由任务具有最高优先级执行,下一最快块由下一个更高优先级的任务执行,等等。在高优先级任务的处理之间的可用时间用于处理低优先级任务。这导致高效的执行程序。

其中任务是异步的,而不是周期性的,也未必是采样率和任务优先级之间的关系;具有最高优先级的任务不需要拥有最快的采样率。您可以使用指定的异步任务优先级异步中断任务同步块。您可以切换的优先级是什么数字意味着通过选择或清算模式配置参数的意义优先级较高的值表示较高的优先级任务

在多任务环境中(也就是下实时操作系统),您可以定义不同的任务,并为它们分配优先级。对于裸机目标硬件(即不实时操作系统存在),则不能创建独立的任务。然而,生成的应用程序模块实现什么是有效利用重叠中断,伴随着编程上下文切换的多任务执行的方案。

这意味着,当另一个中断正在进行中,可能会发生中断。当发生这种情况时,当前中断被抢占,浮点单元(FPU)上下文被保存,并且较高优先级的中断执行它的更高的优先级(即,更快的采样率)的代码。一旦完成,控制返回到抢先ISR。

下一个附图示出了如何在多速率系统中的任务的定时是由码发生器在多任务,pseudomultitasking和单任务环境处理。

下图显示了如何重叠的中断被用来实现pseudomultitasking。在这种情况下,中断0不会返回,直到中断1,2,和3之后。

建立多任务执行程序

要使用多任务执行,选择模型配置参数对待每个离散速率作为单独的任务。此参数仅如果设置求解类型固定步长汽车模式结果在多任务环境中,如果您的模型有两个或两个以上不同的采样时间。具有连续和在单任务模式中,如果固定步长大小等于离散采样时间的离散抽样时间运行的模型。

执行多任务模式

在的情况下以一定的速率的模型执行的连续部分是从离散的部分不同,或者一个模型具有不同的采样率块,所述的Simulink万博1manbetx®发动机受让人每个块任务标识符TID)的块与任务关联起来,在该块的采样率执行。

您可以设置采样率和其上的约束求解模型配置参数对话框中的窗格。要生成代码,请选择固定步长为求解类型。有一定的限制的采样率,您可以使用:

  • 的块的采样速率必须是所述底座的整数倍(即,最快)的采样周期。

  • 当您设置模型配置参数定期采样时间约束不受约束中,基础采样周期由参数的设置决定固定步长

  • 当您设置参数定期采样时间约束规定中,基础速率的固定步长是指定为参数的采样时间矩阵的第一元素采样时间特性。该求解从示例模型窗格rtwdemo_mrmtbb示出了一个例子。

  • 连续块通过使用积分算法执行,在基部的采样率运行。该基地采样周期模型利率的最大公约数,只有当你设置模式配置参数定期采样时间约束无约束和参数固定步长汽车

  • 该模型的连续和离散部分可以在仅当所述离散部分在相同或执行的更慢的速率比连续部和是基本取样率的整数倍不同的速率执行。

多任务执行

这个例子探讨如何在实时和仿真一个简单的多速率模式执行,使用固定步长求解器。它认为在这两个单任务和多任务模式操作中,如通过设置模型配置参数确定对待每个离散速率作为单独的任务

示例模型示于下图。的讨论指的是模型A到F的六个块,如标记的框图。

块的执行顺序(在每个块中的右上方所示)已经被强制进入由到块分配较高的优先级显示的顺序F,E和D中示出的顺序是该模型中的一个可能的有效执行排序。欲了解更多信息,请参阅在动力系统仿真阶段(万博1manbetxSIMULINK)。

的执行顺序是由块之间的数据依赖性来确定。在实时系统中,执行顺序确定其中的块执行一个给定的时间间隔或任务中的顺序。这个讨论中,将模型的执行顺序为给定的,因为它涉及块计算的分配任务,任务执行的调度。

注意

本节中的讨论和时序图基于这样的速率转变块在默认(被保护)模式中使用的,与块参数的假设保证数据传输过程中数据的完整性确保确定性数据传输(最大延时)

本实施例中考虑了前述模型的执行时模型配置参数任务模式设定为多任务处理。块计算是下两个任务执行时,通过率优先:

  • 较慢的任务,它得到了较低的优先级,计划运行的每一秒。这就是所谓的1秒任务

  • 更快的任务,它可以获取更高的优先级,调度运行每秒10次。这就是所谓的0.1秒任务。0.1第二任务能够抢占1秒任务。

下表显示,对于模型中的每个块,执行顺序,该任务在其下块运行,并且所述块是否具有输出或更新计算。块A和B不具备离散状态,因此没有更新计算。

在多任务执行模块的任务分配


(在执行顺序)

任务

产量

更新

Ë

0.1秒任务

ÿ

ÿ

F

0.1秒任务

ÿ

ÿ

d

的速率转换块使用基于端口的采样时间。
输出在低于0.1第二任务的输出端口采样时间中运行。
更新在1秒以内的任务输入端口采样时间运行。
对于基于端口的采样时间的更多信息,请参阅参考模型样品时报(万博1manbetxSIMULINK)。

ÿ

ÿ

一个

0.1秒任务

ÿ

ñ

的速率转换块使用基于端口的采样时间。
输出在低于0.1第二任务的输出端口采样时间中运行。
对于基于端口的采样时间的更多信息,请参阅参考模型样品时报(万博1manbetxSIMULINK)。

ÿ

ñ

C

1秒任务

ÿ

ÿ

实时多任务执行

下图显示的计算在调度多任务处理当生成代码被部署在实时系统求解器模式。将所生成的程序在实时运行示出作为根据从10Hz的定时器中断的控制两个任务。

模拟多任务执行

下图显示了同一型号的Simulink中执行,在万博1manbetx多任务处理求解模式。在这种情况下,发动机的Simulin万博1manbetxk运行在执行的一个线程的块,模拟多任务处理。不发生抢占。

相关话题