在某勘探队计算中心的大型计算机系统中,某台大型机可供用户使用的内存空间为1000MB,系统连接有绘图机1台,打印机2台。某天该系统接到了作业任务如下表所列:
表 作业情况 | |||||
作业号 | 到达时间 | 预计运行时间 | 预计所需内存 | 使用绘图机 | 使用打印机 |
1 | 8:00 | 25分 | 150MB | 1 | 1 |
2 | 8:20 | 20分 | 300MB | 0 | 1 |
3 | 8:20 | 10分 | 600MB | 1 | 0 |
4 | 8:30 | 30分 | 200MB | 0 | 1 |
5 | 8:35 | 15分 | 100MB | 1 | 1 |
全部执行完成后的时间是几点
参考答案:全部完成作业的时间为9:40。
解析: 在作业调度和进程调度的知识点上,本题算是一题比较综合的考题,既结合了调度算法的问题,又有调度层次的问题,还包含了抢先式和非抢先式调度的内容,同时加了许多限制,例如内存大小的限制,外部设备分配的限制,死锁的问题,内存分配的问题等。对于这类题目,主要考查同学对所学知识灵活运用的能力,具有较强的应用性,所以在处理此类题目时,一定要读懂题意,不妨多读几遍,以增进理解。
具体解答本题时,可以从下面的时间关键点出发:
8:00作业1到达后备队列,计算机此时空闲,作业调度立即将作业1创建为进程,系统里此时只有一个进程,立即分配处理机,进入运行。此时的内存分配情况和外设分配情况如下表所列。
8:20作业2和作业3到达系统,此时内存还有850K的空闲,不够作业2和作业3同时调入内存,根据短作业优先算法,作业3更具有优势,故此时,作业调度将作业3调入内存,由于此时作业1还没有完成运行,绘图机未释放,作业3在内存里会阻塞等待,作业2在外存后备。
8:25作业1运行结束,释放绘图机和打印机,并释放150K内存,但是,此时系统里虽然有400K内存,却被分为2块,分别为150K和250K,因此,作业2继续在外存后备,继续等待,而作业3由于绘图机释放而被唤醒,经由就绪状态,进入运行状态。
8:30作业4到达系统,大小为200K,系统内存满足需求,即刻创建到内存,因所需打印机满足分配,作业4在就绪状态等待进程调度。由于采用先来先服务的调度算法,所以作业3继续运行,作业4在就绪队列里排队。
8:35作业3运行结束,释放内存和绘图机,退出系统。此时,作业5到达系统,后备队列里存在作业2和作业5,此时作业2的预计运行时间比较短,作业调度先将作业2创建到进程,作业2所需的打印机还有剩余,故其将在就绪队列中等待进程调度。作业5也满足内存资源,故也被调入内存,但是,其所需的绘图机可以满足要求,打印机却不够了,故作业5进入内存后将被阻塞。进程调度此时会将就绪队列的队首进程,即作业4调度进入运行。
9:05作业4结束,释放内存,释放打印机,空闲打印机唤醒作业5,作业5进入就绪队列,按先来先服务,此时,应该调度作业2运行。
9:20作业2运行结束,继续调度作业5运行直到9:40结束。
表 作业运行情况 | ||||||||
时间 | 8:00 | 8:20 | 8:25 | 8:30 | 8:35 | 9:05 | 9:20 | 9:40 |
后备 | — | 作业2 | 作业2 | 作业2 | — | — | — | — |
运行 | 作业1 | 作业1 | 作业3 | 作业3 | 作业4 | 作业2 | 作业5 | 结束 |
就绪 | — | — | — | 作业4 | 作业2 | 作业5 | — | — |
阻塞 | — | 作业3 | — | — | 作业5 | — | — | — |
内存 使用 | 0~150K | 0~150K 150~750K | 150~750K | 150~750K 750~950K | 0~300K 300~500K 750~950K | 0~300K 300~1500K | 300~500K | — |
绘图机 | 1 | -1 | 1 | 1 | 1 | 1 | 1 | 0 |
打印机1 | 1 | 1 | 0 | 1 | -1 | 1 | 1 | 0 |
打印机2 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |