scheduling

这里的调度仅仅是调度,而不包括matching、mapping和placement,而仅仅是这个从A集合到B集合映射过后,a节点上的任务的统筹安排。就是这个工作也需要很多问题考虑,是操作系统对进程的调度是OS scheduling还是process scheduling?因为VM scheduling与vcpu schduling。更有甚者,有些人称进程调度为cpu资源调度,各种说法和词语其实掩盖了多少的概念不清晰。而基本概念的不清晰,也就意味着迷雾缠身,难以再深度研究。

就拿最简单的OS 进程调度来说吧。我们就叫他进程调度,不要叫CPU调度(最好说是CPU资源分配),而说OS调度那是外行对OS这个进程调度功能的简称,如果想要继续研究下去的同学必须对这个概念分清楚。调度这个动作,与调度的对象结合起来进行分类,不要用发出动作的实体和所使用的资源分类。类似的,DIsk调度,应该说是Disk IO访问的调度,disk调度,是指把磁盘挪来挪去的调度。根据对象的不同,几乎任何计算机系统中都存在调度:进程调度,虚拟机调度,IO调度,MapReduce调度.....

这个调度过程有好几个因素需要考虑:调度的时机,对象队列的长度和排序,对象的选择,对象运行的时间,是否允许别个抢占当前的运行对象...

 

调度需要达到的目标往往有:公平性,实时性,高效性。公平保证某些进程不被饿死,说不上来有什么实际用途,感情OS在服务的时候要对不同的用户的进程公平,否则有些用户不干;实时性要求某些紧要的工作能够及时或尽快完成,不要误事,如军事控制用户显示;高效性是整个作业得到处理器时间比应尽可能的高,而不是浪费太多在”无效“上下文的切换上。其它的还有稳定性,不要在负载中的时候调度时间变得太长甚至不可控。

 

调度算法的实例往往综合考虑了各个目标:时间片轮训,优先级,多级反馈队列,自适应,最短结束有限 等等。

 

 

posted on 2012-02-25 10:36  madec  阅读(313)  评论(0编辑  收藏  举报

导航