总览
先来先服务算法
不会导致饥饿:只要该进程或作业在队列中,那么当其前面的都执行完(前面的总会执行完)后终将会轮到它被服务
例题
注意运行时间是在CPU运行的时间
等待时间=周转时间-被服务的时间
IO操作和CPU运行都是被服务的时间
短作业优先
”最短的“:不严谨,看情况判断对错
源源不断地短作业到来的话,长作业可能会产生饥饿现象
例题(非抢占式的短作业优先调度算法)
时刻零的时候只能执行P1进程,当执行完P1进程后,发现P2和P3和P4都到达了,此时执行运行时间最短的P3,然后P2和P4的运行时间都是一样的,又P2是先到达就绪队列的,所以先调度P2
例题(抢占式的短作业优先调度算法)
此时调度算法执行的两个时间点:一个是就绪队列改变,此时会比较新到达的进程的剩余时间比当前运行的进程剩余时间。一个是进程完成时,此时会从就绪队列中选择剩余时间最少的上处理机
运算结果
注意
FCFS和SJF两种算法的思考
等待时间长=到达时间早
高响应比优先
不会导致饥饿
例题
小结
这几种调度算法不关系响应时间,也不区分认任务的紧急程度=交互性糟糕
如果一个系统不关注响应时间,并且不区分任务的紧急程度,会导致用户交互性糟糕的原因如下:
- 用户体验差:如果系统不考虑响应时间,用户可能需要等待很长时间才能得到反馈,这会让用户感到沮丧和不满。
- 效率低下:不区分任务紧急程度可能导致关键任务被延迟,影响整体工作效率。
缺乏优先级管理:系统应能根据任务的重要性和紧迫性进行合理排序,否则可能导致资源浪费和目标错位。 - 存在交互机会少,自然也会使得交互性很糟糕
早期的批处理系统是一种自动处理程序和数据的方式,用户提交一批作业后,不再干预,由系统自动运行