uCOS-ii中的任务之一

时间:2021-08-12 19:36:44

1.  什么是可剥夺型内核?

 答:如果当前进程只是在进程执行结束,或者因某种原因自愿放弃处理器使用权而使得待运行进程获得处理器使用权,那么以这种方式实现处理器使用权发生转移的内核就是属于不可剥夺型的。反之,如果当前进程并未执行完毕,又不是自愿放弃处理器使用权,而被强制中止执行*将处理器使用权转移给其他进程,那么这种内核就是可剥夺型的。其实,真正实施处理器使用权转移工作的是调度器,所以也可以这样说,调度器能以强硬的方式获得处理器使用权并分配另外进程的内核就是可剥夺型内核,否则就是不可剥夺型内核。uCOS-ii中的调度器分为任务级和中断级调度器,任务级调度器由函数OSSched()来实现,中断级调度器由函数OSIntExt()来实现。

2.  一个应用程序为何一定要使用空闲任务?

答:空闲任务就是系统在某个时间内无用户任务可运行而就处于所谓的空闲状态。空闲任务几乎是什么事都不做,只是一直为空闲任务运行次数计数器OSdleCtr进行加1操作。空闲任务是衡量cup使用率高低的重要指标,空闲任务对于cpu来说是一定要有的,空闲任务占的比例越大,表明系统的健壮性就越好。

3.  统计任务是必要的吗?

答:统计任务每秒计算一次cpu在单位时间内被使用的时间,并把计算结果以百分比的方式存放在变量OSCPUsage中,以便其他应用程序来了解cpu的利用率。是否使用统计任务,用户可以根据自己的需要来选择。如果用户的应用程序决定使用统计任务,则必须把定义在系统头文件OS_CFG.H中的系统配置常数OS_TASK_STAT_EN设置为1,并在调用函数OSStatInit()对系统任务进行初始化。

4.  什么叫做任务的优先权?uCOS-ii中是用什么来描述任务的优先权的?

答:当有多个任务需要运行时,操作系统必须在这些待运行任务中选择一个来运行,因为系统只有一个cpu。既然是这样,那就要有一个规则,根据嵌入式的特点,uCOS-ii采用了按优先级抢占的规则。即系统中的每个任务都是按照任务的重要性来分配一个唯一优先级级别,按照优先级别的高低依次运行。

5.  在uCOS-ii中任务有哪5种状态?

答:uCOS-ii中任务的5种状态是:睡眠状态、就绪状态、运行状态、等待状态和中断服务状态。