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