一、进程调度算法
本专栏前面文章操作系统之进程状态及其切换方式介绍了进程的五种状态,进程调度算法主要解决进程从就绪状态进入运行状态的调度策略,本文主要介绍六大进程调度策略。
二、先来先服务算法(FCFS)
先来先服务算法FCFS(first come first serve),该进程调度算法的原则就是按照程序进入就绪队列的先后顺序的进行程序的调度。该算法有利于长进程作业,不利于短作业作业。可能会导致短进程饿死。
三、短作业优先(SJF)
短作业优先算法SJF(short job first),该算法调度策略就是首先调度作时间较短的进程,不是按照进入就绪队列的先后进行先后顺序进行进程调度。短作业优先对于短作业有利,不利于长进程。
四、优先级调度算法
优先级调度算法的原理就是在进程创建前,就对各个进程进程的优先级进行编号,进程在调度的过程中按照优先级顺序进行调度,该程序调度算法可以分为抢占式和非抢占式两种。优先级调度算法主要应用于实时操作系统中。
五、高响应比进程调度算法
就像先来先服务和短作业算法,两者都会导致短作业或者长作业饿死,因此基于优先级算法设计出一种高响应比算法。该调度算法的优先级是随着进程等待时间而增加的,计算公式为:优先级=等待时间/请求服务时间+1。进程调度按照优先级的大小进行进程的调度。
六、时间片轮转算法
时间片轮转调度算法主要适用于分时系统。在这种算法中, 系统将所有就绪进程按到达时间的先后次序排成一个队列, 进程调度程序总是选择就绪队列中的第一个进程执行, 即先来先服务的原则,但仅能运行一个时间片,如100ms 口在使用完一个时间片后, 即使进程并未完成其运行,它也必须释放出(被剥夺)处理机给下一个就绪的进程, 而被剥夺的进程返回到就绪队列的末尾重新排队, 等候再次被调度运行。
七、多级反馈队列算法
多级反馈队列调度算法是时间片轮转调度算法和优先级调度算法的综合与发展,该算法通过动态调整进程优先级和时间片大小, 多级反馈队列调度算法可以兼顾多方面的系统目标。