设供用户使用的主存空间为 100K,采用可变式分区存储管理,现有一个作业 C,具体信息为:进入输入井时间(时)为10.5、需要计算时间(分)为24、主存量要求(K)为50,高级调度和低级调度均采用 SJF 算法,分别计算各作业进 入主存时间,开始运行时间,结束运行时间及周转时间。(注:采用移动技术)
时间: 2023-09-09 21:14:25 浏览: 138
首先,我们需要将主存空间分为若干个可变大小的分区,以适应不同作业的主存需求。假设初始时主存空间为一块 100K 的连续空间,我们采用首次适应算法将其分为以下 3 个分区:
| 分区号 | 起始地址 | 终止地址 | 大小(K)|
|-------|---------|---------|---------|
| 1 | 0 | 49 | 50 |
| 2 | 50 | 99 | 50 |
此时,作业 C 进入输入井。由于采用 SJF 算法,需要先进行高级调度,即选择最短作业优先进入主存。由于作业 C 需要 50K 的主存,且此时只有一块 50K 的空闲分区,因此作业 C 被分配到分区 1 中。作业 C 的进入主存时间为 10.5 时,开始运行时间为 10.5 时,结束运行时间为 10.5 + 24 = 34.5 时,周转时间为 34.5 - 10.5 = 24 分钟。
此时,主存中的分区情况如下:
| 分区号 | 起始地址 | 终止地址 | 大小(K)|
|-------|---------|---------|---------|
| 1 | 0 | 49 | 50 |
| 2 | 50 | 99 | 50 |
接下来,我们假设又有作业 A、B、D、E 先后进入输入井,它们的主存需求分别为 20K、30K、80K、45K。根据 SJF 算法,我们按照作业需要的主存大小将它们排序,得到作业 A、B、E、D。然后进行低级调度,即将它们依次分配到主存中。
作业 A 首先进入主存,由于只需要 20K 的主存,可以分配到分区 1 中的剩余空间中。作业 A 的进入主存时间为 10.5 + 24 = 34.5 时,开始运行时间为 34.5 时,结束运行时间为 34.5 + 15 = 49.5 时,周转时间为 49.5 - 34.5 = 15 分钟。
此时,主存中的分区情况如下:
| 分区号 | 起始地址 | 终止地址 | 大小(K)|
|-------|---------|---------|---------|
| 1 | 0 | 19 | 20 |
| 2 | 20 | 49 | 30 |
| 3 | 50 | 99 | 50 |
接着,作业 B 进入主存,由于需要 30K 的主存,可以分配到分区 2 中。作业 B 的进入主存时间为 49.5 时,开始运行时间为 49.5 时,结束运行时间为 49.5 + 20 = 69.5 时,周转时间为 69.5 - 34.5 = 35 分钟。
此时,主存中的分区情况如下:
| 分区号 | 起始地址 | 终止地址 | 大小(K)|
|-------|---------|---------|---------|
| 1 | 0 | 19 | 20 |
| 2 | 50 | 79 | 30 |
| 3 | 80 | 99 | 20 |
作业 E 进入主存,由于需要 45K 的主存,可以分配到分区 3 中。此时,主存中的分区情况如下:
| 分区号 | 起始地址 | 终止地址 | 大小(K)|
|-------|---------|---------|---------|
| 1 | 0 | 19 | 20 |
| 2 | 50 | 79 | 30 |
| 3 | 80 | 99 | 20 |
作业 D 进入主存,由于需要 80K 的主存,无法分配到任何一个分区中。此时,我们需要进行移动技术,将已经运行完毕的作业 A 和部分分区中的内容移出主存,以为作业 D 腾出足够的空间。
具体来说,我们可以将作业 A 占用的分区 1 中的内容移动到分区 2 的空闲空间中,然后将分区 1 和分区 2 合并为一个 50K 的分区。此时,主存中的分区情况如下:
| 分区号 | 起始地址 | 终止地址 | 大小(K)|
|-------|---------|---------|---------|
| 1 | 0 | 49 | 50 |
| 2 | 50 | 99 | 50 |
然后,我们可以将作业 D 分配到分区 1 中。作业 D 的进入主存时间为 69.5 + 20 = 89.5 时,开始运行时间为 89.5 时,结束运行时间为 89.5 + 40 = 129.5 时,周转时间为 129.5 - 34.5 = 95 分钟。
此时,主存中的分区情况如下:
| 分区号 | 起始地址 | 终止地址 | 大小(K)|
|-------|---------|---------|---------|
| 1 | 0 | 49 | 50 |
| 2 | 50 | 79 | 30 |
| 3 | 80 | 99 | 20 |
最后,作业 B 运行完毕,其占用的分区 2 变为了空闲分区,我们可以将其与分区 3 合并为一个 50K 的分区。此时,主存中的分区情况如下:
| 分区号 | 起始地址 | 终止地址 | 大小(K)|
|-------|---------|---------|---------|
| 1 | 0 | 49 | 50 |
| 2 | 50 | 99 | 50 |
因此,作业 C、A、B、E、D 的进入主存时间、开始运行时间、结束运行时间和周转时间分别为:
| 作业 | 进入主存时间 | 开始运行时间 | 结束运行时间 | 周转时间 |
|-----|------------|------------|------------|--------|
| C | 10.5| 10.5| 34.5| 24|
| A | 34.5| 34.5| 49.5| 15|
| B | 49.5| 49.5| 69.5| 35|
| E | 69.5| 69.5| 89.5| 20|
| D | 89.5| 89.5| 129.5| 95|
阅读全文