※ 引述《j897495 (咪咪)》之铭言:
: (1)Suppose a non-preemptive scheduler uses variable priorities
: and time quanta as the following table,where the highest priority is 5
: Priority Time quantum New priority after New priority after
: time quantum is expired returning from I/O
: 5 40 4 5
: 4 60 3 5
: 3 100 2 4
: 2 200 1 4
: 1 320 1 3
: Which of the following statements is "incorrect"?
: (A)Response time of interactive threads will increase.
: (B)Priorities of CPU-intensive threads will be lowered.
: (C)Time-quanta of I/O-bound threads will decrease.
: (D)None of the above.
首先判断这样的排班法则是偏好 I/O-bound job 还是 CPU-bound job
若一开始的优先权值为 3,则:
(1)I/O-bound job:
执行 100 单位 CPU computation 之后 time-out 被迫放掉 CPU
等到下一次从 waiting queue 回来之后的优先权值会变成 4
再执行 60 单位 CPU computation 之后 time-out 被迫放掉 CPU
等到下一次从 waiting queue 回来之后的优先权值会变成 5
再执行 40 单位 CPU computation 之后 time-out 被迫放掉 CPU
所以每一次 time-out 回来之后可执行的 CPU computation 单位会逐渐递减
(2)CPU-bound job:
执行 100 单位 CPU computation 之后 time-out 被迫放掉 CPU
等到下一次从 waiting queue 回来之后的优先权值变成 2
再执行 200 单位 CPU computation 之后 time-out 被迫放掉 CPU
等到下一次从 waiting queue 回来之后的优先权值变成 1
再执行 320 单位 CPU computation 之后 time-out 被迫放掉 CPU
所以每一次 time-out 回来之后可执行的 CPU computation 单位会逐渐递增
从上述分析可以看出来这样的排班法则是偏好 CPU-bound job
: 我的想法是Response time是第一次回应时间 所以RR的Quantum就是Response time
: 但优先权2和1的Process变为同样优先权所以A是错的
因为 interactive threads 所需要的 CPU time 较少
所以是属于 I/O-bound job
而此种排班法则是偏好 CPU-bound job
所以对于 I/O-bound job 的 response time 会比较长
所以(A)是正确的
: B的话CPU就是和I/O的优先权值相反 这样对吗?
感觉上 CPU-intensive threads 应该是指这样的 thread 是属于 CPU-bound job
因为没有看过这个词,所以我猜测应该是这个意思
如果是基于这样的假设条件的话,那这种 thread 的优先权值会逐渐降低是没错的
所以(B)是正确的
: C的话我就不知道要看哪一个了
由上述判断可知 I/O-bound threads 的 time-quantum 会逐渐递减
所以(C)是正确的
所以此题答案为(D)
: (2)另外我想知道有没有开放式课程是讲同步问题的MAILBOX
: 有点不是很清楚Blocking receive , Non-Blocking receive之类system call的用法
: 还有分类题库有看到的serializable transaction问题洪逸好像也没教过
: 不知道有没有网页讲的比较清楚的呢
: 谢谢各位拨空看我的问题
: 希望可以获得解答^^
这部分的话因为 OS 是归类在 Process Synchronization 这一章
而洪逸在讲这一章的时候是着重在 Memory Sharing 的部分
感觉他只用了 5% 左右的时间讲 Message Passing 的部分
其实只是简单带过而已
如果是 for 研究所考试的话,我觉得洪逸的笔记大概看过,稍微了解一下就好
毕竟考试大部分都考在 Memory Sharing 的部分
但如果是要深入了解 Message Passing 的详细内容、运作过程的话
可能要找跟网络相关的课程吧...我也不知道XD