设供用户使用的主存空间为 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 14:07:21 浏览: 66
首先,根据可变式分区存储管理,我们需要划分分区。初始时,整个主存空间为一个空闲分区。
| 空闲分区 | 大小(K) |
| --- | --- |
| 0 | 100 |
进程 A 进入输入井的时间最早,因此首先进入主存。首先,它需要 15K 的空间,由于当前的空闲分区大小为 100K,足够容纳进程 A,因此将进程 A 分配到空闲分区中,并将该分区划分为一个已分配分区。
| 已分配分区 | 大小(K) |
| --- | --- |
| A | 15 |
| 空闲分区 | 大小(K) |
| --- | --- |
| 15 | 85 |
接下来,进程 B 进入输入井。由于进程 B 需要 60K 的空间,因此无法将它分配到当前的空闲分区中。此时,我们需要使用移动技术,将已分配分区 A 移动到主存的起始位置,并将空闲分区合并为一个大的空闲分区。
| 已分配分区 | 大小(K) |
| --- | --- |
| A | 15 |
| 空闲分区 | 大小(K) |
| --- | --- |
| 0 | 15 |
| 75 | 25 |
现在,空闲分区中有一个大小为 75K 的分区,足够容纳进程 B。因此,将进程 B 分配到空闲分区中,并将该分区划分为一个已分配分区。
| 已分配分区 | 大小(K) |
| --- | --- |
| A | 15 |
| B | 60 |
| 空闲分区 | 大小(K) |
| --- | --- |
| 75 | 25 |
接下来,进程 C 进入输入井。由于进程 C 需要 50K 的空间,可以将它分配到当前的空闲分区中,因此将进程 C 分配到空闲分区中,并将该分区划分为一个已分配分区。
| 已分配分区 | 大小(K) |
| --- | --- |
| A | 15 |
| B | 60 |
| C | 50 |
| 空闲分区 | 大小(K) |
| --- | --- |
| 75 | 25 |
进程 D 进入输入井,需要 10K 的空间,可以将它分配到当前的空闲分区中,因此将进程 D 分配到空闲分区中,并将该分区划分为一个已分配分区。
| 已分配分区 | 大小(K) |
| --- | --- |
| A | 15 |
| B | 60 |
| C | 50 |
| D | 10 |
| 空闲分区 | 大小(K) |
| --- | --- |
| 75 | 15 |
最后,进程 E 进入输入井,需要 20K 的空间,可以将它分配到当前的空闲分区中,因此将进程 E 分配到空闲分区中,并将该分区划分为一个已分配分区。
| 已分配分区 | 大小(K) |
| --- | --- |
| A | 15 |
| B | 60 |
| C | 50 |
| D | 10 |
| E | 20 |
| 空闲分区 | 大小(K) |
| --- | --- |
| 75 | 0 |
现在,所有的进程都已经成功地分配到了主存中。
接下来,根据 SJF 算法进行高级调度和低级调度,计算各作业进入主存时间、开始运行时间、结束运行时间和周转时间。
首先,根据进入输入井的时间,进程 A 最先进入主存,进入主存时间为 10.1 时。由于 A 是第一个进入主存的进程,因此它的开始运行时间就是进入主存的时间,即 10.1 时。进程 A 的需要计算时间为 42 分钟,因此它的结束运行时间为 10.1 时 + 42 分钟 = 10.43 时。进程 A 的周转时间为结束运行时间 - 进入输入井的时间 = 10.43 时 - 10.1 时 = 0.33 小时。
进程 B 的进入主存时间为 10.3 时。由于此时 A 还在运行,因此进程 B 进入就绪队列中等待。当进程 A 运行结束后,进程 B 开始运行。进程 B 的开始运行时间为 10.43 时,需要计算时间为 30 分钟,因此它的结束运行时间为 10.43 时 + 30 分钟 = 10.73 时。进程 B 的周转时间为结束运行时间 - 进入输入井的时间 = 10.73 时 - 10.3 时 = 0.43 小时。
进程 C 的进入主存时间为 10.5 时。此时,进程 A 和进程 B 都已经运行结束,因此进程 C 可以直接开始运行。进程 C 的开始运行时间为 10.5 时,需要计算时间为 24 分钟,因此它的结束运行时间为 10.5 时 + 24 分钟 = 10.74 时。进程 C 的周转时间为结束运行时间 - 进入输入井的时间 = 10.74 时 - 10.5 时 = 0.24 小时。
进程 D 的进入主存时间为 10.6 时。由于进程 C 还在运行,因此进程 D 进入就绪队列中等待。当进程 C 运行结束后,进程 D 开始运行。进程 D 的开始运行时间为 10.74 时,需要计算时间为 24 分钟,因此它的结束运行时间为 10.74 时 + 24 分钟 = 10.98 时。进程 D 的周转时间为结束运行时间 - 进入输入井的时间 = 10.98 时 - 10.6 时 = 0.38 小时。
最后,进程 E 的进入主存时间为 10.7 时。由于进程 D 还在运行,因此进程 E 进入就绪队列中等待。当进程 D 运行结束后,进程 E 开始运行。进程 E 的开始运行时间为 10.98 时,需要计算时间为 12 分钟,因此它的结束运行时间为 10.98 时 + 12 分钟 = 11.1 时。进程 E 的周转时间为结束运行时间 - 进入输入井的时间 = 11.1 时 - 10.7 时 = 0.4 小时。
因此,各作业的进入主存时间、开始运行时间、结束运行时间和周转时间如下所示:
| 作业名 | 进入主存时间(时) | 开始运行时间(时) | 结束运行时间(时) | 周转时间(小时) |
| --- | --- | --- | --- | --- |
| A | 10.1 | 10.1 | 10.43 | 0.33 |
| B | 10.3 | 10.43 | 10.73 | 0.43 |
| C | 10.5 | 10.5 | 10.74 | 0.24 |
| D | 10.6 | 10.74 | 10.98 | 0.38 |
| E | 10.7 | 10.98 | 11.1 | 0.4 |
阅读全文