论文部分内容阅读
处理器高速缓存(Cache)的利用对系统性能起着关键性影响。随着计算机技术的进步,中央处理器的性能迅速提升,与系统内存的性能差距越来越大,Cache缺失所带来的性能损失十分可观,因此降低Cache的缺失率有着极其重要的意义。同时多处理器体系结构被提出并飞速发展,已成为现代处理器研究的热点。另一方面,软件系统的设计与实现日趋庞大和复杂,构件化软件架构因其良好的结构特性从而成为发展的主流趋势。构件化系统中的任务的基本构成是构件,但传统的调度策略忽视了任务的结构性,从而使构件化软件中各个构件之间产生不受控的切换,致使Cache缺失严重。为了尽量减少构件化系统运行时的Cache缺失率,进而提高其性能,十分有必要针对构件化系统的特征设计相应的调度策略。同时这种调度策略还必须要适应多处理器体系结构的发展趋势。论文以一种新型的针对构件化系统的调度策略为研究目标,所作的主要研究工作包括:1.对Cache缺失所带来的负面影响进行了细致的分析,说明了降低Cache缺失率的重要意义。通过介绍近年来一些主要的研究成果,论证了操作系统的调度策略对系统的Cache缺失率具有极其重要的影响。进而分析了构件化系统的特征,指出传统的调度策略不能很好的适应构件化系统,揭示了构件化系统中调度策略的一种新的设计思路,即考虑任务的结构特征——构件;2.提出了一种新型的基于模块的调度策略MBS,对其进行了理论分析,并给出了MBS的详细设计方案,包括调度段相关的概念及其定义;优先级的制定与调整方式;优先级抢占策略;调度段的控制;多处理器系统上扩展等。同时描述了实现MBS时的关键技术;3.基于Linux操作系统实现了支持MBS的原型操作系统MBS-Linux,详细论述了其中的设计与实现要点,并对涉及的数据结构和关键实现例程作了详尽的描述;4.作为MBS在构件化操作系统中的实现,以基于服务体/执行流模型的操作系统Minicore为基础实现了支持MBS的构件化操作系统原型MBS-Minicore,详细描述了其中所使用的关键技术、MBS调度服务体的设计与实现要点,以及其中的数据结构、消息接口和关键例程;5.对MBS-Linux和MBS-Minicore进行了性能评测,分别对比了MBS-Linux与Linux以及MBS-Minicore与Minicore的Cache缺失数和系统吞吐量,并对评测结果进行了详细分析。论文研究中所取得的具有创新特色的贡献如下:1.在分析了传统调度策略的局限性和构件化系统的特征之后,提出并设计了一种基于模块进行调度的新型调度策略MBS,并对其进行了理论分析、设计实现和实验验证,论证了其可行性和有效性。MBS在调度时考虑任务的内部结构,显著改善了传统的以任务为最小粒度的调度策略因Cache缺失频繁而导致的性能问题,提高了构件化软件运行时的Cache利用率,从而极大地提升了系统吞吐量,同时MBS还对多处理器系统提供了良好的支持;2.设计并实现了基于传统进程模型的支持MBS的操作系统原型MBS-Linux。它以直接明了的方式将MBS融入Linux操作系统中,并验证了MBS的可实现性;3.基于具有典型构件化特征的服务体/执行流模型,设计并实现了支持MBS的构件化原型操作系统MBS-Minicore,有效降低了构件化系统运行时的Cache缺失率,进而大幅提高了其性能。它提供了一种新颖的在构件化操作系统中设计和实现高性能调度器的解决方案。