时钟驱动调度是一种调度点由时钟中断决定的调度算法。时钟驱动调度有两种类型:
1. 表驱动调度:
在表驱动调度中,所有任务的开始时间都是预先计算好的,并在系统配置时存储在一个表中。存储所有任务调度时间的表称为调度表。
2. 循环调度:
在循环调度中,预先计算的调度会一次又一次地重复。任务集中的每个任务在每个循环中都以相同的方式重复。
表驱动和循环调度的区别:
TABLE-DRIVEN SCHEDULING | CYCLIC SCHEDULING |
---|---|
Start time of tasks is precomputed and thus tasks are scheduled. | Precomputed schedule is repeated again and again. |
Each task is scheduled only once. | Each task is scheduled repeatedly. |
Table-driven scheduling is less used in large applications. | Cyclic scheduling is quite often used in large applications. |
It is not quite efficient. | It is efficient than table-driven. |
It sets timer whenever a task is scheduled. | it sets timer only when system initiates scheduling. |
It is not often used in embedded systems. | it is often used in embedded systems. |
In case of selection of timing frame it is more proficient. | It is possible to select a large size of timing frame. |