Linux系统中的进程调度算法

2/22/2017来源:ASP.NET技巧人气:2105



    在操作系统中,调度是指一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法,对于不同的系统和系统目标,通常采用不同的调度算法。以下就linux的进程调度算法加以解释。

    一、以下算法用于实时系统

      1、  时间片轮转调度算法(round-robin):SCHED_RR,系统使每个进程依次地按时间片轮流执行的方式。该算法的基本思想是,将CPU的处理时间划分为一个一个的时间片,就绪队列中的进程轮流运行一个时间片。当时间片结束时,就强迫进程让出CPU,该进程进入就绪队列,等待下一次调度,同时进程调度又去选择就绪队列中的一个进程,地分配给它一个时间片,以投入运行。

      2、  先进先出调度算法(FIFO):采用FIFO实时进程必须是运行时间较短的进程,因为这种进程一旦获得CPU就只有等到它运行完或因等待资源主动放弃CPU时其他进程才会获得运行机会。该算法按照进程进入就绪队列的先后次序来选择。即每当进入进程调度,总是把就绪队列的队首进程投入运行。

    二、以下算法用于分时系统

        最高优先级算法(HPF):SCHED_NORMAL,用于分时进程。系统选择运行队列中优先级最高的进程运行。Linux采用抢占式的优先级算法,即系统中当前运行的进程永远是可运行进程中优先权最高的那个

        本人所用的操作系统的版本以及内核版本

        使用cat /etc/redhat-release命令查看操作系统版本,如下:

        CentOS release 6.5 (Final)

        使用uname -r查看内核版本,如下:

        2.6.32-431.el6.i686