问题 问答题

在某勘探队计算中心的大型计算机系统中,某台大型机可供用户使用的内存空间为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

选择题
单项选择题