模拟调度程序的多芯控制系统
概述
这个例子展示了如何使用SimEvents模型的任务调度控制应用程序®块。SimEvents扩展模型®与能力模金宝app型和模拟一个实时系统的体系结构组件。
块的顶级模型包括两个方面:
功能组件包括两个闭环系统。都有一个比例控制器操作工厂。
体系结构组件包括建模SimEvents块的任务和调度程序控制系统。
建模任务和调度程序
这个示例模型控制器作为模型导出的函数模型。金宝app它映射执行控制器软件操作系统定期安排和执行的任务。一个任务可以分为多个部分(或子任务)。由于数据依赖关系,这些部门必须按先后顺序执行。
任务指定以下参数:
ID:唯一标识符的一个任务。
期:如何经常执行的任务实例化。
优先级:任务的优先级(较小的值表示更高的优先级)。
列表可运行段(功能):可执行文件与每个部分的任务。这些可执行文件都是由一个导出的函数模型的仿真软件的功能。金宝app
段执行时间:完成任务段的时间,如果是在一个处理器上执行而不中断。
每一段需要磁盘i / o资源:是否一段mutex-protected的任务需要使用共享资源(硬盘)。
例如,块任务2指定第二控制器(块Controller2)。任务包括两个部分,“t2_run”和“t2_write”seSwcController2建模为仿真软件功能模型。金宝app在这些领域,需要使用“t2_write”mutex-protected共享资源。
操作系统的调度程序是模仿以下组件:
任务创建:块任务1和任务2创建任务和管理任务。SimEvents实体代表一个任务的实例。任务的性质(比如其优先级)和实体属性建模。
任务队列:任务实例化后,加入一个现成的任务队列,队列模型的实体块操作系统任务队列。模拟无优先的基于优先级的调度策略,策略队列块被配置为taskPriority任务的属性。
CPU:处理器系统是模拟作为一个实体服务器的CPU。它接受实体从操作系统任务队列的实体和过程持续时间作为指定的任务段的执行时间参数。结束时的延迟,这个任务的相应仿真软件功能段,作为一个块的服务完成行动的一部分。金宝app
锁定/解锁互斥:前一个任务段进入块CPU时,它必须在前面的锁获取所需的资源互斥锁块。任务段完成后,退出块CPU、解锁的资源释放互斥锁块。
管理任务状态:块的面具下任务1和任务2管理运行时状态的任务。在完成一个任务,如果任务后续部分执行,任务路由回操作系统任务队列。否则,这个任务实例完成并丢弃。
并显示结果
块CPU配置了两个核心。模拟模型生成下面的甘特图。
更高优先级的任务,任务2(红酒吧),将核心1 (y = 1)。
低优先级的任务,任务1(蓝色酒吧),定于酷睿2 (y = 2)。
任务2的第二段使用互斥锁DiskLock。绿色条指示用法(y = 3)。
探索模型
改变以下参数,探索任务的时间表和控制器性能变化与配置建筑参数。
在块CPU、配置参数能力改变内核的数量。
在任务1和任务2块,配置参数等改变任务和优先级的规范。
例如,如果我们改变需要为每个部分磁盘i / o资源任务1块的参数(0 0 1),控制器1的t1_write段必须获得互斥DiskLock才能开始运行。模拟生成一个甘特图,说明了这一变化。
两个任务都使用互斥DiskLock的部分,绿色的酒吧(y = 3)。
任务1的第三段现在必须以串行方式执行任务的第二段2(见y = 1),因为两个段共享互斥锁DiskLock。
相关的例子
另请参阅
实体发电机|实体服务器|队列|资源池|资源收购方|资源发布人