假设有一个多道程序设计系统,采用可变分区方式管理主存储器,且不能移动已在主存储器中的作业。若供用户使用的主存空间为200KB,系统配备5台磁带机,有一批作业见下表:
时间: 2023-05-28 20:06:53 浏览: 237
作业名 | 需求空间(KB)| 运行时间(分钟)
---|---|---
A | 80 | 20
B | 30 | 10
C | 60 | 15
D | 90 | 25
E | 40 | 5
首先,我们需要确定可用的主存空间大小和分区的初始情况。根据题目给出的信息,可用的主存空间为200KB,我们可以将其分为以下几个分区:
- 分区1:100KB
- 分区2:50KB
- 分区3:30KB
- 分区4:20KB
这些分区的大小不是随意确定的,而是需要考虑到可以容纳哪些作业。例如,分区1的大小为100KB,是因为最大的作业需要90KB,而其他作业需要的空间相对较小,可以容纳在剩余的空间中。
接下来,我们按照作业的先后顺序,尝试将它们装入主存。首先是作业A,它需要80KB的空间,可以放入分区1中。此时,分区1中还剩下20KB的空间。
接着是作业B,它需要30KB的空间,可以放入分区2中。此时,分区2中还剩下20KB的空间。
再来是作业C,它需要60KB的空间,不能放入分区2中,因为剩余空间不足,也不能放入分区3和分区4中,因为它们的大小都不够。因此,我们需要将作业A从分区1中移出,以腾出更多的空间来容纳作业C。假设作业A已经运行了10分钟,那么它占用的空间可以暂时释放出来,等到它再次运行时再将它调入主存。在这种情况下,我们需要将作业A从分区1中移出,空出100KB的空间,然后将作业C放入分区1中。
然后是作业D,它需要90KB的空间,可以放入分区3中。此时,分区3中还剩下10KB的空间。
最后是作业E,它需要40KB的空间,可以放入分区4中。此时,分区4中还剩下0KB的空间,已经没有足够的空间来容纳其他作业了。
最终,主存中的情况如下:
- 分区1:作业C(60KB)
- 分区2:作业B(30KB)
- 分区3:作业D(90KB)
- 分区4:作业E(40KB)
作业A暂时从主存中移出,空出100KB的空间。当作业A再次运行时,它需要的空间已经不是80KB了,因为它已经占用了一部分空间,因此需要重新计算它需要的空间大小。假设此时作业A需要60KB的空间,那么它可以放入分区2中,此时分区2中还剩下30KB的空间。
当作业B运行结束后,它占用的空间可以释放出来,此时分区2中有50KB的空间,可以容纳作业A和其他较小的作业。如果有更多的作业需要运行,我们需要根据它们的大小和运行时间来动态调整分区的大小和位置,以尽可能地充分利用主存的空间。