Re: [理工] 作业系统 ch5 process scheduling

楼主: A4P8T6X9 (残废的名侦探)   2014-06-29 20:36:49
※ 引述《mozzan (mozzan)》之铭言:
: 这是恐龙第八版的习题 (ch5 process scheduling)
: 5.16
: Consider a preemptive priority scheduling algorithm based on dynamically
: changing priority. Larger priority numbers imply higher priority.
: When a process is waiting for the CPU (in the ready, but not running), its
: priority changes at rate A; when it is running. its priority changes at a rate
: B. All processes are given a priority of 0 when they enter the ready queue.
: The parameter A and B can be set to give many different scheduling algorithm.
: a. What is the algorithm that result form B > A > 0 (A : FCFS)
: b. What is the algorithm that result form A < B < 0 (A : LIFO)
: 另外题库还有
: c. What is the algorithm that result form A > B > 0 (A : LIFO)
: d. What is the algorithm that result form B < A < 0 (A : FCFS)
: a和b 没问题
: 其他都不太了解为什么,像 A > B > 0
: 刚进入Ready queue的为0,原先在Ready queue和Runing的priority应该都较高
: 为何答案却是 LIFO
: 而 B < A < 0
: 就更不懂了,烦请大家解惑,感谢
要以 process 执行时间相对长的方面来思考,如果执行时间都超短,那么不管是哪一个都是
FCFS 因为瞬间就好了,也没有换不换的问题了。
在此先假设一个前提:执行时间短的基本上都会先完成,相对来说执行时间短的参考度比
较低,所以讨论偏重执行时间长的。
值得一提的是题目中还有假设进入ready queue中的process priority都会设成零,言下
之意便是即使在 CPU 中养了很久有很高的 priority ,一离开也变成浮云了。
那么,以 c 来说等待中的 process 权限会上升得比较快,如果大家都不能一下子就完
成,后面进来的总有机会追过前面 process 的 priority,所以后面有机会进去 CPU执
行,如果后面相对时间短,那么就是 LIFO 了,当然如果后面时间是长的,那么前面会先
做完,可是根据我们假设短的本来就会先做完,参考度低,不看,在后面进来的总有更短
的,所以整体来看还是 LIFO。
以 d 来说,进去执行的,一下就会被踢出来,可是他一进入 ready 他又是 0 所以又可
以进入 CPU,就是 FCFS 了。
参考看看 ~
作者: mozzan (mozzan)   2014-06-29 20:49:00
请问您c的假设是以两个process在竞争吗?
楼主: A4P8T6X9 (残废的名侦探)   2014-06-29 20:53:00
不只,如果第二个时间长,那个在后面的总有短的。
作者: mozzan (mozzan)   2014-06-29 20:57:00
大概了解,但c我的理解是这边的LIFO指的是后面的可能超前而好像不一定是指"Last",不一定指最后进来Ready的那一个是这样吗?
楼主: A4P8T6X9 (残废的名侦探)   2014-06-29 21:21:00
在后面超前完成那一个时间点,不就是 LIFO?
作者: mozzan (mozzan)   2014-06-29 21:29:00
因为我一直以为是像stack的,像是b,最后进来的为0,马上可以Run,如果之后没有其他Process进到Ready,就一直跑到结束直觉看起来似乎就真的是最后进来的Process,第一个结束

Links booklink

Contact Us: admin [ a t ] ucptt.com