进程调度算法理解

一.调度算法分类:    

    1.批处理;

    2.交互式;

    3.实时

二.算法调度目标:

    所有系统:公平、策略强制执行、平衡

    1.批处理系统:  吞吐量、周转时间、CPU利用率

    2.交互式:响应时间、均衡性

    3.实时系统:满足截止时间、可预测性

三.各种系统的调度算法:

    1.批处理调度系统:

        1>.先到先服务(FCFS):在所有调度算法中,最简单的是非抢占式的FCFS调度算法;   

        优点:易于理解且实现简单,只需要一个FIFO队列,相当公平

        缺点:有利于长进程,不利于短进程,有利于CPU繁忙的进程,不利于IO繁忙的进程    

        2>.最短作业优先(SJF):用于运行时间可预知的批作业的非抢占式调度算法;

        原理:

进程调度算法理解_第1张图片

            优点:可改善平均周转时间,缩短进程等待时间,提高系统的吞吐量

            缺点:对长进程不利,可能长时间得不到执行,未能按紧迫程度划分优先级,以及难以准确估计进程的执行时间,从而影响调度性能。

            3>.最短剩余时间优先:即最短作业优先调度算法的抢占式版本

            4>.三级调度:

                   准入调度:决定哪些作业进入系统

                   内存调度:决定哪些进程进入内存,哪些进场切换到磁盘

                    CPU调度器:在内存中选取下一个将要运行的程序

        2.交互式系统中的调度:

            1.时间轮转调度:最古老,最简单,最公平且使用最广的算法

            原理:让就绪进程以FCFS方式按时间片轮流使用CPU的方式,即将所有就绪进程按照FCFS原则,排列成一个队列,每次调度时将 CPU分配给队首进程,让其执行一个时间片,在一个时间片结束时,发生时钟中断,调度程序据此暂停当前进程,将其送至就绪队列的末尾,并通过上下文切换执行当前队首的进程,进程可以未使用完一个时间片就让出CPU。

            时间片大小的确定:

            1>.系统对响应时间的要求

            2>.就绪队列中进程的数目

            3>.系统的处理能力

            2.优先级调度:每一个进程被赋予一个优先级,优先级最高的进程率先运行

            3.多重队列

            4.最短进程优先

            5.保证调度算法

            6.彩票调度算法,公平分享调度




你可能感兴趣的:(进程调度算法理解)