Индексированное размещение файловой системы: inode - PullRequest
1 голос
/ 20 ноября 2011

Мне было интересно, может ли кто-нибудь перепроверить мои ответы на следующий вопрос.Я не уверен, правильно ли я понимаю одиночные косвенные блоки и двойные косвенные блоки.

Блок диска занимает 2 КБ, и используется индексное распределение.Индекс для файла имеет длину 128 байтов, 32 байта используются для информации о состоянии.Остальные 96 байтов используются для записей индекса - 4 байта на запись.

Каков максимальный объем данных, которые можно сохранить в файле, если используются следующие схемы?

a.каждая запись индекса является указателем на прямой блок

24 pointers x 2 KB = 48 KB

b.каждая запись индекса является указателем на один косвенный блок

2 KB / 4 pointers = 512 pointers = 2 MB x 24 = 48 MB

c.первые 22 записи - это указатели на прямые блоки, 23-я запись - указатель на один косвенный блок, а 24-я запись - указатель на двойной косвенный блок

22 pointers x 2 KB = 44 KB + 2 MB + 2 GB

1 Ответ

1 голос
/ 24 ноября 2011

Домашнее задание?

а) Правильно б) У вас есть 24 указателя на косвенные блоки первого уровня.Вы можете хранить 512 указателей в каждом косвенном блоке.Каждый указатель указывает на блок данных размером 2 КБ.

24 x 512 x 2KB = 24MB

Я не понимаю, откуда у вас 2 МБ?

c) 22 указателя на блоки 2 КБ:

 22 x 2KB = 44 KB

1 указатель на 512 указателей на 2KB:

1 x 512 x 2KB = 1 MB

1 указатель на 512 указателей, каждый из которых указывает на блок с 512 указателями на 2KB:

1 x 512 x 512 x 2KB = 512 MB

Для разработкиреальные файловые системы обычно что-то вроде c) используется.Например, ext3 имеет 12 прямых, 1 косвенных, 1 двойных косвенных и 1 тройных косвенных записей блока.

...