先来先服务调度算法有利于CPU繁忙型的作业(或进程),而不利于IO繁忙型的作业(或进程)—— why?

一、先来先服务调度算法简介:

先来先服务调度算法(First-Come, First-Served,FCFS)是一种简单的调度算法,它按照作业或进程到达的顺序进行调度。当一个作业或进程到达时,它会被放入就绪队列中,然后按照队列中的顺序依次执行。

二、FCFS调度算法对于CPU繁忙型的作业有利:

因为它可以充分利用CPU的时间片。当一个CPU繁忙型的作业到达后,它会立即被执行,并且在没有其他作业等待的情况下,可以一直占用CPU直到完成。这使得CPU能够持续地执行作业,最大化利用CPU资源。

三、FCFS调度算法对于I/O繁忙型的作业不利:

当一个I/O繁忙型的作业到达时,它可能需要进行一些I/O操作(如磁盘读写、网络通信等),这些操作可能会花费较长的时间。在这段时间内,CPU将空闲,无法执行其他作业,导致CPU资源的浪费。

3.1 疑问:别的算法I/O操作也消耗时间呐?

是呀,但是有个前提:I/O操作完了之后,作业又要重新到队列中按顺序排队,都知道队列是先近先服务,I/O操作完事儿之后,又要把该作业移动到队尾就绪队列中,所以FCFS算法不利于I/O频繁操作的作业。

四、另外:

由于FCFS调度算法是非抢占式的,一旦一个作业开始执行,它将一直执行直到完成,无法被其他作业抢占。这意味着如果一个长时间运行的CPU繁忙型作业排在队列的前面,后面的I/O繁忙型作业将被阻塞,导致I/O繁忙型作业的响应时间较长。

五、总结:

综上所述,FCFS调度算法有利于CPU繁忙型的作业,因为它可以充分利用CPU资源,但不利于I/O繁忙型的作业,因为它无法充分利用CPU时间并可能导致响应时间较长。对于I/O繁忙型的作业,其他调度算法如短作业优先(Shortest Job First,SJF)或轮转调度(Round Robin)可能更适合。

你可能感兴趣的:(操作系统,linux)