参考文献:[1]费翔林, 骆斌. 操作系统教程(第五版) [M]. 北京:高等教育出版社,2014.
题目:某多道程序系统采用可变分区存储管理,供用户使用的内存空间为200KB,磁带机5台。采用静态方式分配外部设备,且不能移动内存中的作业,进程调度采用FCFS算法,忽略用户作业I/O操作时间。现有作业序列如下:
作业号 | 进入输入井时刻 | 运行时间/min | 内存需求量/KB | 磁带机需求/台 |
A | 8:30 | 40 | 30 | 3 |
B | 8:50 | 25 | 120 | 1 |
C | 9:00 | 35 | 100 | 2 |
D | 9:05 | 20 | 20 | 3 |
E | 9:10 | 10 | 60 | 1 |
(2)SJF算法选中作业执行的次序及作业平均周转时间。
分析:
- 题意解读:
- 作业调度和进程调度:计算机核心是磁盘(外存)、内存、CPU,放在磁盘中的就是作业,放在内存中的就是进程,从磁盘中选中满足资源的作业到内存中创建进程的过程就是高级调用,从内存中选中一个进程到CPU中执行就是低级调用。所以对于题目中的要求,进程采用FCFS算法,就是内存中的进程的调度算法;xxxx算法选中作业,就是磁盘中的作业创建进程的策略。
- 周转时间 = 完成时刻 - 提交时刻(进入输入井时刻)。
- 磁带机不可剥夺。
- 不能移动内存中的作业:就是一旦进程创建成功,其对应的空间地址不能更改。
- 解题步骤:
答案:
第1题:FCFS算法调度作业
作业号 | 提交时刻 | 进内存时刻 | 开始时刻 | 完成时刻 | 周转时间 |
A | 8:30 | 8:30 | 8:30 | 9:10 | 40min |
B | 8:50 | 8:50 | 9:10 | 9:35 | 45min |
C | 9:00 | 9:35 | 9:55 | 10:30 | 90min |
D | 9:05 | 9:10 | 9:35 | 9:55 | 50min |
E | 9:10 | 9:55 | 10:30 | 10:40 | 90min |
作业执行次序 | A -> B -> D -> C -> E | ||||
平均周转时间 | (40 + 45 + 90 + 50 + 90) / 5 = 54(min) |
第2题:SJF算法调度作业
作业号 | 提交时刻 | 进内存时刻 | 开始时刻 | 完成时刻 | 周转时间 |
A | 8:30 | 8:30 | 8:30 | 9:10 | 40min |
B | 8:50 | 8:50 | 9:10 | 9:35 | 45min |
C | 9:00 | 9:55 | 10:05 | 10:40 | 100min |
D | 9:05 | 9:10 | 9:35 | 9:55 | 50min |
E | 9:10 | 9:35 | 9:55 | 10:05 | 55min |
作业执行次序 | A -> B -> D -> E -> C | ||||
平均周转时间 | (40 + 45 + 100 + 50 + 55) / 5 = 58(min) |
变题:在上题中,如果允许移动已在内存中的作业,其它条件保持不变。
分析:允许移动内存中的作业(应该是进程吧(′д` )…彡…彡),就是说使用的内存不超过200KB就可以了。
解题步骤:
答案:
第1题:FCFS算法调度作业
作业号 | 提交时刻 | 进内存时刻 | 开始时刻 | 完成时刻 | 周转时间 |
A | 8:30 | 8:30 | 8:30 | 9:10 | 40min |
B | 8:50 | 8:50 | 9:10 | 9:35 | 45min |
C | 9:00 | 9:55 | 10:05 | 10:40 | 100min |
D | 9:05 | 9:10 | 9:35 | 9:55 | 50min |
E | 9:10 | 9:10 | 9:55 | 10:05 | 55min |
作业执行次序 | A -> B -> D -> E -> C | ||||
平均周转时间 | (40 + 45 + 100 + 50 + 55) / 5 = 58(min) |
第2题:SJF算法调度作业
作业号 | 提交时刻 | 进内存时刻 | 开始时刻 | 完成时刻 | 周转时间 |
A | 8:30 | 8:30 | 8:30 | 9:10 | 40min |
B | 8:50 | 8:50 | 9:10 | 9:35 | 45min |
C | 9:00 | 9:45 | 10:05 | 10:40 | 100min |
D | 9:05 | 9:10(后) | 9:45 | 10:05 | 60min |
E | 9:10 | 9:10(先) | 9:35 | 9:45 | 35min |
作业执行次序 | A -> B -> E -> D -> C | ||||
平均周转时间 | (40 + 45 + 100 + 60 + 35) / 5 = 56(min) |
KEYS:
- 周转时间 = 完成时刻 - 提交时刻。
- 作业的调度和进程的调度,要从 磁盘 – 内存 – CPU 这三个角度考虑,题目说的算法是针对作业的还是进程的,这是有区别的。