Answer:
a: 1 inode
b: 1 inode + 8 direct data block
c: 1 inode + 8 direct data block + 1 indirect data block + 56 data blocks
d: 1 inode + 8 direct data blocks + 1 indirect block + 256 data blocks + 4 double indirect blocks + 760 data blocks
Explanation:
From the question:
Inode contains 64 bytes of data, 8 direct, 1 indirect, 1 double-indirect, 1 triple-indirect blocks
Note:
A disk block size is 1 KB which is equivalent to 1024 bytes
Inode size is equvalent to 128 bytes
32bit disk addresses is equivalent to 4 bytes
Size of each disk block is 1 KB and size of each disk block address is 32 bits(4 bytes).
1 indirect block can addresses: [tex]\frac{2^{10}}{2^{2}} =2^{10-2}=x^{8}[/tex] blocks, which can store in total of [tex]2^{8}* 1024=262144[/tex] bytes.
a) 1 bytes: Inode stores the data(64 bytes), 1 inode can sufficiently store 1 byte file
b)1024 bytes: 1 inode + 1 direct data block(as the size of block is 1024 bytes)
c) 64 KB( 65536 bytes): 1 inode + 8 direct data blocks( 8*1024 = 8192 bytes) + 1 indirect data block + 56 data blocks
After using 8 direct blocks, remaining 57344 bytes (65536-8192 = 57344 ) should be stored in 56 blocks(57344/1024) using 1 indirect data block
d) 1 MB : 1 inode + 8 direct data blocks + 1 indirect block + 256 data blocks + 4 double indirect pointer blocks of overhead + 760 data blocks
After using 8 direct blocks and 1 indirect data blocks, remaining 778240(760Kbytes) bytes (1048576 - 8192 - 262144), still 760 data blocks are required. So 1 double indirect data block should also be used to point 4 blocks which in turn each points to 256 data blocks
1 double indirect can address [tex]2^{8}*2^{8}=2^{6}[/tex] bytes