设供用户使用的主存空间为 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-08-31 13:13:26 浏览: 61
首先,根据作业的主存量要求,我们可以将主存分为以下几个可变分区:
1. 15K
2. 50K
3. 10K
4. 20K
5. 空闲空间(5K)
接下来,我们按照 SJF 算法进行高级调度和低级调度。
高级调度:
1. A 进入输入井,需要 42 分钟计算时间,需要 15K 主存。由于此时只有一个 15K 的分区可用,因此 A 可以直接进入主存。
2. B 进入输入井,需要 30 分钟计算时间,需要 60K 主存。由于没有足够的空闲分区可以给 B 使用,因此 B 不能进入主存。
低级调度:
此时主存中只有 A 这个作业在运行。
1. A 运行了 15 分钟,还需要 27 分钟才能完成计算。
2. C 进入输入井,需要 24 分钟计算时间,需要 50K 主存。此时有两个可用分区,一个是 50K 的,一个是 10K 的。由于 50K 的分区比较大,因此先尝试将 C 放到这个分区中。但是,由于 50K 的分区只有 35K 可用,而 C 需要 50K,因此 C 不能进入主存。
3. A 运行了 27 分钟,完成了计算任务,释放了 15K 的分区。此时,主存中有一个 15K 的空闲分区和一个 50K 的空闲分区。
4. C 进入输入井,需要 24 分钟计算时间,需要 50K 主存。此时可以将 C 放到之前释放的 15K 分区中。
5. D 进入输入井,需要 24 分钟计算时间,需要 10K 主存。由于此时只有一个 10K 的分区可用,因此 D 可以进入主存。
6. A 退出主存,释放了 50K 的分区。此时有一个 15K 的空闲分区、一个 50K 的空闲分区和一个 10K 的空闲分区。
7. E 进入输入井,需要 12 分钟计算时间,需要 20K 主存。由于此时只有一个 20K 的分区可用,因此 E 可以进入主存。
因此,各作业的进入主存时间、开始运行时间、结束运行时间及周转时间如下表所示:
| 作业名 | 进入主存时间 | 开始运行时间 | 结束运行时间 | 周转时间 |
| :----: | :----------: | :----------: | :----------: | :------: |
| A | 10.1 | 10.1 | 10.4 | 0.3 |
| B | 10.3 | | | |
| C | 10.5 | 10.4 | 10.8 | 0.3 |
| D | 10.6 | 10.8 | 11.0 | 0.4 |
| E | 10.7 | 11.0 | 11.1 | 0.4 |
其中,周转时间 = 结束运行时间 - 进入主存时间。