Максимальный размер файла с учетом конкретной структуры inode? - PullRequest
12 голосов
/ 30 апреля 2010

Предположим, что файловая система UNIX имеет некоторые ограничения - скажем, блоки 2 КБ и адреса дисков 8B. Каков максимальный размер файла, если inode содержит 13 прямых записей, и одну одиночную, двойную и тройную косвенные записи каждая?

Ответы [ 3 ]

19 голосов
/ 30 апреля 2010

Это объясняет это для вас:

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."

Поменяйте 8 КБ на 2 КБ и настройте записи для меньшего размера блока.

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

Из вашего вопроса мне не ясно, включают ли 13 записей синглы, двойники и тройки или они разделены, но это должно быть легко отрегулировать - просто измените 10 в выражении на 13.

Я думаю, что я правильно настроил всю математику ... перепроверьте это = | Надеюсь, это не домашняя работа, которую я сделал для тебя;)

1 голос
/ 02 июня 2014

Сколько указателей в 1 блоке?

     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"
    

Сколько указателей в файловой системе?

     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"
     

Следовательно, размер файловой системы:

size of the disk is  : total of pointer*size of the pointer , which is around 34 GB "
    
0 голосов
/ 12 сентября 2017

У нас есть ярлык, который можно использовать для конкурсных экзаменов:

Max file size possible = [ block size/pointer size]^3 * block size
...