问题 问答题

【问题1】 设计该宽带路由器的多任务嵌入式实时操作系统时,由于多个任务均可能要求占用CPU这个关键资源,因此CPU的任务管理是一个非常重要的设计内容。在该实时操作系统中,任务作为占用资源的基本单位,总共有5个状态:休眠状态、就绪状态、运行状态、等待或挂起状态和中断服务状态,在任何时候,一个任务只会处于其中的某一个状态。根据以下任务状态转换图(见图8-15)中已给出的信息,请将(1)~(5)空缺处的内容填写完整。

答案

参考答案:

解析:(1) 就绪状态 (2) 运行状态 (3) 中断服务状态 (4) 任务被抢占 (5) 删除任务这是一道要求读者掌握实时操作系统任务状态转换的基本常识题。本题的分析思路如下。 1)任务是相应任务块程序关于某数据集合的可并发的一次运行活动,即任务通常作为占有资源的最基本单位。通常在实时操作系统中,任务总共有5个状态:休眠状态、就绪状态、运行状态、等待状态(或挂起状态)和中断服务状态,在任何时候,一个任务只会处于其中的某一个状态。 2)其中,休眠状态指任务还没有初始化,或任务的执行已经结束,实际上对操作系统来说,该任务是不存在的。就绪状态是指任务已经具备了运行的条件,但是由于CPU正忙,正在运行其他的任务,所以暂时不能运行的状态。 当一个任务被新创建时就处于就绪状态,处于就绪状态的任务可通过删除任务操作使任务处于休眠状态。根据图8-15所示休眠状态与(1)空缺处的方向箭头,可判断(1)空缺处填写的内容是“就绪状态”。 3)运行状态表示此任务正在占有CPU,并在CPU上运行。处于就绪状态的任务只要把CPU控制权分配给它(任务调度),它就能够立刻执行。 等待状态也称为挂起状态,是指任务因为正在等待某种事件的发生而暂时不能运行。例如,它正在等待某个I/O操作的完成,或者它同某个任务之间存在着同步关系,正在等待该任务给它发信号。此时,即使CPU已经空闲下来了,它也还是不能运行。处于挂起状态的任务可以被某些系统调用或事件激发而转到就绪状态。当一个任务运行过程中需要等待某个事件时,将由运行状态转移到等待状态。 综合以上分析,可判断(2)空缺处填写的内容是“运行状态”。 4)当有比正在运行的任务的优先级高的事件发生时,运行状态将被高优先级的任务抢占,即高优先级中断可以使正在执行的任务转移到就绪状态。由此判断(3)空缺处填写的内容是“中断服务状态”;(4)空缺处可填入类似“任务被抢占”等内容。 5)由于处于运行状态的任务完成后,可直接进入休眠状态,因此(5)空缺处可填入类似“删除任务”等内容。 6)图8-19给出了一个完整的实时操作系统任务状态转换图。

单项选择题
判断题