设某多道程序系统中有用户使用的内存1000M,打印机1台。系统采用可变分区动态分配算法管理内存,而对打印机采用静态分配。假设输入输出操作时间忽略不计,采用最短剩余时间优先的进程调度算法,进程最短剩余时间相同时采用先来先服务的算法,进程调度时机选择在进程执行结束或新进程创建时,现有进程如下:
进程 | 创建时间 | 要求执行时间 | 要求内存 | 申请打印机 |
0 | 0 | 8 | 150M | 1 |
1 | 4 | 4 | 300M | 1 |
2 | 10 | 1 | 600M | 0 |
3 | 11 | 20 | 200M | 1 |
4 | 16 | 14 | 100M | 0 |
(1)给出进程调度算法选中进程的次序,并说明理由。
(2)全部进程执行结束所用的时间是多少
参考答案:[解答] (1)进程运行的顺序是,进程0,进程1,进程3,进程4,进程3,进程2,原因见上述分析。
(2)总共运行了47个时间片。原因见上述分析。
进稚 创建时间 要求执行时间 要求内存 申请打印机 0 0 8 150M 1 1 4 4 300M 1 2 10 1 600M 0 3 11 20 200M 1 4 16 14 100M 0
解析: 本题考查调度算法的理解和计算。最简单的方法就是画出其甘特图。下面分析:时刻0,进程0到达,投入运行,占用150M内存,并占用打印机;运行到时刻4,进程1到达,占用内存300M,申请使用打印机,此时进程0和进程1均剩余4,但是进程0先到,故继续运行;运行到时刻8,进程0退出,释放150M内存,进程1运行,占用打印机;运行到时刻10,进程2到达,但是,剩余内存不足,不可创建到内存,在外存后备;时刻11,进程3到达,占用200M内存,申请打印机,其运行时间20大大大于此时进程1的1,故进程1保持运行;运行到时刻12,进程1退出,进程3运行,运行到时刻16,进程4到达,内存空间450M和350M均满足使用,创建到内存,由于它不需要打印机,他的剩余时间14小于进程3的16,故进程4抢夺进程3运行,进程3带着打印机阻塞了;运行到30,进程4退出,进程2还是不能参加到内存,进程3继续运行;到时刻46,进程3退出,内存足够进程2创建了,进程2创建并运行,到时刻47退出,运行结束。