·粒度
·线程调度
多处理器线程调度和处理器分配的四种方案:
1)负载共享:进程不是分配到一个特定的处理器。系统维护一个就绪进程的全局队列,每个处理器只要空闲就从队列中选择一个线程。
负载分配的三种方案:
①先来先服务(FCFS):当一个作业到达时,它的所有线程都被连续地放置在共享队列末尾。当一个处理器空闲时,它选择下一个就绪线程执行,直到完成或被阻塞。
②最少线程数优先:共享就绪队列被组织成一个优先级队列,如果一个作业包含的未调度线程数目最少,则给它指定最高的优先级。具有同等优先级的队列按作业到达的顺序排队。和FCFS一样,被调度的线程一直运行到完成或阻塞。
③可抢占的最少线程数优先:在最少线程数优先方案上增加抢占机制,刚到的作业如果包含的线程数目少于正在执行的作业,它将抢占这个线程。
2)组调度:一组相关的线程基于一对一的原则,同时调度到同一组处理器上执行。
3)专用处理器分配:每个程序被分配给一组处理器,处理器的数目与程序中线程的数目相对。当程序终止时,处理器返回到总的处理器池中,可供分配给另一个程序。
4)动态调度:在执行期间,进程中的线程数目是可以改变的。
·实时调度
硬实时任务:指必须满足最后期限的限制,否则会给系统带来不可接受的破坏或者致命的错误。
软实时任务:软实时任务也有一个与之相关联的最后期限,并希望能满足这个期限的要求,但是这并不是强制的,即使超过了最后期限,调度和完成这个任务仍然是有意义的。
周期性任务:要求描述成“每隔周期T一次”或者“每隔T个单位一次”
非周期性任务:有一个必须结束或开始的最后期限,或者一个关于开始时间和结束时间的约束。
实时操作系统的特点
5)故障化操作:故障弱化操作指系统在故障时尽可能多的保存其性能和数据的能力。
实时调度的四种算法
1)静态表驱动法:执行关于可行调度的静态分析。分析的结果是一个调度,它用于确定在运行时一个任务何时必须开始执行。
2)静态优先级驱动抢占法:同样,执行一个静态分析,但是没有制定调度,而且用于给任务指定优先级,使得可以使用传统的优先级驱动的抢占式调度器。
3)基于动态规划调度法:在运行是动态地确定可行性,而不是在开始运行前离线的确定(静态)。一个到达的任务,只有当能够满足它的时间约束时,才可以被接受执行。可行性分析的结果是一个调度或规划,可用于确定何时分派这个任务。
4)动态尽力调度法:不执行可行性分析。系统试图满足所有的最后期限,并终止任何已经开始运行但错过最后期限的进程。