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

概观

这个例子显示了如何建模使用MATLAB SimEvents离散事件系统块顾客调度。该模型包括一个调度器块,可以模拟在多核系统与核,任务和互斥资源的任意数量。

该模型将调度器块配置为处理闭环控制系统的任务。仿真度量了这些控制系统的性能,并提供了运行时环境的度量,例如延迟和资源偶发事件。这些结果可以帮助控制系统的设计人员为其功能组件开发体系结构规范。

在MATLAB中创建自定义调度器

根模型的调度块被开发主要是作为一个MATLAB离散事件系统。MATLAB文件seExampleSchedulerClass包含相应的离散事件系统对象的实现。

这个例子车型控制器作为Simulink中导出的函数模型。金宝app控制器的执行被映射到计划定期执行软件的任务。任务可以被划分为多个分段(或子任务)。由于数据相关性,这些段必须以连续的顺序被执行。

调度块包括以下参数:

  • 核心数:供操作系统使用的核心数量。

  • 调度策略:选择“基于优先级”或“循环”作为操作系统的调度策略。优先级调度排序和执行任务的优先次序。循环赛政策允许任务同样轮流。

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

  • 任务时间:如何频繁每个任务被实例化执行。

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

  • 每个任务的段数:段(子任务)号任务了。

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

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

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

  • 每个任务使用的资源:细胞载体。向量的每个元素指示由任务对资源的使用。

比较不同的核心分配

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

调度器的时序图表示控制任务被同时由两个内核处理,与具有介质和平衡利用率芯。

相比之下,当只有一个核心分配,控制器1降解由于任务超支的表现(见Plant1)。时序图清楚地表明这样的任务超支,和显著增加等待时间。

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

比较不同的调度策略

此时,如果调度器切换到使用轮询调度策略,则控制系统的执行将有所不同。与前一种情况相比,在处理能力不变的情况下,工厂1变得稳定,而降低了工厂2的性能。这种变化是由于循环策略在所有任务之间平均分配处理能力。

比较不同的资源分配

现在让我们来配置调度回用两个核心,并探索不同的资源分配方案。我们添加可通过任务相互排斥的方式共享的资源。

正如时序图所示,虽然允许在两个内核中并发执行,但任务是按顺序处理的。只有一个核心在使用。这是因为任务必须等待所需的资源才能被处理。

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

对于具有其自身的资源的每个任务,任务并发处理。

相关的例子

也可以看看

|||||

相关的话题