1.中断步骤:①识别中断源 ②保存现场 ③引出中断处理程序
2.处理机调度算法:
①先到先服务算法(FCFS)
周转时间=完成时间-到达时间
带权周转时间=周转时间/服务时间
进程 | 到达时间 | 服务时间 | 开始时间 | 完成时间 | 周转时间 | 带权周转时间 |
A | 0 | 4 | 0 | 4 | 4 | 1 |
B | 1 | 5 | 4 | 9 | 8 | 1.6 |
C | 2 | 2 | 9 | 11 | 9 | 4.5 |
D | 3 | 4 | 11 | 15 | 12 | 3 |
平均周转时间=8.25
平均带权周转时间=2.525
画出处理时间轴如下:
②最短作业优先算法(SJF)
进程 | 到达时间 | 服务时间 |
A | 0 | 3 |
B | 0 | 5 |
C | 0 | 3 |
D | 0 | 4 |
E | 8 | 3 |
Ⅰ.非抢占式(先服务时间短的作业)
Ⅱ.抢占式(基于最短剩余服务时间)
③最高响应比优先算法(HRN)
优先权=1+等待时间/服务时间
进程 | 到达时间 | 服务时间 | 9:40调度时优先权 | 10:40调度时优先权 |
J1 | 8:00 | 2h | 1+ | 1+ |
J2 | 8:30 | 1h | 1+ | |
J3 | 9:30 | 0.25h | 1+ | 1+ |
9:40时开始处理,则三个进程的调度顺序为J2、J3、J1。
④最高优先数优先算法
进程 | 到达时间 | 服务时间 | 优先级 |
A | 0 | 2 | 4 |
B | 0 | 4 | 2 |
C | 0 | 7 | 1 |
D | 0 | 2 | 3 |
⑤循环轮转算法(时间片轮转)
等待队列:原本存在的进程+新加入的进程+上一个未执行完的进程
进程 | 到达时间 | 运行时间 |
P1 | 0 | 12 |
P2 | 0 | 4 |
P3 | 0 | 7 |
P4 | 0 | 3 |
假定时间片长度为q=2时,调度顺序如下图: