设供用户使用的主存空间为 100K,采用可变式分区存储管理,现有五个作业 A、B、C、 D、E,具体信息如题 33 表,高级调度和低级调度均采用 SJF 算法,分别计算各作业进 入主存时间,开始运行时间,结束运行时间及周转时间。(注:采用移动技术) 作业名 进入输入井 时间(时) 需要计算 时间(分) 主存量 要求(K) A 10.1 42 15 B 10.3 30 60 C 10.5 24 50 D 10.6 24 10 E 10.7 12 20
时间: 2023-09-03 20:07:21 浏览: 97
首先,我们需要将作业按照需要的主存量进行排序:
D (10K) < E (20K) < C (50K) < A (15K) < B (60K)
接下来,我们进行可变式分区存储管理。
初始状态下,整个主存空间都是一个空闲分区,大小为 100K。
10.1 时刻,作业 A 进入输入井。由于需要 15K 主存,我们选择将其放入空闲分区的前端,剩余空间为 85K。
10.3 时刻,作业 B 进入输入井。由于需要 60K 主存,我们选择将其放入空闲分区的后端,剩余空间为 25K。
10.5 时刻,作业 C 进入输入井。由于需要 50K 主存,我们需要寻找一个空闲分区来存放它。此时,我们可以选择将作业 A 移动到空闲分区的后端,腾出一个大小为 50K 的空闲分区,将作业 C 放入其中。此时,剩余空间为 35K。
10.6 时刻,作业 D 进入输入井。由于需要 10K 主存,我们选择将其放入空闲分区的前端,剩余空间为 25K。
10.7 时刻,作业 E 进入输入井。由于需要 20K 主存,我们需要寻找一个空闲分区来存放它。此时,我们可以选择将作业 D 移动到空闲分区的后端,腾出一个大小为 10K 的空闲分区,将作业 E 放入其中。此时,剩余空间为 15K。
现在,所有作业都已经进入了主存。接下来,我们进行高级调度和低级调度。
首先,根据 SJF 算法进行高级调度。当前在主存中的作业按照需要计算时间从小到大排列:
D (24 分钟) < E (12 分钟) < C (24 分钟) < A (42 分钟) < B (30 分钟)
接下来,根据 SJF 算法进行低级调度。先选择运行需要计算时间最小的作业 E,运行时间为 12 分钟,结束运行时间为 10.7 + 0.2 = 10.9 时刻。此时,空闲分区的情况如下:
前段空闲分区(10K)- D - 中段空闲分区(50K)- C - 后段空闲分区(15K)
接下来,选择运行需要计算时间最小的作业 D,运行时间为 24 分钟,结束运行时间为 10.9 + 0.4 = 11.3 时刻。此时,空闲分区的情况如下:
前段空闲分区(34K)- C - 后段空闲分区(15K)
接下来,选择运行需要计算时间最小的作业 C,运行时间为 24 分钟,结束运行时间为 11.3 + 0.48 = 11.78 时刻。此时,空闲分区的情况如下:
前段空闲分区(34K)- 空闲分区(50K)- 后段空闲分区(15K)
接下来,选择运行需要计算时间最小的作业 A,运行时间为 42 分钟,结束运行时间为 11.78 + 0.84 = 12.62 时刻。此时,空闲分区的情况如下:
前段空闲分区(34K)- 空闲分区(50K)- 后段空闲分区(43K)
最后,选择运行需要计算时间最小的作业 B,运行时间为 30 分钟,结束运行时间为 12.62 + 0.6 = 13.22 时刻。此时,空闲分区的情况如下:
前段空闲分区(34K)- 空闲分区(10K)- 后段空闲分区(43K)
至此,所有作业都已经运行完毕。计算各作业进入主存时间、开始运行时间、结束运行时间、周转时间(以分钟为单位),结果如下:
作业名 进入主存时间 开始运行时间 结束运行时间 周转时间
A 10.1 11.78 12.62 1.52
B 10.3 13.22 13.82 3.52
C 10.5 11.3 11.78 1.28
D 10.6 10.9 11.3 0.7
E 10.7 10.9 10.9 0.2
阅读全文