发明名称 |
一种多任务实时操作系统的实现方法 |
摘要 |
一种单片机嵌入式多任务实时操作系统的实现方法,为每个任务设置最大允许等待时间,将任务分为优先级任务和一般任务,用整数类型的数组记录每个任务的等待时间并在定时器程序中对其数值进行减量刷新;通过设置任务建立函数和挂起函数,将任务与其相对应的任务程序相连或在非临界区实现多任务调度,调度时,如果有等待时间超过最大允许等待时间的任务,则运行该任务;如果有优先级任务,则按照轮转法确定下一个就绪的优先级任务;如果没有优先级任务,按照轮转法确定下一个就绪的一般任务。这种实现方法,允许多个任务并行,占用资源少,任务执行速度快,在满足实时性要求同时,也可提供足够的灵活性,调用也极为便利,针对性和实用性非常强。 |
申请公布号 |
CN100485605C |
申请公布日期 |
2009.05.06 |
申请号 |
CN01126906.5 |
申请日期 |
2001.09.24 |
申请人 |
中兴通讯股份有限公司 |
发明人 |
熊勇 |
分类号 |
G06F9/38(2006.01)I |
主分类号 |
G06F9/38(2006.01)I |
代理机构 |
|
代理人 |
|
主权项 |
1、一种多任务实时操作系统的实现方法,其特征在于:包括以下步骤:(1)为每一个任务设置一个最大允许等待时间,将每一个需要占用CPU运行的任务分为优先级任务和一般任务,用一个整数类型的数组记录每个任务的等待时间并在定时器程序中对其数值进行减量刷新;(2)设置一个任务建立函数,可将一个任务与其相对应的任务程序相连,并建立该任务的TCB,将一个或多个其长度不大于基本单位时间的不定长时间片分配给一个任务;(3)设置一个任务挂起函数,用于在非临界区的内存空间实现多任务之间的调度,调度时,用函数和全局变量的形式来替换掉调度处的局部变量,每一个任务在所分配到的时间片结束或被挂起之前占用CPU;(4)按照以下步骤进行多任务调度:保存现场状态、检查就绪任务队列中有无任务,如有任务则利用调度算法取出一个就绪任务,调用任务运行函数将该取出的任务设置为运行状态,恢复现场状态;其中,所述调度算法包括以下步骤:如果有等待时间超过最大允许等待时间的任务,则运行该任务;如果有优先级任务,则按照轮转法确定下一个就绪的优先级任务;如果没有优先级任务,按照轮转法确定下一个就绪的一般任务。 |
地址 |
518057广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部 |