论文部分内容阅读
随着实时嵌入式系统应用的日益复杂化,系统可能要处理多个实时任务,同时各个任务之间也可能有多种信息传递。如果仍采用原来的程序设计方法将存在两个问题:一是中断可能得不到及时响应,处理时间过长,这对于一些控制场合是不允许的;二是系统任务多,要考虑的各种可能也多,各种资源如调度不当就会发生死锁,降低软件可靠性。
在实时系统中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间。从这个角度上看,可以把实时系统定义成“一个能够在指定或者确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统”。
实时系统主要面向与时间因素相关的应用需求,相应的处理过程必须在规定的时间限制内完成。此外,实时系统中多任务共享资源很容易出现无限优先级反转现象,最终导致系统崩溃。因此,任务调度与资源管理是实时系统最重要的组成部分。
本文选择实时内核作为研究对象,以嵌入式微处理器S3C44B0为硬件平台。对μC/OS-Ⅱ操作系统的移植进行研究,改造μC/OS-Ⅱ实时内核,将其移植到微处理器S3C44B0中。进而研究和解决实时系统中实时调度算法和任务管理的问题。μc/os-Ⅱ实时内核以抢占的方式调度任务,并且源代码开放。它为每个任务分配唯一的优先级,不支持相同优先级任务的调度,而在实际应用中为相同功能的任务分配不同的优先级不是一个很好的逻辑设计。因此本文扩展了μC/OS-Ⅱ实时内核,使其支持相同优先级的轮转调度,从而实现了μC/OS-Ⅱ中固定优先级抢占和同优先级单调速率调度方式相结合的一种混合调度策略。通过实验验证,扩展后的μC/OS-Ⅱ实时内核能够支持相同优先级任务的单调速率调度,并且仍然能够保持μC/OS-Ⅱ抢占式内核的特点。最后应用RapidRMA工具对调度结果进行分析。