Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685), страница 45
Текст из файла (страница 45)
Чтобы получить список блоковфайловой системы, в которых хранится содержимое конкретного файла, необходимо по имени вуказанном каталоге найти номер начального блока, а затем, последовательно обращаясь к таблицеразмещения и извлекая из каждой записи номер следующего блока, возможно построениеискомого списка.
Данное решение выглядит эффективнее предыдущего. Во-первых, в этомрешении весь блок используется полностью для хранения содержимого файла. Во-вторых, приоткрытии файла можно составить список блоков данного файла и, следовательно, осуществлятьпрямой доступ. Заметим, что для максимальной эффективности необходимо, чтобы эта таблицацеликом размещалась в оперативной памяти, но для современных дисков, имеющих огромныеобъемы, данная таблица будет иметь большой размер (например, для 60-тигигабайтного раздела иблоков, размером 1 килобайт, потребуется 60 000 000*4(байта) = 240 мегабайт), что являетсяодним из недостатков рассматриваемой модели.
Другим недостатком является ограничение наразмер файла в силу ограниченности длины списка блоков, принадлежащих данному файлу.0Ø1523Начальныйблок файла14506……k–1Номера блоковфайловой системыРис. 99.Таблица размещения файлов (FAT).Следующая модель — модель организации файловой системы с использованием т.н.индексных узлов (дескрипторов). Принцип модели состоит в том, что в атрибуты файладобавляется информация о номерах блоков файловой системы, в которых размещаетсясодержимое файла. Это означает, что при открытии файла можно сразу получить перечень блоков.Соответственно, необходимость использования FAT-таблицы отпадает, зато, с другой стороны,при предельных размерах файла размер индексного дескриптора становится соизмеримым сразмером FAT-таблицы. Для разрешения этой проблемы существует два принципиальныхрешения.
Во-первых, это тривиальное ограничение на максимальный объем файла. Во-вторых, этопостроение иерархической организации данных о блоках файла в индексном дескрипторе. Впоследнем случае вводятся иерархические уровни представления информации: часть (первые N)блоков перечисляются непосредственно в индексном узле, а оставшиеся представляются в виде178косвенной ссылки.
Это решение имеет следующие преимущества. Нет необходимости вразмещении в ОЗУ информации всей FAT обо всех файлах системы, в памяти размещаютсяатрибуты, связанные только с открытыми файлами. При этом индексный дескриптор имеетфиксированный размер, а файл может иметь практически «неограниченную» длину.4.1.6Модели реализации каталоговСуществуют несколько подходов организации каталогов. Во-первых, каталог можетпредставляться в виде таблицы, у которой в одной колонке находятся имена файлов, а востальных — все атрибуты. Эта модель хороша тем, что все необходимые данные находятся воперативной доступности, зато размер записи в таблице каталога, да и сама таблица, может бытьбольшой (например, из-за большого числа атрибутов), что влечет за собой долгий поиск вкаталоге. Другой подход заключается в том, что каталог также представляется в виде таблицы, вкоторой один столбец хранит имена, а в другом хранится ссылка на системную таблицу,содержащую атрибуты соответствующего файла.
Этот подход имеет дополнительноепреимущество, заключающееся в том, что для разных типов файлов можно иметь различныйнабор атрибутов.Name1АтрибутыName1Name2АтрибутыName2Name3Атрибуты……Атрибутыфайла Name1………Атрибутыфайла Name2…Рис. 100.Модели организации каталогов.Одной из проблем, встречающейся в организации каталогов, является проблема длиныимени. Изначально эта проблема решалась достаточно просто: имя файла было ограниченошестью или восемью символами.
В современных системах разрешается присваивать файламдостаточно длинные имена. И, как следствие, встает иная проблема: для эффективной работы скаталогом необходимо, чтобы информация в каталогах хранилась в сжатом виде, в т.ч. и именафайлов должны быть короткими. О некоторых решениях данной проблемы речь пойдет ниже приобсуждении файловой системы ОС Unix.4.1.7Соответствие имени файла и его содержимогоЕще один момент, на который стоит обратить внимание при рассмотрении организациифайловых систем, — это проблема соответствия между именем файла и содержимым этого файла.Как отмечалось выше, у любого файла есть его имя как отдельная характеристика файлаили же как один из атрибутов файла. В различных файловых системах по-разному решаетсяуказанная проблема соответствия имени и содержимого.
Первый очевидный подход заключается втом, что устанавливается взаимнооднозначное соответствие, т.е. для каждого содержимогофайла в системе существует единственное имя, ассоциированное с этим содержимым, иобратно — для каждого имени существует единственное содержимое.На сегодняшний день почти все современные файловые системы позволяют нарушать этовзаимнооднозначное соответствие путем предоставления возможности установления для одного итого же содержимого файла двух и более имен. При этом, существуют несколько моделейорганизации данного подхода.179Первая модель — это симметричное, или равноправное, именование. В этом случае содним и тем же содержимым ассоциируется группа имен, каждое из которых равноправное. Этоозначает, что какое бы из имен, ассоциированных с данным содержимым, не взяли, мыпосредством этого имени можем выполнить все операции, и они будут выполнены одинаково.Такая модель реализована в некоторых файловых системах посредством установления т.н.жесткой связи (4.1.7).
В этом случае среди атрибутов есть счетчик имен, ссылающихся на данноесодержимое. Уничтожая файл с одним из этих имен, производится следующий порядок действий.Файловая система уменьшает счетчик имен на единицу; если счетчик обнулился, то в этом случаеудаляется содержимое, иначе файловая система удаляет только указанное имя файла изсоответствующего каталога. Заметим, что при такой организации древовидность файловойсистемы (древовидность размещения файлов) нарушается, поскольку имена, ассоциированные содним и тем же содержимым, можно разместить в разных узлах дерева, т.е.
произвольныхкаталогах файловой системы. Но сохраняется древовидность именования файлов.Name1Атрибуты файлаNameCount = 2Name2Рис. 101.СодержимоефайлаПример жесткой связи.Следующей модель организации — это «мягкая» ссылка, или символическая связь (хотяздесь лучше бы подошло название символьной связи, 4.1.7). Данное именование являетсянесимметричным, суть которого заключается в следующем. Пускай существует содержимоефайла, с которым жесткой связью ассоциировано некоторое имя (Name2). К этому файлу теперьможно организовать доступ через файл-ссылку. Это означает, что создается еще один файлнекоторого специального типа (типа файла-ссылки), в атрибутах которого указывается его тип ито, что он ссылается на файл с именем Name 2. Теперь можно работать с содержимым файла Name 2посредством косвенного доступа через файл-ссылку.
Но некоторые операции с файлом-ссылкойбудут происходить иначе. Например, если вызывается операция удаления файла-ссылки, тоудаляется именно файл-ссылка, а не файл с именем Name 2. Если же явно удалить файл Name 2, то вэтом случае файл-ссылка окажется висячей ссылкой.Name1Рис. 102.4.1.8СодержимоефайлаName2Пример символической связи.Координация использования пространства внешней памятиС точки зрения организации использования пространства внешней памяти файловойсистемой существует несколько аспектов, на которые необходимо обратить внимание. Первыймомент связан с проблемой выбора размера блока файловой системы.
Задача определенияоптимального размера блока не имеет четкого решения. Если файловая система предоставляетвозможность квотировать размер блока, то надо учитывать, что больший размер блока ведет кувеличению производительности файловой системы (поскольку данные файла оказываютсялокализованными на жестком диске, из чего следует, что при доступе снижается количествоперемещений считывающей головки). Но недостатком является то, что чем больше размер блока,тем выше внутренняя фрагментация, а, следовательно, неэффективность использованияпространства ВЗУ (если, блок, к примеру, имеет размер 1024 байт, а файл занимает 1 байт, тотеряются 1023 байта).
Альтернативой являются блоки меньшего размера, которые снижают180внутреннюю фрагментацию, но при выборе меньшего размера блока повышаются накладныерасходы при доступе к файлу в связи фрагментация файла по диску.Еще одна проблема, на которую стоит обратить внимание, — это проблема учетасвободных блоков файловой системы. Здесь тоже существует несколько подходов решения,среди которых нельзя выбрать наилучший: каждый из них имеет свои достоинства и недостатки.Первый подход заключается в том, что вся совокупность свободных блоков помещается вединый список, т.е. номера свободных блоков образуют связный список, который располагается внескольких блоках файловой системы.