首页 > 编程知识 正文

计算机操作系统作业调度,操作系统负责协调计算机的

时间:2023-05-03 07:55:33 阅读:238163 作者:3100

          处理机调度层次:

                    1.高级调度:它调度的对象是作业。其主要功能是根据某种算法,决定讲外存上处于后备队列中的哪几个作业调入内存,为它们创建进程,分配必要的资源,并将它们放入就绪队列。

                    2.低级调度:它调度的对象是进程。其主要功能是根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给选中的进程。

                    3.中级调度:又称内存调度。其主要目的是提高内存利用率和系统吞吐量。为此,应把那些暂时不能运行的进程,调至外存等待。当内存稍有空闲时,把外存上的那些已经具备运行条件的就绪进程重新调入内存。

          处理机调度算法的共同目标:

                    1.资源利用率。为提高系统资源利用率,应使系统中的处理机和其它所有资源都尽可能保持忙碌状态。

                    2.公平性。应使诸进程获得合理的CPU时间,不会发生饥饿的现象。使相同类型的进程获得相同的服务,对于不同重要性的进程,则应提供不同的服务。

                    3.平衡性。系统中会有多种类型的进程(计算型,I/O型),调度算法要使系统中CPU和各种外部设备都经常处于忙碌状态,保持系统资源使用的平衡性。

                    4.策略强制执行。对所制定的策略其中包括安全策略,只要需要,就必须予以准确地执行,即使造成某些工作的延迟也要执行。

          批处理系统中的作业:

                    1.作业和作业步 

                            1>作业:作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据说明书来对程序的运行进行控制。

                            2>作业步:作业运行期间,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才能得到结果,我们把每一个加工步骤称为一个作业步。

                    2.作业控制块:每当一个作业进入系统时,便由"作业注册"程序为该作业建立一个作业控制块JCB(为了管理和调度作业),其中保存了系统对作业进行管理和调度所需的全部信息。通常在JCB中包含的内容有:作业标识,用户名称,用户账号,作业类型,作业状态,调度信息,资源需求,资源使用情况等。

         作业调度的主要任务:

                    1.接纳多少个作业:在每一次进行作业调度时,应当从后备队列中选取多少作业调入内存,取决于多道程序度(即允许多少个作业同时在内存中运行)。

                    2.接纳哪些作业:根据作业调度算法决定首先调度哪些作业

        先来先服务调度算法:每次调度是从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后,进程调度程序才将该处理机分配给其他进程。

        短作业优先调度算法:由于在实际情况中,短作业(进程)占有很大比例,为了能使它们能比长作业优先执行而产生了这个算法。

        优先级调度算法:基于作业的紧迫程度,由外部赋予作业响应的优先级,调度算法是根据该优先级进行调度的。

        高响应比优先调度算法:不仅考虑了作业的等待时间,又考虑作业运行时间的调度算法,因此既照顾了短程作业,又不致使长作业的等待时间过长,从而改善了处理机调度性能。优先权=(等待时间+要求服务时间)/要求服务时间,由上式可以看出:如果作业的等待时间相同,则要求服务的时间越短,其优先权越高;当要求服务的时间相同时,作业的优先权又决定其等待时间;对于长作业的优先级,可以随之等待时间的增加而提高,当其等待时间足够长时,也可获得处理机。

        进程调度的任务:

                1.保存处理机的现场信息,如程序计数器,多个通用寄存器的内容等

                2.按某种算法选取进程,将其状态改为运行状态,并准备把处理机分配给它

                3.把处理器分配给进程,将选中进程的控制块内有关处理机现场的信息装入处理器的各个寄存器中,把处理器的控制权交予该进程,让它从上次的断点恢复运行。

        进程调度机制:

                1.排队器:为了提高进程调度的效率,应事先将系统中的所有就绪进程按照一定的策略排成一个或多个队列,以便调度程序最快地找到它。

                2.分派器:分派器根据进程调度程序所选定的进程,将其从就绪队列中取出,然后进行从分派器到新选出进程间的上下文切换,将处理机分配给新选出的进程。

                3.上下文切换器:在对处理机进行切换时,会发生两对上下文的切换操作。第一对是OS保存当前进程的上下文,即把当前进程的处理机寄存器内容保存到该进程的进程控制块内的相应单元,再装入分配程序上下文,以便分配程序运行;第二对是移除分派程序的上下文,而把新选进程的CPU现场信息装入到处理机的相应寄存器中,以便新选进程运行。

       进程调度方式:

                1.非抢占方式:一旦把处理机分配给某进程后,就一直让它运行下去,绝不会因为时钟中断或任何其它原因去抢占当前正在运行进程的处理机,直至该进程完成,或发生某事而被阻塞时,才把处理机分配给其它进程。

                2.抢占方式:这种调度方式允许调度程序根据某些原则,去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一个进程。

      "抢占"的原则:

                1.优先权原则:指允许优先级高的新到进程抢占当前进程的处理机。

                2.短进程优先原则:指允许新到的短进程可以抢占当前长进程的处理机

                3.  时间片原则:即各进程按时间片轮转运行时,当正在执行的进程的一个时间片用完后,便停止该进程的执行而重新进行调度。

       轮转调度算法:让就绪队列上的每个进程每次仅运行一个时间片。进程的切换时机分两种情况:1>时间片尚未用完,进程便已经完成;2>一个时间片用完时。对于时间片大小较为可取的是略大于一次典型的交互所需要的时间,使大多数交互式进程能在一个时间片内完成,从而可以获得很小的响应时间。

      优先级调度算法:把处理机分配给就绪队列中优先级最高的进程,该算法又分两种。

               1.非抢占式优先级调度算法:一旦把处理机分配给就绪队列中优先级最高的进程后,该进程便一直执行下去直至完成,或因该进程发生某事件而放弃处理机时,系统方可将处理机重新分配给另一优先级最高的进程。

               2.抢占式优先级调度算法:把处理机优先分配给优先级最高的进程,使之执行。但在其执行期间,只要出现了另一个优先级更高的进程,调度程序就将处理机分配给新到的优先级最高的进程。

      多队列调度算法:该算法将系统中的进程就绪队列从一个拆分成若干个,将不同算法类型或性质的进程固定分配在不同的就绪队列,不同的就绪队列采用不同的调度算法,一个就绪队列中的进程可以设置不同的优先级,不同的就绪队列本身也可以设置不同的优先级。多队列调度算法由于设置多个就绪队列,因此对每个就绪队列就可以实施不同的调度算法,因此,系统针对不同的用户进程的需求,很容易提供多种调度策略。

      多级反馈队列调度算法:该算法不比事先知道各种进程所需的执时间,还可以较好地满足各种类型进程的需要。其设置了多个就绪队列,并为每个队列赋予不同的优先级。第一个队列的优先级最高,其余队列优先级逐个降低。该算法为不同队列中的进程所赋予的执行时间片的大小也各不相同,在优先级愈高的队列中,其时间片就愈小。每个队列都采用FCFS算法,当新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可撤离系统。否则,即它在一个时间片结束尚未完成,调度程序将其转入第二队列的末尾等待调度;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,以此类推。调度程序首先调度最高优先级队列中的诸进程运行,仅当第一队列空闲时才调度第二队列中的进程运行。

      基于公平原则的调度算法: 

               1.保证调度算法

               2.公平分享调度算法

      实时调度算法的分类,根据实时任务的性质,可将实时调度的算法分为硬实时调度算法和软实时调度算法;按调度方式,则可分为非抢占式调度算法和抢占式调度算法:

                 1.非抢占式调度算法:

                         1>非抢占式轮转调度算法:将实时任务排成一个轮转队列,调度程序每次选择队列中第一个任务投入运行。当该任务完成后,便把它挂在轮转队列的末尾等待。

                         2>非抢占式优先调度算法:系统把优先级较高的实时任务安排到队首,等待当前任务自我终止或运行完后,便可去调度执行队首的高优先进程。

                 2.抢占式调度算法:

                         1>基于时钟中断的抢占式优先级调度算法:比当前任务优先级高的任务达到时,并不立即抢占当前任务的处理机,而是等到时钟中断发生时,调度程序才剥夺当前任务的优先级。

                         2>立即抢占的优先级调度算法:一旦外部出现中断,只要当前任务未处于临界区,便能立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务。

       最早截止时间优先EDF算法:根据任务的截止时间确定任务的优先级,任务的截止时间愈早,其优先级越高。

              1.非抢占式调度方式用于非周期实时任务:

              2.抢占式调度方式用于周期实时任务:

               

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。