Самодел 1 (1114716), страница 18
Текст из файла (страница 18)
5. Распределенное хранение резервных копий. Лучше держать много копий в разных местах – хоть где-нибудь, да
останется.
Стратегии архивирования
Физическая архивация
1.«один в один»;
При этом можно копировать свободные блоки, что не надо. Решение этой проблемы – п.2
2. интеллектуальная физическия архивация (копируются только использованные блоки файловой системы);
3. проблема обработки дефектных блоков. Чем больше носителей, тем больше дефектных блоков.
Логическая архивация – копирование файлов (а не блоков), модифицированных после заданной даты.
Проверка целостности файловой системы
Проблема – при аппаратных или программных сбоях возможна потеря информации:
• потеря модифицированных данных в «обычных» файлах;
• потеря системной информации (содержимое каталогов, списков системных блоков, индексные узлы и т.д.)
Необходим контроль целостности или непротиворечивости файловой системы.
Модельная стратегия контроля
1.Формируются две таблицы:
- таблица занятых блоков;
- таблица свободных блоков;
(размеры таблиц соответствуют размеру файловой системы – число записей равно числу блоков ФС)
Изначально все записи таблиц обнуляются.
2. Анализируется список свободных блоков. Для каждого номера свободного блока увеличивается на 1 соответствующая ему запись в таблице свободных.
3. Анализируются все индексные узлы. Для каждого блока, встретившегося в индексном узле, увеличивается его счетчик на 1 в таблице занятых блоков.
4. Анализ содержимого таблиц и коррекция ситуаций.
Варианты анализа таблиц
1.Таблица занятых блоков и таблица свободных блоков дополняют друг друга до всех единиц, тогда все в порядке,
целостность системы соблюдена.
2. Пропавший блок – не числится ни среди свободных, ни среди занятых. Можно оставить как есть и ждать претензий со стороны пользователя, но система замусоривается. Считаем свободным.
3. таблица занятых блоков корректна, а какой-то из свободных блоков дважды или более раз посчитан свободным, т.е. список свободных блоков (таблица) не корректен. В этом случае нужно запустить процесс пересоздания списка свободных блоков. Т.е. нужно запустить процесс, который проанализирует все индексные дескрипторы и соответственно сформирует список свободных блоков.
4.Дубликат занятого блока. Блок повстречался в 2х индексных дискрипторах. Локализуем проблему на уровне файлов.
Действие:
1.Name1 ---> копируется Name12
2.Name2 ---> копируется Name22
3.Удаляются Name1, Name2
4.Запускается переопределение списка свободных блоков
5.Обратное переименование файлов и фиксация факта их возможной проблемности.
ОС Unix: файловая система
Появление ФС UNIX совершило революцию в файловых системах по нескольким направлениям – в СПО, в организации ОС.
Например:
1.UNIX был первой ОС, разработанной с помощью языка высокого уровня.
2. Элегантная и развитая система управления процессами.
3. Древовидная организация ФС. (Древовидная в общем случае, но есть средства нарушающие древовидность.) Такая организация – не абсолютное первенство UNIX, это было заимствовано из Maltix, однако UNIX - первая файловая система с древовидной организацией, которая получила широкое распространение.
4. Использование концепции файлов. Все представляется в виде файлов. Все работает через унифицированный интерфейс.
Организация ФС Unix
Файловая система операционной системы UNIX является примером многопользовательской иерархической файловой системой с трехуровневой организацией прав доступа к содержимому файлов.
Файл Unix – это специальным образом именованный набор данных, размещенный в файловой системе.
•обычный файл (regular file) – традиционный тип файла, содержащий данные пользователя. Интерпретация содержимого файла производится программой, обрабатывающей файл.
OC Unix трактует понятие файла шире традиционного. В частности, в системе в качестве файла рассматриваются:
•каталог (directory) – специальный файл, обеспечивающий иерархическую организацию файловой системы. С каталогом ассоциируются все файлы, которые принадлежат данному каталогу.
•специальный файл устройств (special device file) – cистема позволяет ассоциировать внешние устройства с драйверами и предоставляет доступ к внешним устройствам, согласно общим интерфейсам работы с файлами.
•именованный канал (named pipe) – специальная разновидность файлов, позволяющая организовывать передачу данных между взаимодействующими процессами;
•ссылка (link) – позволяет создавать дополнительные ссылки к содержимому файла из различных точек файловой системы; Они могут нарушать древовидность организации ФС.
•сокет (socket) – средство взаимодействия процессов в пределах сети ЭВМ.
ОС UNIX поддерживает широкий диапазон типов файлов. Каталог в ОСУ тоже файл.
Права доступа
Категории пользователей:
1. пользователь (владелец)
2. группа (всепользователи, которые принадлежат группе владельца за исключением самого владельца)
3. все пользователи системы (все пользователи системы, за исключением группы владельца и самого владельца.)
Права
1. на чтение
2. на запись
3. на исполнение (0исполняемым файлом может быть только файл полученный в результате сборки и ли командный файл.
Интерпретация этих прав зависит от типа файла.
Так для обычных файлов это традиционные права на чтение, запись данных файла и исполнение содержимого файла в качестве процесса.
Интерпретация прав доступа для других типов файлов может различаться.
Например, для файлов каталогов это:
право на чтение каталога – получение списка имен файлов;
право на исполнение каталога – получение дополнительной информации о файлах (т.е. тогда, когда требуется информация, большая чем имя файла), право на использование каталога в качестве текущего, возможность использования имени каталога внутри имени файла;
право на запись – возможность создания, переименования и удаления файла в каталоге.
Логическая структура каталогов
Все UNIX-системы имеют соглашения о логической структуре каталогов, расположенных в корне файловой системы. Это упрощает работу операционной системы, ее обслуживание и переносимость. Эти соглашения используются при работе почтовой системы, системы печати и т.д.
Содержимое основных каталогов:
Корневой каталог / является основой любой файловой системы ОС UNIX. Все остальные файлы и каталоги располагаются в рамках структуры, порожденной корневым каталогом, независимо от их физического положения на диске.
/unix - файл загрузки ядра ОС.
/bin - файлы, реализующие общедоступные команды системы.
/etc - в этом каталоге находятся файлы, определяющие настройки системы (в частности, файл passwd), а также команды, необходимые для управления содержимым подобных специальных файлов.
/tmp - каталог для хранения временных системных файлов. При перезагрузке системы не гарантируется сохранение его содержимого. Обычно этот каталог открыт на запись для всех пользователей системы.
/mnt - каталог, к которому осуществляется монтирование дополнительных физических файловых систем для получения единого дерева логической файловой системы. Заметим, что это лишь соглашение, в общем случае можно примонтировать к любому каталогу.
/dev - каталог содержит специальные файлы устройств, с которыми ассоциированы драйверы устройств. Каждый из файлов имеет ссылку на соответствующий драйвер и указание типа устройства (блок- или байт-ориентированные). Этот каталог может содержать несколько подкаталогов, группирующих специальные файлы по типам. Таким образом, имеется возможность легко добавлять и удалять новые устройства в систему.
/lib - здесь находятся библиотечные файлы языка Си и других языков программирования.
/usr - размещается вся информация, связанная с обеспечением работы пользователей. Здесь также имеется подкаталог, содержащий часть библиотечных файлов (/usr/lib), подкаталог /usr/users (или /usr/home), который становится текущим при входе пользователя в систему, подкаталог, где находятся дополнительные команды (/usr/bin), подкаталог, содержащий файлы заголовков (/usr/include), в котором, в свою очередь, подкаталог, содержащий include-файлы, характеризующие работу системы (например, signal.h - интерпретация сигналов).
Внутренняя организация ФС
Модель версии System V
Структура ФС
Файловая система Unix может занимать раздел диска (partition). Количество разделов на каждом диске, их размеры определяются при предварительной подготовке устройства (разметка). Unix рассматривает разделы как отдельные, независимые устройства.
Суперблок файловой системы содержит оперативную информацию о текущем состоянии файловой системы, а также данные о параметрах настройки, в частности:
•размер логического блока (512б, 1024б, 2048б);
•размер файловой системы в логических блоках (включая суперблок);
•максимальное количество индексных дескрипторов (определяет размер области индексных дескрипторов);
•число свободных блоков;
•число свободных индексных дескрипторов;
•специальные флаги;
•массив номеров свободных блоков;
•массив номеров свободных индексных дескрипторов;
•и др.
В ОП постоянно находится актуальная копия суперблока.
Область (пространство) индексных дескрипторов.
Индексный дескриптор – это специальная структура данных файловой системы, которая ставится во взаимно однозначное соответствие с каждым файлом.
Размер пространства индексных дескрипторов определяется параметром генерации файловой системы по количеству индексных дескрипторов, которые указаны в суперблоке.
Содержит:
1.Тип файла
2. права доступа к файлу
3. число имен каталогов ФС, ассоциированных с данным индексным дискриптором.
4. идентификатор владельца
5. размер файлда в байтах
6. время послдней модификации
7.Массив номеров блоков файлов
Блоки файлов.
Это пространство на системном устройстве, в котором размещается вся информация, хранящаяся в файлах и о файлах, которая не поместилась в предыдущие блоки файловой системы.
Работа с массивами номеров свободных блоков
В суперблоке файловой системы размещается массив номеров свободных блоков, этот массив является началом полного списка содержащего номера всех свободных блоков файловой системы.
Все свободные блоки ФС организованы в однонаправленный список, структурная организация которого следующая: 1-й элемент этого списка – это есть массив из Ν ссылок, которые размещаются в суперблоке. Ν зависит от конкретной ОС, пусть это будет 100. 0-й элемент этого массива есть номер блока из пространства блоков ФС, в котором находится продолжение этого списка. Соответственно 0-й элемент этого блока есть ссылка на следующий массив из Ν ссылок и т.д. ФС оперативно работает с этим массивом. Если в нем есть свободные места, то при освобождении блоков, они записываются на свободные места, если требуются новые блоки, то они выбираются из этого массива. Если массив исчерпывается, то информация берется из следующего блока. Если массив полностью заполнен, т.е. освобождается много блоков, то выбирается следующий свободный блок и этот массив скидывается на этот блок. Это достаточно важная информация, которая в каждый момент отражает состояние ФС.
Оперативный доступ к списку осуществляется посредством использования массива в суперблоке.
Работа с массивом свободных ИД
Массив номеров свободных индексных дескрипторов содержит оперативный набор номеров свободных индексных дескрипторов. Размер массива - Nиндекс.
При освобождении индексного дескриптора, если есть свободное место в массиве, то номер освободившегося индексного дескриптора записывается в соответствующий элемент массива. Если свободного места в массиве нет, то этот номер «забывается».
При запросе нового индексного дескриптора осуществляется поиск в массиве, если массив не пустой, то все в порядке, если массив пустой – происходит операция обновления его содержимого (происходит просмотр области индексных дескрипторов и занесение в массив обнаруженных свободных). Т.е. массив свободных индексных дескрипторов – это своеобразный буфер.