看板 Grad-ProbAsk 關於我們 聯絡資訊
如果今天有100個block,題目問插入block到middle處,linked allocation要做幾次 I/O operation? 有兩種解答: 1.read到49th block,add new bolck,then change 49th pointer to new block 所以共49+1+1=51次 2.read到50th block,改變50th pointer to new block,將new pointer指向51th block 所以共50+1+1=52次 是哪個對?? 還有就是像解答(1),他加入new bolck之後,只改變49th pointer to new block, 並沒有將new pointer指向51th block,Why?? 到底正確解答是.....??加入至middle是要read到第幾個?pointer的改變有哪些? 謝謝解答! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.11.102 ※ 編輯: boy5548 來自: 114.39.11.102 (02/12 20:00)
xygod:49th讀到memory後,將new block的link指到49th的link, 02/12 20:13
xygod:49th的link指向new block,此時還沒有I/O,等到寫入49th,new 02/12 20:14
xygod:block,才多了兩次I/O。我是這樣想的啦。 02/12 20:14
boy5548:樓上可以解釋清楚點嗎 不太懂 謝謝^^ 02/12 21:03
xygod:我的想法是,你先讀block到memory,更改link的值以後才存回 02/12 21:07
xygod:disk,此時才有I/O operation,而你讀完49th block時,順便修 02/12 21:08
xygod:改new block的link所要指到的地方,接著等49th更新完link值 02/12 21:09
xygod:在存回49th block(一次I/O)和new block(一次I/O),所以共 02/12 21:09
xygod:49+1+1=51次,應該是這樣吧。 02/12 21:10
aoqq12:那個= = 這兩個只是因為middle的block假設不同 02/12 22:34
aoqq12:一個是50 一個是51 02/12 22:34
aoqq12:第一個add block應該是改link的動作 02/12 22:39
sneak: 49th讀到memor https://daxiv.com 09/11 14:15