论文部分内容阅读
随着计算机技术的飞速发展,嵌入式系统的性能越来越强大,在越来越多的领域都发挥了至关重要的作用,比如国防科技、生产自动化控制、智能移动终端等。在实时操作系统中,对于实时任务的及时响应是第一位的,因此诸多嵌入式系统都采用实时操作系统作为控制核心。其中,任务调度算法是实时操作系统完成多任务并发调度的关键依据。目前软件实现的任务调度算法已经无法显著的改善系统实时性,而硬件逻辑又可以与中央处理器并行操作,所以本文通过任务调度算法的硬件化来发掘实时系统潜在的多任务并发特性。另外,面对嵌入式领域越来越复杂化的应用需求,已有的实时操作系统往往会表现出应用局限性。为了改善实时操作系统的适应性,改进现有的实时操作系统内核成为了一大研究热点。本文以μC/OS-II为研究对象,针对其不支持同级调度的应用局限性,改进了原有的任务调度算法,并通过FPGA实现。本文改进的调度算法采用二级调度。首先通过μC/OS-II原有的基于优先级的任务调度算法选择出最高的对应有就绪任务的优先级,然后对该优先级对应的就绪任务启动同级调度策略。在同级调度中,对于实时的同级任务采用较为公平的时间片轮转算法;对于非实时的同级任务采用开销较低的先来先服务算法。为了实现同级调度,修改了μC/OS-II内核的任务控制块,使得一个优先级可以对应多个任务。然后增设了由用户设定的优先级阈值作为分界线,将系统中的所有任务一分为二。所有优先级小于阈值的任务都是实时的;所有优先级大于或等于阈值的任务都是非实时的。最后采用FPGA技术设计和实现了基于该算法的硬件任务调度器,使用VHDL语言描述,通过ISE 10.1完成仿真验证。