发明名称 嵌入式实时操作系统的进程调度方法
摘要 本发明提出一种嵌入式实时操作系统的进程调度方法,包括建立进程所需资源的步骤和调度进程的步骤;建立进程所需资源主要是定义进程的模型、队列以及映射表、逆映射表的内容;调度进程则针对进程在就绪队列、阻塞队列、延迟队列和挂起队列的进出过程进行了描述。本发明所述进程调度方法采用了“映射表+逆映射表+链表”的技术措施,在进程切换时间、支持的最大进程数、支持的优先级数等方面都取得了很大的进步,达到了商用实时系统的性能要求;本发明采用简洁高效的延迟进程队列处理方法,极大地减轻了系统的负荷;本发明具有高效、高可靠性、适用范围广的特点,支持256个优先级,无穷多进程,具有更短的微秒级常数的进程切换时间。
申请公布号 CN100349149C 申请公布日期 2007.11.14
申请号 CN03115210.4 申请日期 2003.01.24
申请人 中兴通讯股份有限公司 发明人 危才华;芦东昕;缪敬;杨新
分类号 G06F13/26(2006.01);G06F9/46(2006.01) 主分类号 G06F13/26(2006.01)
代理机构 代理人
主权项 1、一种嵌入式实时操作系统的进程调度方法,包括建立进程所需资源的步骤和调度进程的步骤;所述建立进程所需资源的步骤,包括:一、确定进程的状态;二、建立就绪队列,所述就绪队列包括由16位无符号变量和大小为16的数组构成的头部以及一个大小为256的数组;三、建立并初始化映射表为unsigned char const MapTbl[]={0×0001,0×0002,0×0004,0×0008,0×0010,0×0020,0×0040,0×0080,0×0100,0×0200,0×0400,0×0800,0×1000,0×2000,0×4000,0×8000};四、建立并初始化逆映射表为unsigned char const UnMapTbl[]={0,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0};五、建立挂起队列,所述挂起队列是初始化为空的链表;六、为每一种互斥共享的资源标识建立一个阻塞队列,所述阻塞队列是初始化为空的先进先出链表;七、建立延迟队列,所述延迟队列是根据节点被延迟时间进行排序的有序链表,被延迟时间短的节点在前;八、建立包含标识进程状态的进程控制块结构;所述调度进程的步骤包括:一、创建进程,指定进程的优先级;二、进程进入挂起队列;三、如果进程被激活,则进入就绪队列;四、根据就绪队列的头部查找逆映射表,获得当前就绪的最高优先级的进程;五、根据最高优先级进程的进程控制块内容确定进程进入的队列;六、如果进程进入就绪队列,则依据进程的优先级挂入就绪队列的相应位置,并根据优先级查找映射表,修改就绪队列的头部;如果进程被阻塞,则从进程原来所在队列中取出对应进程控制块,根据其优先级修改就绪队列的头部,并将其进程控制块以优先级为关键字放入阻塞队列;如果进程被延迟,则从进程原来所在队列中取出对应进程控制块,根据其优先级修改就绪队列的头部,并将其进程控制块以延迟时间为关键字插入延迟队列;如果进程被挂起,则进程进入挂起队列。
地址 518057深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部