. 赵盈盈 2011210593
第四章作业下
1. 某系统进程调度状态变迁图如图1所示(设调度方式为非剥夺方式),请说明: (1)什么原因将引起发生变迁2、变迁3、变迁4? 答:(1)当进程分配的时间片用完的时候,会发生变迁2;当进程必须等待某事件发生时候发生变迁3;进程锁等待事件已发生的时候,发生变迁4
(2)当观察系统中所有进程时,能够看到某一进程产生的一次状态变迁能引起另一进程作一次状态变迁,在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1?
答:(2)当一个进程释放对cpu的占用,从运行队列进入等待队列,而且此时就绪序列
不为空的时候,就会发生变迁1.
(3)下述因果变迁是否要能发生?如果可能的话,在什么情况下发生? (a)3→1;(b)3→2;(c)2→1 答:(3)(a)3?1 能
当一个进程释放对cpu的占用,从运行队列进入等待队列,而且此时就绪序列不
为空的时候,就会发生变迁1. (b) 3?2 不能 (c) 2?1 能
当一个进程释放对cpu的占用,从运行队列进入就绪队列,而且此时就绪序列不为空的时候,就会发生变迁1.
2. 若题1中所采用的调度方式为可剥夺方式,请回答题1中提出的问题。
答2:只有一个不同:2?1 当新建进程B比现在正在运行进程A的优先级高的时候,不管A的时间片有没有用完,都会发生变迁2,A从运行状态变成就绪状态,因此也会发生变迁1,B从就绪状态转变成运行状态。
3. 某系统的进程状态变迁图如图2所示(设该系统的进程调度方式为非剥夺方式),请说明:
(1)一个进程发生变迁3的原因是什么?发生变迁2、变迁4的原因又是什么? 答(1):当运行进程因I/O而阻塞。这时候进程会从运行状态转到等待状态。发生变迁3。当高就绪队列为空是会发生变迁2。当等待使劲已经发生时,会发生变迁4。
(2)下述因果变迁是否会发生,如果有可能的话,在什么情况下发生?
(a)2→1;(b)3→2;(c)4→5;(d)4→2;(e)3→5 答:(2)(a)2?1:是因果变迁,当进程从运行状态转为就绪,并进入低优先就绪,而此时,当高优先就绪为空时,就会发生变迁1.
(b)3?2:不是因果变迁。而且不会发生。
(c)4?5:是因果变迁。当一个进程等待事件已发生,一个进程从等待队列进入高就绪队列。而此时,该进程优先级高于正在运行的进程优先级,就会发生变迁5. (d)4?2:不是因果变迁
(e)3?5:是因果变迁。当进程释放对cpu的占用,而高优先就绪又不为空时就会发生
1 / 3
. 变迁5
(3)根据此状态变迁图叙述该系统的调度策略、调度效果。 运 行 运 行 2 3 1 其次选择 2 3 500ms 首次选择 1 低优先就绪 因I/O而等待 5 100ms 就 绪 等 待 4 4 高优先就绪
图1 图2 答(3):调度策略:当有多个就绪队列,而且优先级不同时,系统会优先照顾I/O吞吐量大的进程,高优先就绪队列被调度的机会比较大,但是一旦被调度,得到的时间片会比较小。而低优先就绪队列进程被调度的机会小,但是一旦被调度,得到的时间片会比较大。
调度效果:当进程被调度后,优先级会降低,会进入低优先就绪队列。而处于低优先就绪队列的进程,优先级会随着时间的增加而增大。有可能会进入高优先就绪队列。
4. 作业调度和进程调度的任务各是什么?它们又有什么联系?
答:作业调度任务:完成作业从后备状态到执行状态和从执行状态到完成状态的转变。
进程调度任务:控制、协调进程对cpu的竞争,按照一定的调度算法,是某一就绪进程获得cpu的控制权,转换成运行状态。
联系:作业调度是按一定的算法从磁盘输入井中选择资源能得到满足的作业装入内存,
是作业有机会占用处理器执行。进程调度是来决定哪个作业能占用处理器,什么时候能占用处理器。
作业调度选中一个作业,并把它放入内存时,就为该作业创建一个进程,若有多个作业被装入内存,则内存中同时询在多个进程,这些进程的初始状态为就绪状态,然后,有进程调度来选择当前可占用处理器的进程,进程执行中由于某种原因状态发生变化,当他让出处理器时,进程调度就再选择另一个作业的进程执行。由此可见,作业调度与进程调度相互配合才能实现作业的并发执行。
5. 画出按优先数调度的进程调度算法的程序框图。 答:按优先数调度的进程调度算法的程序框图如下:
2 / 3
.
开 始 对进程控制块进行初始化 按优先数调度算法调度进程 否 所有进程是否执行完毕 是 结 束 3 / 3