看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《tkurockman (洛克人)》之銘言: : http://ppt.cc/jnwL : 其中的 linked allocation 完全不懂 : 習題解答 linked a b c d e f 照順序 : 1 52 3 1 52 100 : 整個囧掉 煩請大大說明 感謝 關鍵在於讀寫次數,還有先讀才能寫,寫入可以同時寫資料跟pointer。 a. 寫入資料跟pointer到新的block,並更改記憶體中之first,所以一次 (寫入) b. 這題是要把新的放在第51個,所以要先讀前面50,把第五十的pointer改成新的,並把新的指到原先的51 (現在的52),所以52次。 c. 先用記憶體中的end找到原先的end,1次,並寫入新的pointer,在寫入新的block中的data跟nil。 d. 先讀原先的第一個知道第二個的位址,再把這個位址寫到記憶體中的file control block,所以一次。 e. 因為要知道第52個的位址,先讀前面51個,之後把第50個的pointer指到第52個(現在變51了)的。 f. 要知道第99個的位址要,讀98次,並在讀第99個,再加上把他的pointer改成nil,並在記憶體中更改end,所以100次。 -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.120.6.140
tkurockman:謝謝回答! 01/15 15:55
bztfir:那個 可以詳細一點說明c為什麼是3嗎 看起來改原本的end是一 01/16 00:36
bztfir:次 寫入新的block並把ptr改成nil是一次 還有一次是? 01/16 00:37
bztfir:先感謝回答~ 01/16 00:37
A4P8T6X9:先讀才能寫,所以讀最後,改最後都算一次。 01/16 08:38
bztfir:了解了 感謝~ 01/17 20:23