论文部分内容阅读
人们对计算机计算能力的需求总是不断增长的,提高计算机计算能力的主要方法有提高单处理器的性能和采用多处理器。提高单处理器的性能主要有两个途径:一是提高主频,二是提高每个时钟周期内的指令执行数(IPC)。由于受到功耗和频率的限制,进一步提高单处理器的主频受到限制。提高IPC的方法主要有时间重叠如流水线处理器、资源重叠如超标量处理器,这些都是指令级并行(ILP),一段程序内的指令因结构相关、数据相关、控制相关等原因,进一步提高IPC也是受限的。近年来,研究人员和处理器厂商将提高计算机计算能力的方法转移到多处理器结构上来,纷纷采用了多核、多处理机、集群等并行体系结构。本文首先总结了提高单处理器性能的方法,分析了这些方法受到限制的原因。对多处理器结构按耦合度和访存模型进行了分类,分析了多处理器结构应用中遇到的主要问题:操作系统的多处理器任务调度、支持并行的程序设计语言、支持并行的程序设计技术、支持并行的编译和优化技术。其中,多处理器的任务调度是本文研究的主要问题。文中从单处理器的任务调度出发,比较了单处理器和多处理器的任务调度的差别,多处理器任务调度的关键问题是负载均衡,指出了负载均衡的难点:负载指标的选择、迁移任务的选择等。多处理器的任务调度方法按任务分配时机分为静态任务调度和动态任务调度。随着多核处理器的广泛应用,该文以多核作为多处理器任务调度的环境模型,比较详细地研究了多核任务调度,总结了国内外在该领域的研究成果,分析了静态任务调度和动态任务调度的调度模型和调度算法。该文以开源Linux2.6内核的任务调度算法及其具体实现为基础,详细分析了Linux2.6内核任务调度算法和相关的数据结构,以及Linux2.6内核对多核的支持。指出了Linux2.6内核的多核任务调度算法需要改进的地方,提出了改进算法,通过修改Linux2.6内核的任务调度程序源代码实现了改进算法,进行了比较测试实验。测试结果表明,该改进算法提高了多核任务调度的效率,有助于提高系统的性能。