Индексированное размещение файловой системы: inode

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

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

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

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

24 pointers x 2 KB = 48 KB

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

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

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

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

person michael    schedule 20.11.2011    source источник


Ответы (1)


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

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

24 x 512 x 2KB = 24MB

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

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

 22 x 2KB = 44 KB

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

1 x 512 x 2KB = 1 MB

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

1 x 512 x 512 x 2KB = 512 MB

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

person dmeister    schedule 24.11.2011