Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 95
Текст из файла (страница 95)
Такая информация используется стандартной библиотекой ввода-вывода, а также приложениями, имеющими собственные средства обработки ввода-вывода. 9,7. Хранение данных на диске 403 9.7.2. Правила размещения Суперблок файловой системы содержит список свободных блоков и список свободных индексных дескрипторов. Добавление или удаление элементов производится в конце этих списков. Их упорядочивание осуществляется только при создании файловой системы: список свободных блоков отсортирован в порядке их смежности, список свободных дескрипторов упорядочен последовательно. Однако через некоторый период времени использования файловой системы оба списка становятся произвольными, то есть управление размещением блоков или индексных дескрипторов в з51з не осуществляется. В противоположность оригинальной файловой системе 1)Х1Х, в гг8 производится группировка связанных между собой данных на диске и оптимизируется последовательный доступ.
Система ЕГ8 обладает более мощными средствами по управлению распределением дисковых блоков и индексных дескрипторов, а также каталогов. Правила размещения основаны на концепции группы цилиндров и требуют от файловой системы знаний о многих параметрах диска. Эти правила можно вкратце описать несколькими тезисами. + Система пытается помещать индексные дескрипторы файлов, располо. женных в одном каталоге, в одну и ту же группу цилиндров. Существует множество команд (наилучшим примером которых служит 1з -1), обращающихся ко всем дескрипторам одного каталога за небольшой промежуток времени.
Пользователи операционной системы часто имеют дело с ограниченным кругом объектов, работая с одними и теми же файлами, расположенными в одном каталоге (являющемся для пользователя текущим), до того как перейдут в другой каталог. + Система создает новый каталог в группе цилиндров, отличной от группы родительского каталога. Это помогает распределять данные на диске унифицированно. Процедура размещения выбирает новую группу цилиндров из групп с наиболыпим количеством свободных индексных дескрипторов. Из таких групп будет использована та, которая связана с минимальным количеством каталогов.
+ Система пытается располагать блоки данных файла в той же группе цилиндров, где находится и его индексный дескриптор, так как наиболее часто доступ осуществляется и к данным, и к дескриптору файла. + Для защиты от заполнения группы цилиндров одним файлом большого обьема система меняет группу цилиндров, если размер файла превышает 48 Кбайт и еще раз по превышению размера в 1 Мбайт. Величина, равная 48 Кбайт, выбрана исходя из того, что элементы «прямого» блока описывают в индексном дескрипторе файла как раз 404 Глава 9.
Реализации файловых систем первые 48 Кбайт (при использовании 4096-байтовых блоков)'. Выбор новой группы цилиндров основан па количестве его свободных блоков. + Система старается по возможности использова~ь для размещения файла послсдовательпые блоки. При последовательном чтении файла между операцией чтения одного блока и завершением процедуры ввода-вывода ядром имеется некоторая задержка. Поскольку диск пе перестает вращаться, за этот псриод времени его головка может оказаться над ссктором, находящимся на некотором расстоянии от того, из которого производилось чтение ранее. Г!рограммьк реализующие оптимизацию чтения, пытаются определять количество секторов, которые следует пропустить, чтобы в начале следующей операции чтения головка диска оказалась точно нал необходиапем сектором.
Такое число получило название фактора зидерлгки врал!ения (го!с!с!ау) или фактора чередооивия гекторов (1п1ег1еаче). Система должна уметь балансировать усилия, направленные на установление местонахождения данных и на распределение информации по диску. Если уделять слишком много внимания локализации, все данные могут оказаться записанными в одну группу цилиндров. В максимально вырожденном случае мы имеем на диске всего одну группу, как в файловой системе з5(к От возникновения подобной ситуации защищает правило создания подкаталогов в новых группах цилиндров и требование разделения файлов большого объема. Реализация правил размещения в ГГЯ является весьма эффективной при нсбольшом объеме занятости диска. При увеличении загруженности до 90т« преимущества методики становятся практически незаметными. Если на диске мало свободных блоков, системе становится значительно труднее находить блоки, расположенные оптимально.
Файловая система ГГЯ поддерживает параметр зарезервированного свободного места, обычно устанавливаемый в значение 105б. Использовать пространство из этого резерва может только суперпользователь. 9.8. Новые возможности ГРВ Файловая система имеет отличную от принятой в з5(з организацию хранения данных, поэтому переход на нову1о систему потребует вывода и восстановления информации, находящейся на дисках. Так как системы з5(в и ГГ8 все равно несовместимы друг с другом, разработчики последней решили добавить в нее несколько нововведений, не имею1цихся в з56. ' Количество «примых«блоков в массиве писковых акрссов в файловой системе РсБ было увеличено с 10 ло 12.
9.8. Новые возможности ЕЕЯ 405 Длинные имена файлов В файловой системе ЕЕ8 структура каталогов позволяет использовать для файлов имена длиной более 14 символов. Как показано на рис. 9.8, длина записи для каталогов в системе ЕЕВ может быть различна. Постоянная часть элемента состоит из полей номера индексного дескриптора, размера переменной части и размера имени файла. После этих параметров записывается имя файла, заканчивая>щееся нулевыми символами.
Остаток области имени заполняется пулевыми байтами до границы, кратной 4. Максимальная длина имени файла не превышает 255 символов. При удалении файла система 1оЕВ объединяет освобожденное пространство с предыдущим элементом (рис. 9.8, б). Сам каталог поделен на 512-байтовые порции. Элемент каталога не может занимать несколько таких кусков.
С целью поддержки создания переносимых кодов в стандартную библиотеку были добавлены функции, позволяюгцие производить независимый от файловой системы доступ к информации о каталоге (см, раздел 8.2.1). Номер /лойе Общий раамер Длина имени выраененное имя Рно. 9.8. Каталог в файловой системе ЕЕЗ: а — начальное состояние; б — после удаления гве2 Символические ссылки Применение символических ссылок (см. раздел 8А.1) позволяет преодолеть многие ограничения, характерные для жестких ссылок. Символическая ссылка представляет собой файл, указывающий на другой файл, называемый адресатом. Для идентификации файла как символической ссылки используется поле 1уре индексного дескриптора. Содержимым такого файла является имя пути к адресату. Такое имя может быть как абсолютным, так и относительным.
Процедуры преобразования имен каталогов умеют распознавать и обрабатывают символические ссылки. Если заданное имя является относительным, то процедура интерпретирует его в зависимости от каталога, в котором расположен файл ссылки. Несмотря на то, что обработка символических ссылок происходит незаметно для большинства программ, некоторым утилитам необходимо знать об их существовании. Для этой цели применяется систем- 406 Глава 9.
Реализации файловых систем ный вызов Ма1, который не преобразует последнюю символическую ссылку в имени, а также вызов геад(1пх, возвращающий содержимое (то есть адресата) ссылки. Создание ссылок осуществляется при помоши команды эут((пав Другие возможности В операционную систему 4.2ВВР добавлен вызов гепагпе, производящий неделимую операцию переименования файлов или каталогов, которая ранее требовала выполнения последовательности из команд оп11пк и 11п1.
В систему также был привнесен механизм квот, при помощи которого можно ограничить количество файловых ресурсов, доступных каждому пользователю. Квоты можно применять по отношению как к индексным дескрипторам, так и к блокам. Ограничение бывает мягким (зоЬ) — предупредительным — и жестким (11агг)), требующим вмешательства ядра. Позже некоторые из перечисленных средств были добавлены в обнов. ленную версию файловой системы з5Ь. В ее реализации для з'гй4 поддерживаются символические ссылки и неделимая оптация переименования.
Однако в этой системе нельзя задать квоты и использовать длинные имена файлов. 9.9. Анализ файловой системы ГГВ Файловая система ЕЕ8 обладает большей производительностью по сравнению с з5Егь Измерения на машине ЧАХ/750, оснащенной адаптером 1ЛЧ1В()5, показали 11 Ц увеличение пропускной способности чтения с 29 Кбайт/с в з5Ь (при размере блока 1 Кбайт) до 221 Кбайт/с в ЕЕ8 (размер блока — 4 Кбайт, фрагментов — 1 Кбайт). Коэффициент использования СР() при этом увеличился с 11 до 43%. На том же компьютере пропускная способность при записи выросла с 48 до 142 Кбайт/с, а использование процессора — от 29 до 43%.
Еще одним важным фактором, требующим упоминания, являются потери дискового пространства. В среднем на каждом файле теряется около половины блока (в з5Ь), либо около половины фрагмента (в ЕЕ5). Если размер одного фрагмента ЕЕ8 равен размеру блока з5Ь, то потери одинаковы. Основным преимуществом применения больших блоков является использование меньшего объема диска для указания на все блоки крупного файла. Для размещения такого файла в ЕЕ8 требуется лишь небольшое количество блоков косвенной связи. В противовес этому системе необходимо больше свободного места для отслеживания свободных блоков и фрагментов.
Это свойство практически сводит к нулю преимущества больших блоков. Таким образом, при использовании фрагментов, имеющих размер блока з5Ь, потери дискового пространства ЕЕ8 остаются почти такими же, как и в оригинальной файловой системе ()141Х. 9.9. Анализ файловой системы ГГ8 407 Резерв свободного пространства, оставляемый в ГГ5, можно считать потерянным, так как он не может быть задействован для размегцения файлов пользователей. Однако процент потерь в з5Ь при использовании блоков размером 1 1<байт примерно равен аналогичному показателю ГГ5 для варианта 4-килобайтовых блоков и фрагментов длиной 512 байт.
Для таких параметров систем объем зарезервированного пространства устанавливается равным 5% общего объема диска. Структура диска, показанная на рис. 9.?, не является единственно возможной. Современные диски 5СЯ г'Бша11 Сошрцгег Яувгегп!пгегГасе, интерфейс малых компьютерных систем) [1~ имеют цилинлры неодинакового размера. Такие диски используют преимущества того факта, что их внешние дорожки способны хранить информации больше, чем внутренние, поэтому весь диск разбит на несколько зон. Внутри одной зоны каждая дорожка имеет одинаковое число секторов. Система ГГ5 не умеет распознавать эти диски, что заставляет пользователей применять фиктивные размеры цилиндров.