今日做到一道操作系统的课后题:
.假定某多道程序系统有供用户使用的主存空间100k,磁带机2台,打印机1台,系统采 用可变式分区管理主存,优先分配内存的低地址部分,且作业在内存中不能移动.设 备采用静态分配技术.主存中的作业平分cpu的时间.作业采用先来先服务调度算法. I/O操作的时间忽略不计. 现有如下一组作业序列:
作业号 提交时间 运行时间(分) 主存量 磁带机 打印机
1 8:00 25 15k 1 1
2 8:20 10 30k 0 1
3 8:20 20 60k 1 0
4 8:30 20 20k 1 0
5 8:35 15 10k 1 1
有许多小伙伴就有疑问,此题中的“主存中的作业平分cpu的时间”究竟是什么意思呢?
大家都知道时间片轮转,但是这里的时间片具体是多少呢?
实际上,这里的“平分”是指概念上的平分。
举个例子:
假设当前有两个作业在主存中运行,作业1要求服务时间是5分钟,作业2要求服务时间是10分钟。
若时间片设置为2.5分钟:
情况1:作业1运行2.5分钟,接着作业2运行2.5分钟,再作业1运行2.5分钟,此时作业1结束,总的运行时间是7.5分钟。
情况2:作业2运行2.5分钟,接着作业1运行2.5分钟,再作业2运行2.5分钟,再作业1运行2.5分钟,此时作业1结束,总的运行时间是10分钟。
如果时间片更小呢,小到0.000000001s,那么以上两种情况的作业1的总的运行时间都为10分钟。
即可以理解为作业1运行0.000000001s,接着作业2运行0.000000001s,如此循环往复,即时间片轮转,那么作业1差不多需要5x2=10分钟才能结束(真正运行了5分钟),而此时作业2只真正运行了5分钟,还剩5分钟没有运行,这5分钟的总的运行时间,还需要看后面是否有新加入的作业和它平分CPU时间。
由此可以得出结论:总的运行时间 = 剩余要求服务时间 x 主存中同时运行作业的数量
总之,这道题既没有给出时间片多长,也没说谁先抢到CPU,所以不需要纠结这么多。