主要内容

开发一个多核控制系统的自定义调度

概述

这个例子展示了如何使用SimEvents MATLAB离散事件系统块为客户调度程序建模。该模型包括一个Scheduler块,可以模拟具有任意数量的核、任务和互斥资源的多核系统。

该模型构成调度程序块到闭环控制系统的处理任务。模拟测量这些控制系统的性能,并提供运行时环境的指标,如延迟和资源的突发事件。这些结果可以帮助控制系统的设计开发它们的功能组件的建筑规格。

在MATLAB中创建自定义调度

根模型的Scheduler模块主要是作为MATLAB离散事件系统开发的。MATLAB文件seSchedulerClass包含相应的离散事件系统对象的实现。

该示例将控制器建模为Simulink导出的函数模型。金宝app控制器的执行映射到一个定时执行的软件任务。一个任务可以分成多个段(或子任务)。由于数据依赖关系,这些段必须按顺序执行。

Scheduler块包含以下参数:

  • 核心:操作系统可使用的内核数。

  • 调度策略:操作系统的调度策略可以选择“基于优先级”或“轮询”。基于优先级的调度按照优先级顺序对任务进行排序和执行。轮询策略允许任务平等地轮流执行。

  • 任务数:在这个操作系统的任务数量。

  • 任务时间:为执行而实例化每个任务的频率。

  • 任务优先级:每个任务的优先级(值越小优先级越高)。

  • 在每个任务的段数:一个任务拥有的段(子任务)数量。

  • 金宝app为每个段的Simulink功能:与任务的每个部分相关联的可执行文件。这些可执行文件由导出函数模型的Simulink函数表示。金宝app

  • 每个段的执行时间:任务段完成的时间,如果它在处理器上不间断地执行。

  • 互斥资源编号:操作系统的互斥资源个数。每次一个任务可以获取和使用资源。操作系统使用互斥等机制来管理这些资源。

  • 每个任务的资源使用情况:细胞向量。向量的每个元素表示任务对资源的使用情况。

比较不同的核心分配

调度程序块允许你指定内核的任意数量和探索如何影响系统性能。我们首先在两个内核已经被分配给执行两个控制任务的情况。具有足够的处理能力,两者的闭环控制系统响应于设定点的变化表现良好。

调度程序的时序图表明,控制任务由两个核同时处理,核的利用率适中且均衡。

相比之下,当只分配一个核心时,Controller1的性能会因为任务溢出而下降(参见Plant1)。时序图清楚地指出了这种任务超出,以及显著增加的延迟。

注意控制任务2的性能保持不变。这是因为调度应用基于优先级的策略,其中处理能力最大分配到高优先级任务。

不同调度策略的比较

在这一点上,如果计划程序切换到使用轮询调度策略,该控制系统执行不同。相比之前的情况,其中加工能力保持不变,工厂1变成稳定,降低厂2的性能为代价这一变化是由于一个事实,即循环策略均匀地分配所有任务之间的处理能力.

比较不同的资源分配

现在让我们重新配置调度程序以使用两个核心,并研究不同的资源分配方案。我们添加了一个可以被任务以互斥的方式共享的资源。

正如时序图所指出的,虽然并发执行被允许与两个芯,任务被以连续的方式进行处理。只有一个核心在使用中。这是因为一个任务必须等待所需的资源可以得到处理之前。

您可以通过分配更多的资源来消除这种资源偶然性。让我们配置调度程序块来使用2个资源,并允许一个任务有一个专用资源。

由于每个任务都有自己的资源,所以任务是并发处理的。

相关的例子

另请参阅

|||||

相关话题