Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685), страница 47
Текст из файла (страница 47)
Длякаждого свободного блока увеличивается на 1 соответствующая ему запись в таблице свободныхблоков.На следующем шаге запускается аналогичный процесс, но уже анализа индексных узлов.Для каждого блока, номер которого встретился в индексном дескрипторе, увеличивается на 1соответствующая ему запись в таблице занятых блоков.На последнем шаге запускается процесс анализа содержимого этих таблиц и коррекцииошибочных ситуаций.183Рассмотрим, какие ситуации могут возникнуть, и посмотрим, как файловая системапоступает в том или ином случае. Допустим, что рассматриваемая файловая система состоит изшести блоков.Если при анализе таблиц для каждого номера блока сумма содержимого ячеек с даннымномером дает 1, то считается, что система не выявила противоречий (4.1.11).012345110101Таблица занятых блоков001010Таблица свободных блоковРис.
104.системы соблюдена.Проверка целостности файловой системы. Непротиворечивость файловойЕсли же находится блок, о котором нет информации ни в таблице свободных, ни в таблицезанятых блоков (т.е. и в соответствующих ячейка стоят нули), то считается, что этот блок потеряниз списка свободных блоков (4.1.11). Данная ситуация не катастрофическая, соответственно, нетребует оперативного разрешения (т.е. может быть отложенной): информацию о данном блокесистема может внести в таблицу свободных блоков спустя некоторое время.012345101011Таблица занятых блоков000100Таблица свободных блоковРис. 105.Проверка целостности файловой системы.
Зафиксирована пропажа блока.Если в ходе анализа блок получается свободным, но индекс свободности его больше 1 (т.е.соответствующая ячейка таблицы свободных блоков хранит значение, большее 1), то считается,что нарушен список свободных блоков, и начинается процесс пересоздания таблицы свободныхблоков (4.1.11).Рис. 106.свободного блока.012345100011Таблица занятых блоков012100Таблица свободных блоковПроверка целостности файловой системы. Зафиксировано дублированиеЕсли же возникает аналогичная ситуация, но уже для таблицы занятых блоков, то этоозначает, что данным файлом владеют несколько файлов, что является ошибкой (4.1.11).Автоматически определить, какой из файлов ошибочно хранит ссылку на этот блок, непредставляется возможным: необходимо анализировать содержимое этих файлов. Для разрешенияданной проблемы файловая система может предпринять следующие действия.
Пускайконфликтуют файлы с именами Name1 и Name2. Тогда файловая система сначала создает копииэтих файлов (соответственно, с именами Name12 и Name22), затем удаляет файлы с исходнымиименами Name1 и Name2, запускает процесс переопределение списка свободных блоков и, наконец,обратно переименовывает эти копии с фиксацией факта их возможной некорректности.184Рис. 107.012345120011Таблица занятых блоков001100Таблица свободных блоковПроверка целостности файловой системы. Зафиксировано дублирование занятогоблока.И, наконец, для проверки корректности файловой системы может выполняться проверкасоответствия числа реального количества жестких связей тому значению, которое хранится средиатрибутов файла (4.1.11).
Если эти значения совпадают, то считается, что данный файл находитсяв корректном состоянии, иначе происходит коррекция атрибута-счетчика жестких связей.Name1Name2…NameLАтрибуты файлаNameCount = MСодержимоефайлаif (NameCount != L) { NameCount = L; }Рис. 108.4.2Проверка целостности файловой системы. Контроль жестких связей.Примеры реализаций файловых системВ качестве примеров реализаций файловых систем рассмотрим файловые системы,реализованные в ОС Unix. Выбор наш объясняется тем, что создатели ОС Unix изначальновыбрали удачную архитектуру файловой системы, причем эту файловую систему нельзярассматривать в отрыве от самой ОС: ОС Unix строится на понятии файла как одном изфундаментальных понятий (напомним, что вторым важным понятием является понятие процесса).Необходимо заметить, что, как утверждают авторы системы, архитектура файловой системы былазаимствована и развита из ОС Multix (файловую систему которой скорее можно назватьэкспериментальной, и, как следствие, она не была массово распространена).В качестве одного из главных достоинств ОС Unix является то, что именно эта системастала одной из первых систем, в которой была реализована иерархическая файловая система.
Самаже операционная система строится на понятиях процесса и файла, т.е. все то, с чем мы работаем,является файлом, а это, в свою очередь, означает, что в системе реализованы унифицированныеинтерфейсы доступа и организации информации.Еще одно важное достоинство, которое необходимо отметить у ОС Unix, — это то, что онастала одной из первых операционных систем, открытых для расширения набора команд системы.До ее создания практически все команды, которые были доступны пользователю, представлялисьв виде набора жестких правил общения человека с системой (сравнимые с современнымиинтерпретаторами команд), модифицировать который не представлялось возможным.
Если жетребовалось внести коррективы в существующие команды, то необходимо было обратиться кразработчику операционной системы, и тот, по сути, создавал новую систему. В ОС Unix всеисполняемые команды принадлежат одной из двух групп: команды, встроенные в интерпретаторкоманд (например, pwd, cd и т.д.), и команды, реализация которых представляется в видеисполняемых файлов, расположенных в одном из каталогов файловой системы (это либоисполняемый бинарный файл, либо текстовый файл с командами для исполненияинтерпретатором команд).
Данный подход означает, что, варьируя правами доступа к файлам,уничтожая при необходимости или добавляя новые исполняемые файлы, пользователь способенсамостоятельно выстраивать функциональное окружение, необходимое для решения его задач.185Еще одним достоинством этой операционной системы является элегантная организацияидентификации доступа и прав доступа к файлам (об этом речь пойдет ниже). Так или иначе, нообозначенные фундаментальные концепции лежат в основе современных операционных системсемейства Unix до сих пор.4.2.1Организация файловой системы ОС Unix.
Виды файлов. Права доступаФайл ОС Unix — это специальным образом именованный набор данных, размещенных вфайловой системе. Файлы ОС Unix могут быть разных типов:− обычный файл (regular file) — это те файлы, с которыми регулярно имеет дело пользователь всвоей повседневной работе (например, текстовый файл, исполняемый файл и т.п.);− каталог (directory) — файл данного типа содержит имена и ссылки на атрибуты, которыесодержатся в данном каталоге;− специальный файл устройств (special device file) — как отмечалось выше, каждомуустройству, с которым работает ОС Unix, должен быть поставлен в соответствие файл данноготипа. Через имя файла устройства происходит обращение к устройству, а через содержимоеданного файла (которое достаточно специфично) можно обратиться к конкретному драйверуэтого устройства;− именованный канал, или FIFO-файл (named pipe, FIFO file) — о файлах этого типа шла речьвыше при обсуждении базовых средств организации взаимодействия процессов в ОС Unix (см.3.1.3);− файл-ссылка, или символическая связь (link) — файлы данного типа рассматривались вышепри изучении вопросов соответствия имени файла и его содержимого (см.
4.1.7);− сокет (socket) — файлы данного типа используются для реализации унифицированногоинтерфейса программирования распределенных систем (см. 3.3).Так или иначе, но с файлом каждого из указанных типов возможно осуществлять работу (в тойили иной степени) посредством стандартных интерфейсов работы с файлами. С каждым файломтакже ассоциированы такие характеристики, как права доступа к файлу, которыерегламентируют чтение содержимого файла, запись и исполнение файла.
Подобная интерпретацияправ доступа свойственна регулярным файлам, для других типов файлов интерпретация правдоступа отличается (например, для файлов-каталогов).Права на доступ к файлу разделяются на три категории пользователей — это правапользователя-владельца файла, права группы, к которой принадлежит владелец файла, без этоговладельца, и, наконец, права всех оставшихся пользователей системы (без указанной группывладельца). Соответственно, для каждой из категорий определяются вышеперечисленные правадоступа.4.2.2Логическая структура каталоговОдной из характеристик ОС Unix является характеристика, кажущаяся на первый взгляддостаточно странной: система рекомендует размещать системную и пользовательскуюинформацию по некоторым правилам.