设供用户使用的主存空间为 100K,采用可变式分区存储管理,现有一个作业 A,具体信息为:进入输入井时间(时)为10.1、需要计算时间(分)为42、主存量要求(K)为15,高级调度和低级调度均采用 SJF 算法,分别计算各作业进 入主存时间,开始运行时间,结束运行时间及周转时间。(注:采用移动技术)
时间: 2023-09-09 09:14:24 浏览: 98
首先,我们需要确定可用分区。由于采用可变式分区存储管理,初始时可用分区大小为100K,因此我们只有一个可用分区。
作业A需要15K的主存空间,因此可以被装入主存。接下来按照SJF算法进行高级调度和低级调度。
高级调度:
作业A需要计算时间为42分钟,因此需要在进入主存后的42分钟内完成。现在是10时1分,因此作业A必须在10时43分之前完成。如果没有其他进程需要运行,则可以直接运行作业A。否则,需要先运行需要计算时间更短的进程。
低级调度:
假设此时有作业B和作业C在等待运行。它们的计算时间分别为20分钟和30分钟。根据SJF算法,应该先运行计算时间更短的作业B。因此,作业B会被移入主存,并在10时1分开始运行,运行结束时间为10时21分。
此时,作业A可以被装入主存。由于只有一个可用分区,作业A必须与作业B所在的分区合并。由于作业B已经运行结束,因此可以将作业A放在作业B所在的分区。此时,可用分区大小变为85K。
作业A开始运行的时间为10时21分,结束时间为10时43分。因此,作业A的周转时间为22分钟。
总结:
- 作业B进入主存时间为10时1分,开始运行时间为10时1分,结束运行时间为10时21分,周转时间为20分钟。
- 作业A进入主存时间为10时21分,开始运行时间为10时21分,结束运行时间为10时43分,周转时间为22分钟。
相关问题
设供用户使用的主存空间为 100K,采用可变式分区存储管理,现有一个作业 C,具体信息为:进入输入井时间(时)为10.5、需要计算时间(分)为24、主存量要求(K)为50,高级调度和低级调度均采用 SJF 算法,分别计算各作业进 入主存时间,开始运行时间,结束运行时间及周转时间。(注:采用移动技术)
首先,我们需要根据可变式分区存储管理的算法为作业分配内存空间。假设当前主存空间情况如下:
| 分区 | 起始地址 | 结束地址 | 大小 |
| ---- | -------- | -------- | ------ |
| 1 | 0 | 9 | 10K |
| 2 | 10 | 19 | 10K |
| 3 | 20 | 39 | 20K |
| 4 | 40 | 99 | 60K |
根据 SJF 算法,我们需要先按照作业需要的主存量进行排序。因此,作业 C 应该排在最前面。
首先,作业 C 进入输入井时间为 10.5,此时我们需要将其分配到合适的内存分区。根据可变式分区存储管理的算法,我们可以使用移动技术将分区 4 中的作业往后移动,为作业 C 空出合适的内存空间。
| 分区 | 起始地址 | 结束地址 | 大小 |
| ---- | -------- | -------- | ------ |
| 1 | 0 | 9 | 10K |
| 2 | 10 | 19 | 10K |
| 3 | 20 | 39 | 20K |
| 4 | 54 | 99 | 46K |
此时,作业 C 可以被分配到分区 4 中,起始地址为 40,结束地址为 53,大小为 14K。
接下来,我们可以计算作业 C 的进入主存时间、开始运行时间、结束运行时间和周转时间:
进入主存时间 = 10.5
开始运行时间 = 19
结束运行时间 = 43
周转时间 = 43 - 10.5 + 1 = 33.5 分钟(注意,这里的加 1 是因为作业 C 运行时刻的计算需要包括从输入井进入主存的时间)
最后,更新主存空间情况:
| 分区 | 起始地址 | 结束地址 | 大小 |
| ---- | -------- | -------- | ------ |
| 1 | 0 | 9 | 10K |
| 2 | 10 | 19 | 10K |
| 3 | 20 | 39 | 20K |
| 4 | 40 | 53 | 14K |
| 5 | 54 | 99 | 46K |
设供用户使用的主存空间为 100K,采用可变式分区存储管理,现有五个作业 A、B、C、 D、E,具体信息如题 33 表,高级调度和低级调度均采用 SJF 算法,分别计算各作业进 入主存时间,开始运行时间,结束运行时间及周转时间。(注:采用移动技术)
首先,我们需要对作业进行排序,按照作业的运行时间从短到长进行排序。排序后的作业信息如下:
| 作业 | 长度(K) |
|-----|-----------|
| E | 4 |
| C | 9 |
| D | 12 |
| A | 15 |
| B | 20 |
接下来,我们按照 SJF 算法进行进程调度。
1. 高级调度
在高级调度中,我们按照作业的长度来判断是否进入内存。由于所有作业的长度之和小于主存空间,因此所有作业都可以进入内存。进入内存的顺序如下:
| 作业 | 长度(K) |
|-----|-----------|
| E | 4 |
| C | 9 |
| D | 12 |
| A | 15 |
| B | 20 |
2. 低级调度
在低级调度中,我们按照作业的长度来选择运行作业。初始时,所有作业都处于就绪状态,按照长度从小到大排序。因此,作业 E 最先运行。
- 作业 E 进入时间为 0,开始运行时间为 0,结束运行时间为 4,周转时间为 4。
- 作业 C 进入时间为 0,开始运行时间为 4,结束运行时间为 13,周转时间为 13。
- 作业 D 进入时间为 0,开始运行时间为 13,结束运行时间为 25,周转时间为 25。
- 作业 A 进入时间为 0,开始运行时间为 25,结束运行时间为 40,周转时间为 40。
- 作业 B 进入时间为 0,开始运行时间为 40,结束运行时间为 60,周转时间为 60。
因此,各作业的进入主存时间、开始运行时间、结束运行时间和周转时间如下:
| 作业 | 进入主存时间 | 开始运行时间 | 结束运行时间 | 周转时间 |
|-----|---------------|---------------|---------------|----------|
| E | 0 | 0 | 4 | 4 |
| C | 0 | 4 | 13 | 13 |
| D | 0 | 13 | 25 | 25 |
| A | 0 | 25 | 40 | 40 |
| B | 0 | 40 | 60 | 60 |
阅读全文