|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 处理器管理 > 任务调度 > 任务调度主要概念 >
|
考试要求:掌握
相关知识点:3个
|
|
|
|
任务调度的第二个问题是调度的方式,主要有两种方式:不可抢占调度和可抢占调度。
|
|
|
(1)不可抢占方式(non preemptive)。如果一个任务被调度程序选中,就会一直地运行下去,直到它因为某种原因(如I/O操作或任务间的同步)被阻塞了,或者它主动地交出了CPU的使用权。在不可抢占的调度方式下,当出现调度时机当中的前三种情形时,即新任务创建、任务运行结束及任务被阻塞,都有可能会发生调度。而对于第四种和第五种情形,即发生各种中断的时候,虽然也会有中断处理程序,但是它并不会去调用调度程序。因此,当中断处理完成后,又会回到刚才被打断的任务继续执行。
|
|
|
(2)可抢占方式(preemptive)。当一个任务正在运行的时候,调度程序可以去打断它,并安排另外的任务去运行。在这种调度方式下,对于调度时机当中的所有五种情形,都有可能会发生调度。另外,在其他的一些情形下,假设调度算法是按照任务的优先级来进行调度,那么一旦在就绪队列当中有任务的优先级高于当前正在运行的任务,就可能立即进行调度,转让CPU。
|
|
|
实时操作系统大都采用了可抢占的调度方式,使一些比较重要的关键任务能够打断那些不太重要的非关键任务的执行,以确保关键任务的截止时间能够得到满足。
|
|
|