论文部分内容阅读
基于片上网络的多核系统具有低功耗、易于扩展、灵活性强等特点。为了能够在运行时对多核系统的通信和计算资源进行动态地管理,提高多核系统资源利用率,本文在已有的多核平台上基于多核编程模型设计并实现了一种低开销的任务迁移机制,并在此基础上将该任务迁移机制应用于多核系统的节点容错。本文设计并实现了一种低开销的任务迁移机制。任务迁移借助于MMPI并行编程模型中并行程序与任务映射无关的特点,采用更新任务映射表的方式完成任务的重新映射,并通过在uC/OS-II操作系统中传递任务的堆栈以及任务控制块实现任务状态信息在多核节点间的传递,在迁移的目的节点创建任务加载任务状态信息,使得任务迁移到另一节点后能够恢复原来的执行状态。该任务迁移机制不需要传递任务代码,并且任务状态的保存不需要迁移点。同时,为了保持任务迁移后仍然与其他任务保持正确的通信,本文针对不同种情况设计了不同的任务间通信策略,避免了任务迁移对任务间通信造成影响。随后,本文在任务迁移机制的基础上,将该任务迁移机制应用于节点容错。节点容错是通过使用冗余节点替换失效节点。在多核编程模型添加了虚拟拓扑层,负责虚拟拓扑到物理拓扑的转换。本文实现了一种分布式的任务迁移策略用来支持节点容错,即在任务执行过程中,各个运算节点都需要备份任务状态信息到冗余的节点,当节点失效时,任务能够从冗余节点根据上次备份的任务状态信息恢复,实现任务从失效节点到冗余节点的迁移。最后,本文对任务迁移机制和应用于节点容错的任务迁移策略进行了测试与评估。测试结果表明,由于该任务迁移机制不需要传递任务代码、不需要迁移点,因此任务迁移机制具有较低的迁移延时,并且能够及时响应任务迁移请求。同时,本文正确地在多核平台上实现了分布式任务迁移策略,实验结果得到,任务发送状态信息的间隔时间对任务迁移后的执行时间影响较大。