※ 引述《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