论文部分内容阅读
在工程实践中,嵌入式系统中的系统绝大多数都需要很高的实时性,如果这样的话对于嵌入式操作系统提出了更高的实时性要求。要想使用实时操作系统内核开发嵌入式多任务操作系统,应该将系统功能进行合理分解,根据程序相对于其他程序的重要性决定其执行的优先级,构造不同的程序。进程调度算法的是否优秀以及执行效率是否优秀直接影响到这个嵌入式内核的应用范围以及对系统的实时性程度。该系统己被移植到多种处理器架构中,在某些实时性要求严格的领域中得到广泛应用,能够满足对实时性要求越来越高的需要。我们在分析μC/OS-Ⅱ的基础上,对其调度算法进行改进。本文除了对嵌入式实时系统几种典型的算法进行分析比较,研究出改进后的算法,还对当工程的复杂性增大,在μC/OSⅡ操作系统上运行的程序数目不断增加时,程序数目过多造成的效率下降这种情况,进行分析。μC/OS2Ⅱ内核最多可以管理64个程序,其中系统保留了8个程序,用户最多可以有56个应用程序。因此,当工程的复杂性增大,在μC/OS2Ⅱ操作系统上运行的程序数目不断增加时,如果程序数目超过64个,就必须换用其他的开发平台,这样就可能造成大量的前期开发工作作废。我们考虑到这种情况,根据μC/OS2Ⅱ本身的程序可扩展性,在原有的优先级调度算法基础上,提出了两种可行的大量增加可管理程序的算法。一种是利用μC/OS2Ⅱ原有的优先级判定表格,重新定义了存放程序优先级的字节,并重新建立程序就绪表。它把64个程序扩充到256个程序,把程序放入就绪表中,给出了新的最高就绪程序的查找算法。另一种是利用原来存放优先级的字节中剩余的两位作为索引,重建就绪表,使程序优先级扩展到256个。我们在利用μC/OS2Ⅱ源码公开的基础上,对原有的内核程序优先级调度算法进行修改,使其可应用于多于64个程序的复杂的工程项目开发。并且通过比较得出结论,第一种算法要优于第二种算法,第一种算法在理论上更简洁清楚,并且更加易于实现。