发明名称 支持OSEK标准的嵌入式实时操作系统的任务调度方法
摘要 本发明涉及一种支持OSEK标准的嵌入式操作系统的任务调度优化方法,实现步骤如下:1)根据任务状态分析各类调度切换情况:2)把调度过程可以分为以下四个步骤:2.1)在就绪任务中查找到最高优先级的任务;2.2)保存当前运行任务的运行环境;2.3)进行CPU占用指针赋值,即交换CPU占有权;2.4)恢复最高优先级任务的运行环境;3)根据对调度过程四个步骤的覆盖情况,优化调度策略,分为四类调度策略;4)根据任务运行时实际调度情况的不同,选用不同的调度策略:每种情况的调度所耗费的时间T根据所选策略的不同有所不同。本发明的优点:针对每种调度点采用专用的调度策略,使任务切换时间在多数情况下明显减少,大大优化实时操作系统的时间性能。
申请公布号 CN100351793C 申请公布日期 2007.11.28
申请号 CN200510060735.4 申请日期 2005.09.12
申请人 浙江大学 发明人 吴朝晖;赵民德;李红;厉蒋;潘杭平;姜旭锋;王磊
分类号 G06F9/46(2006.01) 主分类号 G06F9/46(2006.01)
代理机构 杭州九洲专利事务所有限公司 代理人 陈继亮
主权项 权利要求书1、一种支持OSEK标准的嵌入式操作系统的任务调度优化方法,其特征是:实现步骤如下:1)、根据任务状态分析各类调度切换情况:1.1)、OSEK标准中根据任务状态分类的不同,将系统分为BCC1,即基本任务、ECC1,即扩展任务两种情况;其中BCC1中的任务状态包含三种情况:运行、就绪、挂起,ECC1中的任务状态包含四种情况:运行、就绪、等待、挂起;将任务的就绪状态细分为中间态和初始态,中间态即是任务运行到一半被抢占或等待的事件发生后进入就绪的状态,初始态是任务从挂起被激活到就绪状态或系统启动时任务直接进入的就绪状态;1.2)、在BCC1下的调度情况分为以下三种:调度情况1:当前任务运行结束进入挂起状态,即将运行的高优先级任务为初始态;不用保存当前任务运行环境,直接进行指针赋值操作后,即可运行后一高优先级任务;调度情况2:当前任务运行结束进入挂起状态,即将运行的高优先级任务为中间态;不用保存当前任务运行环境,进行指针赋值操作后,恢复后一高优先级任务的运行环境,再运行;调度情况3:当前任务被抢占进入就绪状态,即将运行的高优先级为初始态;保存当前任务运行环境,进行指针赋值操作后即可运行高优先级任务。1.3)、在ECC1下的调度情况,除上述1.2)以外,再加以下三种:调度情况4:当前任务进入等待状态,即将运行的高优先级任务为中间态;保存当前任务运行环境,进行指针赋值操作后,恢复后一高优先级任务的运行环境,再运行;调度情况5:当前任务进入等待状态,即将运行的高优先级任务为初始态;保存当前任务运行环境,进行指针赋值操作后即可运行高优先级任务;调度情况6:当前任务被抢占进入就绪状态,即将运行的高优先级任务为中间态,且该任务是因为其等待的事件发生了而进入中间态的,保存当前任务运行环境,进行指针赋值操作后,恢复高优先级任务的运行环境,再运行;2)、把调度过程分为以下四步:2.1)、在就绪任务中查找到最高优先级的任务;2.2)、保存当前运行任务的运行环境;2.3)、进行CPU占用指针赋值,即交换CPU占有权;2.4)、恢复最高优先级任务的运行环境;3)、根据对调度过程四个步骤的覆盖情况,优化调度策略,分为以下四类:3.1)、调度策略A:最简单情况,只做调度过程步骤的2.1)、2.3);3.2)、调度策略B:一般情况,只做调度过程步骤的2.1)、2.2)、2.3);3.3)、调度策略C:一般情况,只做调度过程步骤的2.1)、2.3)、2.4);3.4)、调度策略D:最复杂情况,做全部调度过程步骤的2.1)、2.2)、2.3)、2.4);4)、根据任务运行时实际调度情况的不同,选用不同的调度策略:每种情况的调度所耗费的时间T根据所选策略的不同有所不同,D对应的TSD最多,A对应的TSA最少,B和C对应的TSB、TSC为中间值。
地址 310027浙江省杭州市西湖区浙大路38号浙江大学计算机学院嵌入式系统工程研究所