抱歉,版上討論時冷時熱,沒注意到之前那篇還有人回,
以下將你的說明套色,後面附上我的說明
1. 12(B) : 我看恐龍書寫說 program counter 記錄的是下一個指令的位址,而不是目前
在執行的?
當下沒想那麼多,不過你說的是對的,因為計組中指令再算branch target時 ,
PC代表的值也是下個指令所再的記憶體位置,會修正於第一篇文的答案
2. 想請問13(B) :我覺得 waiting time是指在ready queue 中等待的時間,所以P2第二
次執行等待的時間應該不用計入waiting time裡,所以B應該是對的?
我是照你的說法算的,所以average waiting time = [0+(7+3)+9]/3
[...]分別就是p1,p2,p3的 waiting time , 看看和你的做法出入在哪
3. 13(D) 正確答案應該是什麼呢??
13(D)我是把它當成每單位時間完成的job數量 , 所以我認為答案是 3/16
因為沒看過Average throughput的定義,所以不是很嚴謹,只是單從字面上猜測
如果有版友有原文出處再請幫忙補充
4. 想確認17(C)做法是:只要被reference過則reference bit就變成1,replace過後refe
rence bit也立刻變1。然後每次要replace時都從第一個開始檢查,若reference bit 是1
,則改成0 並且繼續往下找;若reference bit 是0 則replace. (這個選項怎麼樣都做不
出這個答案...)
有2個假設
1.每次page fault的時候都是由第一個page往下依序判斷誰要被替換
2.沒有考慮是否modified
白色代表還有一次機會,紅色代表機會用完了
做法:遇到白色就變紅色,遇到紅色就直接換
當被reference到時,由紅色變白色
0 1 2 3 4 1 5 0 2 1 3 2 4 1 5 2 0 1 3 2 4 1 5
0 0 0 0 4 4 5 5 2 2 2 4 4 4 2 2 1 1 2 2 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 4 4 4
2 2 2 2 2 0 0 0 0 0 0 5 5 5 5 5 5 5 5 5
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
上述是我對恐龍本理解後的做法,和我之前看到的一些參考資料有些不同
補習班的資料好像是寫<Reference bit , Modify bit>視為二進位,數字小的先被換
因為我不知道modify bit要幹麻 , 所以後來就直接改成看誰被reference而已 ,
我不確定正確性,和版友認知有出入麻煩提出來討論,免得我在這誤人子弟