操作系统---调度

来源:互联网 发布:mac 抹掉磁盘名称 编辑:程序博客网 时间:2024/05/22 15:09

      百度百科中定义调度为“调度,常用作动词,意为调动;安排人力、车辆”古语今之务在乎辑和民族,齐一语言,调度风俗,究宣情志,合之犹惧其隔阂,况剖分之。”中把“调度”一词理解为“安排、调遣”的意思,我的理解就是宏观把控,只要知道了这个词的意思之后,再去理解操作系统中的调度就没有多大的问题了。

    在操作系统这本书中常用的调度分为三种:“处理器调度”、“页面调度”、“磁盘的驱动调度”,由于处理器管理章节中的“处理器调度”和设备管理章节的“磁盘的驱动调度”在形式和内容上有很大的相似性,于是对二者进行总结与区分,对于“页面调度”暂时不做介绍。

    首先比较两种调度的特性:

            共同点:

     1、两种调度都是两级调度

     2、调度的算法极为相似

     3、两级调度中后一级以前一级为基础

     不同点

     1、应用的场合、解决的问题不同

     总之,这两部分知识很容易让人混淆,下面分别介绍:

 

  一、处理器调度

    1、解决的问题是什么?

    多道程序设计系统中,往往同时有多个作业请求处理,他们都因为要使用系统资源而会发生竞争,如何对资源进行管理和分配是操作系统中的一个问题。

    2、具体步骤


    如图所示,作业调度+进程调度即为处理器调度。

    作业调度:从输入井中选取后备作业装入主存储器的工作称为作业调度。

    进程调度:从主存储器就绪的进程中选取一个进程,让她占用处理器的工作称为进程调度。

    作业调度配合进程调度实现多道作业的并行执行,而且作业调度是进程调度的基础。

     算法:

     作业调度:

    (1)先来先服务算法

    (2)计算时间短的作业优先算法

    (3)响应比高者优先算法

    (4)优先级调度算法

    (5)均衡调度算法

     进程调度:

    (1)先来先服务调度算法

    (2)最高优先级调度算法

    (3)时间片轮转调度算法

    当把算法罗列出来之后就发现,作业调度和进程调度都有先来先服务算法。

    在此处重点掌握作业调度中的前三种算法,其中计算时间短的作业优先算法是建立在先来先服务算法基础之上,而响应比高者优先算法要明确作业调度的开始时间,主存总存储量的分配问题。

 

   二、驱动调度

    1、解决问题是什么?

    多个进程要求访问磁盘,每时每刻只允许一个访问者启动它,进行信息传输,其余访问者必须等待,直到一次信息传输操作结束才能释放其中等待访问者的一个,让它启动磁盘。解决这个过程中如何提高效率。

    2、步骤

 

    如图所示,是对磁盘访问的一个请求示意图,这里先需要明白三个时间的概念:

    寻找时间、延迟时间、传送时间。

    驱动调度也是两级调度,移臂调度和旋转调度。

    移臂调度:根据等待访问者欲访问的柱面位置来进行调度。

    旋转调度:根据延迟时间来决定执行次序的调度。

    其中先执行移臂调度后执行旋转调度,前者是为了找到所需要的访问的柱面的位置,后者是为了在对接下来的访问进行顺序排队从而提高效率的操作。  

    算法

    移臂调度:

   (1)先来先服务算法

   (2)最短寻找时间优先算法

   (3)电梯调度算法

    旋转调度:

    三种情况分类:

   (1)若干请求者访问同一个磁头下不同扇区

   (2)若干请求者访问不同磁头下不同编号扇区

   (3)若干请求者访问不同磁头下具有相同编号的扇区

    对于(1)(2)旋转调度对先到达读写磁头位置下的扇区进行信息传送;对于(3)从中任意选出一个磁头进行读写操作,其余请求者必须等磁盘再次把扇区旋转到磁头位置时才可能被选中。

    So,处理器调度和驱动调度介绍完毕,二者都是两级调度,调度时两级调度中后一级以前一级为基础,调度算法的名称极为相似……

    二者根本的出发点是一样的,都是为了提升处理的效率,这也是这两类调度最大的共同点。

   (又啰嗦了,毛病~~~~)
0 0