Debian - USB-устройства не работают, если сначала подключить их к концентратору

Первоначальная иерархия уровней инодов работает примерно так:

Вы можете хранить один или несколько номеров блоков непосредственно в индексном узле. Это означает, что вы используете несколько байтов больше для индексного дескриптора, но для небольших файлов вам не нужно выделять полный блок, который в основном пуст.

Следующий уровень — одна косвенность. :Вы выделяете блок для хранения указателей блоков. Только адрес этого косвенного блока хранится в индексе. Это не использует как-то «меньше места», и большинство файловых систем, даже ранние, работали так (рядом с индексным узлом/именем файла есть указатель, который указывает на блок, в котором хранятся номера блоков файла ).

Но что делать, когда место в этом блоке заканчивается? Вы должны выделить еще один блок, но где вы храните ссылку на этот блок? Вы можете просто добавить эти ссылки в индексный дескриптор, но для хранения файлов большего размера индексный дескриптор станет большим. И вам нужны маленькие иноды, чтобы как можно больше инодов могло поместиться в один блок (меньше доступа к диску, чтобы прочитать больше инодов ).

Таким образом, вы используете двухуровневый косвенный блок -:Вы просто добавляете один указатель к индексному узлу, после чего у вас есть целый блок для хранения указателей на косвенные блоки, а косвенные блоки хранят блочный адрес самого файла.

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

Таким образом, смысл не в том, чтобы «использовать меньше места в целом», а в том, чтобы «использовать схему, которая эффективно использует блоки для ожидаемого распределения файлов по размеру, т. е. много маленьких файлов, несколько больших файлов и очень мало огромных файлов». файлы".

С другой стороны, таблицы страниц работают совсем по-другому.

Редактировать

Ответить на вопросы в комментарии:

Блоки данных имеют фиксированный размер (первоначально 512 байт, IIRC ),который кратен размеру блока базовых жестких дисков. Таким образом, размер блока данных не может «уменьшаться».

Как я пытался описать выше, весь смысл того, чтобы индексные дескрипторы не занимали слишком много места, состоит в том, чтобы сделать доступ к инодам более быстрым(или, в качестве альтернативы, заставить кэшируемые иноды использовать меньше памяти -назад затем, когда была изобретена файловая система unix с индексными дескрипторами, у компьютеров было намного меньше памяти, чем сегодня ). Это не о какой-то общей экономии места. Как вы сами говорите, все должно где-то храниться, и если оно не занимает место в месте X, оно будет занимать место в месте Y.

Простое добавление переменного количества указателей блоков в индексный дескриптор нецелесообразно, поскольку индексный дескриптор должен занимать фиксированное количество места. -Вы хотите использовать номер индексного дескриптора для вычисления адреса блока и смещения внутри блока где хранится информация об индексе. Вы не можете этого сделать, если каждый инод имеет разный размер. Так что должна быть какая-то форма косвенности.

Таблицы страниц работают по-разному, потому что аппаратно они реализуются по-разному -так оно и есть. Иерархия имеет фиксированную глубину, всегда одинаковую (, хотя иногда ее можно настраивать. И хотя чтение блока с диска происходит медленно, для таблиц страниц это не имеет значения. Так что проблемы с дизайном совсем другие.

3
24.03.2020, 12:33
1 ответ

В итоге купил другой USB-концентратор, который работает должным образом (Trust HALYX с портами 3.2 gen1)

0
28.04.2021, 23:22

Теги

Похожие вопросы