一、先来先服务调度算法简介:
先来先服务调度算法(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)
可能更适合。