含CPU与IO操作的Round Robin调度:双进程完成时长解析
轮转调度(Round Robin)进程完成时长推导过程
明确进程执行序列
- 进程A:
CPU 30ms→I/O 60ms→CPU 30ms - 进程B:
CPU 40ms→I/O 30ms→CPU 40ms
逐阶段时间线梳理
- 0ms ~ 30ms:CPU分配给进程A,完成第一段30ms CPU任务。进程A立即启动I/O操作(从30ms开始,持续60ms,到90ms结束)。
- 30ms ~ 60ms:CPU按
A→B→A交替顺序分配给进程B,用满30ms时间片,完成进程B第一段CPU任务的前30ms,剩余10ms CPU任务未完成。进程B立即启动I/O操作(从60ms开始,持续30ms,到90ms结束)。 - 60ms ~ 90ms:CPU再次分配给进程A,完成第二段30ms CPU任务。此时进程A的I/O操作刚好在90ms结束,进程A全部执行完成。
- 90ms ~ 100ms:进程B的I/O操作在90ms结束,CPU分配给进程B,执行剩余的10ms CPU任务,完成第一段全部40ms CPU任务。进程B随即启动第二段I/O操作(从100ms开始,持续30ms,到130ms结束)。
- 100ms ~ 130ms:CPU处于空闲状态(进程A已完成,进程B在执行I/O,I/O与CPU可并发执行)。
- 130ms ~ 160ms:进程B的I/O操作在130ms结束,CPU分配给进程B,用满30ms时间片,完成第二段CPU任务的前30ms,剩余10ms CPU任务未完成。
- 160ms ~ 170ms:CPU继续分配给进程B,执行剩余的10ms CPU任务,进程B全部执行完成。
最终结论
两个进程全部完成的总时长为170ms。
内容的提问来源于stack exchange,提问作者Bryx Tamayo
相关产品推荐
相关产品推荐

