Maximum file size given a particular inode structure?

前端 未结 3 568
星月不相逢
星月不相逢 2021-01-08 00:11

Suppose a UNIX file system has some constraints--say, 2 KB blocks and 8B disk addresses. What is the maximum file size if inodes contain 13 direct entries, and one single, d

相关标签:
3条回答
  • 2021-01-08 00:57

    How many pointers in 1 block?

         each block is 2kb = 2^11
         1 disk address is 8b = 2^3
         So, in 1 block there are 2^11/2^3 = 2^8 pointers"
        

    How many pointers in the file system?

         for 13 direct entries = (2^8)*13 = 3328
         for single  = (2^8)^2 = 2^16
         for double = (2^8)^3 = 2^24
         for triple = (2^8)^4 = 2^32
         total pointer is :3328 + 2^16 + 2^24 + 2^32"
         

    Therefore the size of the file system is:

    size of the disk is  : total of pointer*size of the pointer , which is around 34 GB "
        

    0 讨论(0)
  • 2021-01-08 01:04

    We hv a shortcut that can be used for competitive exams, given as :

    Max file size possible = [ block size/pointer size]^3 * block size
    
    0 讨论(0)
  • 2021-01-08 01:10

    This explains it for you:

    http://www.cis.temple.edu/~ingargio/cis307/readings/stable.html

    "The maximum size of a file will be 8KB*(10 + 2**10 + 2**20 + 2**30), that is more than 8TB."
    

    Swap 8KB for your 2KB, and adjust the entries for the smaller block size.

    2KB*(10 + 2**8 + 2**16 + 2**24)
    

    It's not clear to me from your question if the 13 entries include the singles, doubles and triples, or if they are separate, but that should be easy to adjust -- just change the 10 in the expression to a 13.

    I think I've adjusted all the math correctly... double check it =| Hope this isn't homework I did for you ;)

    0 讨论(0)
提交回复
热议问题