📅  最后修改于: 2023-12-03 14:50:02.947000             🧑  作者: Mango
先来先服务(FCFS)和最长作业优先(LJF)都是常用的CPU调度算法,其中FCFS是一种非抢占式的算法,即当前进程执行完毕后才能执行下一个进程;LJF是一种抢占式的算法,即如果当前进程的剩余执行时间比新来的进程长,则会暂停当前进程,先执行新来的进程,等新来的进程运行结束后再回到当前进程。
先来先服务(FCFS)是一种非抢占式的算法,即当前进程执行完毕后才能执行下一个进程;最长作业优先(LJF)是一种抢占式的算法,即如果当前进程的剩余执行时间比新来的进程长,则会暂停当前进程,先执行新来的进程,等新来的进程运行结束后再回到当前进程。
在FCFS中,如果一个长作业在短作业前面运行时,短作业就必须等待长作业完成,尽管它已经准备好运行;而在LJF中,长作业可以被中断来让短作业运行,这减少了等待时间。
FCFS是一种简单的算法,由于没有时间片表,因此可以快速安排进程执行顺序。但是,它的性能较低,容易产生平均等待时间较长的情况。而LJF虽然在特定情况下(CPU密集型)具有较高的性能,但在其他情况下(IO密集型)可能显得效果不佳,它更适用于长作业,例如一些数据挖掘和图像处理应用。
采用FCFS算法会简单一些,但可能会造成长作业等待时间长的问题。采用LJF算法时,需要考虑其是否适合当前的环境和作业类型。