|
|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 处理器管理 > 分区、进程、线程、任务的概念 > 任务的实现 >
|
相关知识点:6个
|
|
|
|
如前所述,在一个多任务操作系统中,各个任务的状态是经常变化的,有时处于运行状态,有时处于就绪状态,有时又处于阻塞状态。即便同是阻塞状态,引发阻塞的原因可能又各不相同,有的是因为等待I/O操作,有的是因为任务之间的同步。因此,在一个操作系统当中,采用什么样的方式来组织它的所有任务,将直接影响到对这些任务的管理效率。
|
|
|
通常的做法是采用任务队列的方式,也就是说,由操作系统来维护一组队列,用来表示系统当中所有任务的当前状态,不同的状态用不同的队列来表示。例如,处于运行状态的所有任务构成了运行队列,处于就绪状态的所有任务构成了就绪队列,而对于处于阻塞状态的任务,则要根据它们阻塞的原因,分别构成相应的阻塞队列。然后,对于系统当中的每一个任务,根据它的状态把它的TCB加入到相应的队列当中去。如果一个任务的状态发生变化,例如,从运行状态变成就绪状态,或者从阻塞状态变成就绪状态,这时,就要把它的TCB从一个状态队列中脱离出来,加入到另一个队列当中去。
|
|
|
|
|
|
|
|
|
|
|
|