跳到主要内容

5、进程调度算法

一、概述

【百度百科】在操作系统中调度是指一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的的系统和系统目标,通常采用不同的调度算法,例如,在批处理系统中,为了照顾为数众多的段作业,应采用短作业优先的调度算法;又如在分时系统中,为了保证系统具有合理的响应时间,应当采用轮转法进行调度。目前存在的多种调度算法中,有的算法适用于作业调度,有的算法适用于进程调度;但也有些调度算法既可以用于作业调度,也可以用于进程调度。

二、调度算法的评价因素

1、 吞吐量:单位时间内CPU完成作业的数量;
2、 CPU利用率:从0%~100%;
3、 周转时间:评价批处理系统的性能指标Ti=作业完成时刻-作业提交时刻;

三、调度算法分类

1.先来先服务 (FCFS,first come first served)

在所有调度算法中,最简单的是非抢占式的FCFS算法。

算法原理:进程按照它们请求CPU的顺序使用CPU.就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它。当其他人也想进入内存被执行,就要排队等着,如果在执行过程中出现一些事,他现在不想排队了,下一个排队的就补上。此时如果他又想排队了,只能站到队尾去。

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

算法缺点:比较有利于长进程,而不利于短进程,有利于CPU 繁忙的进程,而不利于I/O 繁忙的进程