Билеты (Graur) (1114774), страница 29
Текст из файла (страница 29)
0-й элемент этого массива есть номер блока из пространства блоковФС, в котором находится продолжение этого списка. Соответственно 0-й элементэтого блока есть ссылка на следующий массив из Ν ссылок и т.д. ФС оперативноработает с этим массивом. Если в нем есть свободные места, то при освобожденииблоков, они записываются на свободные места, если требуются новые блоки, тоони выбираются из этого массива. Если массив исчерпывается, то информацияберется из следующего блока.
Если массив полностью заполнен, т.е. освобождаетсямного блоков, то выбирается следующий свободный блок и этот массивскидывается на этот блок. Это достаточно важная информация, которая в каждыймомент отражает состояние ФС.Оперативный доступ к списку осуществляется посредством использования массивав суперблоке.Работа с массивом свободных ИДМассив номеров свободных индексных дескрипторов содержит оперативный наборномеров свободных индексных дескрипторов. Размер массива - Nиндекс.При освобождении индексного дескриптора, если есть свободное место в массиве,то номер освободившегося индексного дескриптора записывается всоответствующий элемент массива.
Если свободного места в массиве нет, то этотномер «забывается».При запросе нового индексного дескриптора осуществляется поиск в массиве, еслимассив не пустой, то все в порядке, если массив пустой – происходит операцияобновления его содержимого (происходит просмотр области индексныхдескрипторов и занесение в массив обнаруженных свободных).
Т.е. массивсвободных индексных дескрипторов – это своеобразный буфер.Индексные дескрипторыИндексный дескриптор (ИД) – описатель файла, содержит все необходимые дляработы с файлом служебные атрибуты.Через ИД осуществляется доступ к содержимому файлов. Любое имя файла всистеме ассоциировано с единственным ИД, но это соответствие неоднозначно.Т.е. ИД может соответствовать произвольное количество имен.Структура индексного дескриптора:•тип файла, права, атрибуты выполнения (если = 0, то ИД свободен);•число имен, которые ассоциированы с данным ИД;•идентификаторы владельца-пользователя, владельца-группы;•размер файла в байтах;•время последнего доступа к файлу;•время последней модификации содержимого файла;•время последней модификации ИД (за исключением времени доступа и временимодификации файла)•массив номеров блоков файла.Адресация блоков файлаДля простоты изложения будем считать, что размер блока равен 512 байт.Размещение данных файла задается списком его блоков.Это снимает проблемы непрерывных файловых систем, т.е.
систем, где блокифайла располагаются последовательно. Таким образом реально блоки файла могутбыть разбросаны по диску, но логически они образуют цепочку, содержащую весьнабор данных.Ключом, задающим подобное расположение служит массив номеров блоков файла,содержащий список из 13 номеров блоков на диске, хранящихся в ИД.Первые десять указывают на десять блоков некоторого файла.Если файл занимает более 10 блоков, то 11 элемент указывает на косвенный блок,содержащий до 128 адресов дополнительных блоков файла (это еще 70656 байт).Большие файлы используют 12-ый элемент, который указывает на блок,содержащий 128 указателей на блоки, каждый из которых содержит по 128 адресовблоков файла.Еще в больших файлах аналогично используется 13 элемент.Трехкратная косвенная адресация позволяет(10+128+128*128+128*128*128)*512 байт.создаватьфайлыдлинойТаким образом,если файл меньше 512 байт, то необходимо одно обращение к диску,если длина файла находится в пределах 512-70565 байт, то - два и так далее.Приведенный способ адресации позволяет иметь прямой и быстрый доступ кфайлам.
Эта возможность также усиливается кэшированием диска, позволяющимхранить в памяти наиболее используемые блоки.При открытии файла соответствующий ИД считывается в память и системестановятся доступны все номера блоков данного файла.Для одного и того же файла, открываемого несколько раз, в памяти находитсятолько один ИД.Система фиксирует число открытий данного файла и, когда этот счетчикобнуляется, резидентный образ ИД переписывается на диск. Если при этомизменений в файле не было и не модифицировался ИД, то запись не выполняется.Указанные особенности существенно влияют на эффективность файловой системы.Файл каталог. Файл каталог для ФС System V представляет собой таблицу, каждая записькоторой состоит из 16 байтов. Первые 2 байта – это номер индексного дескриптора.Последующие 14 байтов – это поле для имени файла.
Соответственно имеетсяпредопределенные записи в этих полях – это первые две строчки. 1-я строчка – этоссылка на самого себя, т.е. в этой строчке находится имя «.» (точка) и номериндексного этого файла каталога. Следующая запись – это ссылка на родительскийкаталог, соответственно в нем имеется номер индексного дескриптора и имя «..»(две точки).Содержимое файла – таблица. 1-е поле – это номер индексногодескриптора (ИД), которому соответствует имя Name из второго поля.Размеры полей в общем случае могут быть различные.Например размер поля ИД – 2 байта (ограничение числа ИД в файловой системе65535), размер поля Name – 14 байт (соответственно ограничение на длину имени).В Unix две первые строки любого каталога имеют фиксированное содержание: имя«•» - ссылка на самого себя, имя «••» - ссылка на родительский каталог.Видно, что при такой реализации имя файла “отделено” от других его атрибутов.Это позволяет, в частности, один и тот же файл внести в несколько каталогов.
Приэтом, как отмечалось выше, данный файл может иметь разные имена в разныхкаталогах, но ссылаться они будут на один и тот же ИД, который является ключомдля доступа к данным файла. При обсуждении понятия ИД говорилось, что каждаяновая ссылка к ИД отмечается в специальном поле. Рассмотрим пример,иллюстрирующий связь файлов с каталогами.Установление связейДревовидность файловой системы Unix нарушается возможностью установленияссылок на одни и те же индексные дескрипторы из различных каталогов.
Этоможет быть достигнуто за счет использования средств установлениядополнительных связей.Существует две разновидности этой операции.Жесткая связь -. с одним и тем же индексным дескриптором будетассоциироваться два или более имени, размещенных в произвольных точках ФС.При этом каждое из этих имен равноценно.Для этого используется команда: ln …dir1/name1 …dir2/name2 – (дли индексногодескриптора, с которым ассоциировано имя name1 добавляется еще одно имя –name2).Все имена, ассоциированные таким образом с индексным дескрипторомравноправны.При этом увеличивается значение поля индексного дескриптора число имен,которые ассоциированы с данным ИД.Нельзя устанавливать жесткую связь для файлов-каталогов.Установление символической связи - косвенная адресация на существующее имяфайла.В ФС можно создать специальный файл ссылку, содержимое которого размещаетсяв индексном дескрипторе этого файла.
Этим содержимым является текстоваястрока, указывающая полное имя того файла, с которым нужно ассоциироватьновое имя (имя файла-ссылки). Т.е. если name 1 и name 2 - это абсолютноравноправные файлы, то name 3 – это текстовая (символьная ссылка). Для name 3создается свой индексный дескриптор и через него организуется ссылка на файлname 1, при этом уже в индексном дескрипторе файла name 1 никакой информациио дополнительных ссылках на этот файл нет. Т.е. здесь уже некотораяасимметричная модель множественного именования содержимого файла. Еслибудет нужно удалить файл name 1, то система позволит это сделать, потому чтонигде в информации, связанной с этим файлом, не указывается, что на него естьтекстовая ссылка. И соответственно, когда после удаления этого файла произойдетобращение по ссылке /dir1/name1, то уже возникнут какие-то проблемы. Следуетпомнить, что не на любой файл можно установить ссылку.Для этих целей используется команда: ln –s …dir1/name1 …dir2/name3 – врезультате образуется специальный файл - ссылка.Достоинства ФС модели версии System V1)Оптимизация в работе со списками номеров свободных индексных дескрипторови блоков.2)Организация косвенной адресации блоков файлов, позволяющая использоватьэффективный доступ к значительному количеству блоков файла.Недостатки ФС модели версии System V1)Концентрация важной информации в суперблоке - ключевая информациясконцентрирована в суперблоке файловой системы, физическая потерясодержимого суперблока может приводит к значительным проблемам, касающимсяцелостности файловой системы.2)Проблема надежности (много ссылочных структур, возможна потеря данных присбоях).3)Фрагментация файла по диску – т.е.
при достаточно больших размерах файла егоблоки могут произвольным образом размещаться на физическом МД? Что можетприводить квыполнению значительного числа механических операцийперемещения головок устройства при чтении/записи данных файла.4)Организация каталога накладывает ограничения на возможную длину именифайла (14 символов).Билет 44.