论文部分内容阅读
微处理器从诞生到现在的短短六十多年,有着飞速的发展。从通过提高主频速度,在芯片上集成越来越多晶体管的“纵向”发展,到近几年研究人员“横向”的对处理器体系结构进行多核研发,伴随而来的要求是必须有更加出色的上层系统来适应其卓越的硬件并行性能,使上层系统也具备并发运行的处理模式。基于此原因,内核开源的Linux系统的发展前景是不错的,但由于Linux系统设计之初是没有定义为实时系统的,所以为了适应当前对现代化操作系统的要求,我们需要对Linux系统的内核调度进行改进来增强它的实时性能。本文正是基于上述原因,提出了一个解决方案,其思路是:采用在单核系统上使用较为成熟的时间截止优先级算法,即EDF算法,将此算法代码以一个完整的结构体,通过Linux2.6系统内核调度块能够以模块扩展方式移植新算法的原理,使得EDF算法能够应用在多核处理器平台下的Linux2.6系统上,进行任务的分配和调度。本研究方案中,在多核处理器上先用单核进行利用率计算,然后对等待任务序列进行分配到其它核运行是一个新的尝试,成功实施后可以使Linux2.6系统具备一定的实时功能。本文研究任务来源于企业项目中关于Linux内核调度的一个问题,主要的研究工作和取得的成果如下所示:第一,介绍Linux调度相关技术的进程,线程,性能调度指标和调度算法等相关内容。然后提出研究方案,对整体工作流程进行分析与说明;第二,对EDF算法中关于处理周期性任务与不定期任务的利用率计算,任务截止时间临近时优先级的反转,和任务队列中优先级排序变化这三个关键技术详细分析;第三,从多核处理器的体系结构,和它的调度思想寻找出多核调度的脉络和关键点,进而分析出多核调度策略和具体管理方式;第四,将研究方案中EDF算法移植到Linux2.6系统内核的过程进行具体的分析与讲解;第五,为了进一步验证相关理论,在EDF算法成功移植到多处理平台的Linux系统内核后进行测试实验,分析结果;第六,通过实验得出与一个任务池(单核)上分配后运行任务的方式相比,我们通过在多核处理器平台下,用一核分配任务,其它核进行数据计算的思想,使得Linux2.6系统在多核处理器上实时性能得到加强。通过本方案的应用,对在多核处理器平台下的Linux2.6系统的调度延迟时间进一步缩小,且随着多核处理器上CPU数量的不断增多,我们预测这种延迟会大大减少,具有巨大经济效益。