论文部分内容阅读
时间可预测系统要求系统中的计算任务在有限的时间内必须完成,也就是说要求系统有可预测的硬件延迟、可预测的软件系统以及可预测的程序响应时间。Minicore是基于服务体执行流模型的新型微内核操作系统,它有效的将操作系统中的存储模型和运行模型相分离。以强实时系统为目标,Minicore的可预测性是它需要实现的一个重要特征。时间可预测系统需要通过精心的设计和实现以达到其对时间的要求。这就意味着需要对操作系统代码模块进行离线分析,通过分析证明操作系统是满足可预测性的时间需求,静态分析操作系统的时间可预测性是一个很有挑战性的问题,因为每一个对时间属性的要求都会自上而下的传播到系统的各个模块,包括处理器、指令集架构、编程语言、编译支持、运行时系统、调度以及通信等。微内核的高度模块化的设计使Minicore对服务体(Minicore的基本单元)间的消息通信的依赖度极高,于是对于Minicore的时间可预测性分析也无可避免的依赖于通信模块的时间可预测性。通信模块支持执行流在服务体之间流动,请求特定的服务,完成任务。系统中唯一的消息发送原语是sendmsg,提供包括同步连续、同步分离和异步这三种消息通信方式。本文的工作是探究基于服务体执行流模型的微内核操作系统Minicore的时间可预测性问题。其中第一项工作是实现操作系统的消息通信模块,并定义配置相关的时间可预测性(CIPr)作为评估消息通信时间可预测性的指标。CIPr的计算基础是通信模块的WCET (Worst-Case Execution Time)。对通信模块的WCET分析计算采用静态WCET分析中的基于路径的算法,包括提取目标代码片段,程序控制流分析,处理器特征分析和WCET计算四个阶段。第三章通过计算Minicore通信模块的WCET,分析消息通信的时间可预测性,为未来实现时间可预测的通信机制并分析Minicore的时间可预测性提供基础。其次,本文基于引流开销远大于上下文切换这一事实提出了懒惰引流,即一种针对服务体执行流模型的通信模块的优化策略。懒惰引流策略通过最大限度的推迟引流的发生,使系统批量处理服务请求,以分摊引流的开销。在实现上,懒惰引流引入了引流器(Director)与调度器合作形成二级调度。懒惰引流优先使用调度器而将对引流器的调用最大限度的推迟,让引流器负责在服务体之间调度执行流,而调度器负责在单个服务体内的小端口之间调度执行流。计算结果表明,在一般情况下,即在一个服务体存在多于一个小端口的情况下,懒惰引流的性能优势明显,且在系统负载较大两个服务体发生频繁的通信时,懒惰引流带来的优化效益会更佳。