实时调度
实时调度所解决的问题一般是:对于一个任务集合,我们需要找到一个满足优先级约束和时间约束的调度策略。优先级约束主要指人为给定的任务优先顺序,而时间约束包括截止期限、最早执行期限、依赖关系等。
调度程序
调度策略(程序)主要的任务是,当面临并发程序或一组程序要执行时,决定接下来执行哪个任务。具体而言,主要有三方面的决策:
- 分配:应该由哪个处理器执行任务
- 排序:每个处理器按什么顺序执行相应的任务
- 定时(实时系统特点):每一项任务什么时候执行
调度程序的决策制定时机
不同的调度程序会在不同的时机来制定调度策略,主要分为下面的集中类别:
- 完全静态调度程序:在系统设计时就制定分配、排序和定时的决策。通常使用定时来实现优先级约束和时间约束。可是由于执行时间的不确定性,在大多数现代微处理器上难以实现。
- 静态顺序调度程序:在设计时完成任务的分配和排序,但直到任务运行时才确定每个任务的物理执行时间。
- 在线调度程序:在任务运行时制定所有的决策。