[理工] OS-inode觀念!

看板Grad-ProbAsk作者 (andrew)時間5年前 (2019/02/19 22:03), 編輯推噓5(5015)
留言20則, 4人參與, 5年前最新討論串1/1
https://i.imgur.com/6NSIHt3.jpg
因為實在是想不通,想請教一下各位: 1-12放data block num, 13-15:single,double,triple 首先要確定拉出去的Index block內有幾個data block num,於是 block size/block num(address)length=一個index block內所放的data block個數=2^10 (假設) 然後開始算max size= (12+2^10+2^20+2^30)*block size 停! 如果13拉出去的一整個index block的大小=block size的話,那怎能這樣算? 上面公式是在算index block內的data block num個數吧?怎能用整個index block size 來乘? 這裡卡好久想不通……… 我是哪裡搞錯了啊?? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.131.35 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1550584988.A.D6E.html

02/19 22:33, 5年前 , 1F
有點看不懂你的敘述,不過single跟double那邊其實就是
02/19 22:33, 1F

02/19 22:33, 5年前 , 2F
跟multi-level page的道理一樣,就是把原本的那個block
02/19 22:33, 2F

02/19 22:33, 5年前 , 3F
拿來當索引而已,因此才會用block-size去除以一個pointe
02/19 22:33, 3F

02/19 22:33, 5年前 , 4F
r的大小,看總共幾個索引
02/19 22:33, 4F

02/19 22:36, 5年前 , 5F
1到12每格裡面存的都是pointer,會指到一個disk block,1
02/19 22:36, 5F

02/19 22:36, 5年前 , 6F
3的single是拿一個disk block來當index block,可以存1K
02/19 22:36, 6F

02/19 22:36, 5年前 , 7F
個(依你的假設)pointer,每個pointer都指到一個disk bloc
02/19 22:36, 7F

02/19 22:36, 5年前 , 8F
k存檔案,以此類推
02/19 22:36, 8F

02/19 22:45, 5年前 , 9F
對,然後計算出來的(12+………)這一串,應該是pointer
02/19 22:45, 9F

02/19 22:45, 5年前 , 10F
或者說是data block num的總數,那應該乘上pointer長而
02/19 22:45, 10F

02/19 22:45, 5年前 , 11F
不是block size吧?
02/19 22:45, 11F

02/19 22:49, 5年前 , 12F
題目要算的是可以存的檔案大小,而你算的這些(12+...)都
02/19 22:49, 12F

02/19 22:49, 5年前 , 13F
是存pointer,每個都會再指到一個大小為4 KB的disk block
02/19 22:49, 13F

02/19 22:49, 5年前 , 14F
,所以能存的檔案大小就是解答那樣
02/19 22:49, 14F

02/19 22:54, 5年前 , 15F
哦!謝謝你,我終於懂了!
02/19 22:54, 15F

02/21 00:29, 5年前 , 16F
借問一下,在Linux裡面,大檔案也會用到direct pointe
02/21 00:29, 16F

02/21 00:29, 5年前 , 17F
r(那12個)嗎?還是會改成只用indirect?如果是後者的
02/21 00:29, 17F

02/21 00:29, 5年前 , 18F
話,那這題答案應該會不一樣才對。
02/21 00:29, 18F

02/21 00:56, 5年前 , 19F
都會從1開始長,12格用完到第13會長出single level,都
02/21 00:56, 19F

02/21 00:56, 5年前 , 20F
用完到14格會長出double依此類推
02/21 00:56, 20F
文章代碼(AID): #1SR0oSrk (Grad-ProbAsk)