上一篇学习了最短作业优先(SJF)算法是通用优先级调度(priority-scheduling)算法的一个特例。每个进程都有一个优先级与其关联,而具有最高优先级的进程会分配到CPU。具有相同优先级的进程按FCFS顺序调度。SJF算法是一个简单的优先级算法,其优先级(p)为下次(预测的)CPU 执行的倒数。CPU 执行越长,则优先级越小;反之亦然。
举个例子,假设有如下一组进程,它们在时间 0 按顺序 P1,P2,…,P5 到达,其CPU执行时间以 ms 计:
采用优先级调度,会按如下Gantt 图来调度这些进程:
平均等待时间为 8.2ms。优先级的定义可以分为内部的或外部的:
- 内部定义的优先级采用一些测量数据来计算进程优