论文部分内容阅读
随着信息技术和网络技术的不断发展,嵌入式产品越来越广泛地应用到科学研究、军事工业和消费电子等行业。但实时性能作为嵌入式系统最重要的特性,却严重制约着嵌入式系统在某些重要行业的应用,比如视频实时数据采集和工业实时控制等。改进嵌入式系统的实时性能,是当前一个重要课题。
实时操作系统(Real-Time Operating System,RTOS)作为嵌入式实时系统的核心,其对实时任务的响应速度直接决定着系统的性能。uClinux采用Linux内核,是一种针对无内存管理单元(MMU)处理器的剪裁后的Linux操作系统。由于uClinux性能稳定,功能强大,移植性好,同时由于uClinux针对的是无MMU的处理器,不具有虚拟内存的功能,这避免了处理器调度时上下文切换导致的无法预期的延时,它比Linux更适合实时系统,被广泛应用于嵌入式系统中。但由于uClinux受中断屏蔽、临界段不可抢占和调度机制方面缺陷等的影响,其实时性能无法达到硬实时(Hard Real-Time)的要求。
本文研究了uClinux内核调度模式以及基于优先级的调度算法。针对频繁发生的优先级反转而导致实时任务延迟问题,本文引入最高优先级和优先级继承两种解决方法,并且在uClinux中实现了优先级继承法。不同应用中的实时任务有着明显不同的特征,针对不同类别的实时任务应该采用不同的调度算法,因此本文在uClinux内核中引入并且改进了通用调度框架(GSF),使它与uClinux2.6内核新的进程调度机构相结合,增强内核调度的实时性。本文还说明了如何修改内核源代码,在源代码中整合优先级继承法和GSF,形成一个实时性能更好的新的uClinux系统。
本文通过实验测试,对比了改进前后的系统实时性能,以一个实验程序为例说明了优先级反转问题的解决,同时证实改进后的GSF能够更好地调度不同类型的实时任务。