Операционные системы Файловые системы (часть 2)
Организация ФС UNIX. Виды файлов Обычный файл (regular file) Каталог (directory) Специальный файл устройств (special device file) Именованный канал (FIFO) Ссылка (link) Сокет (socket) Файл UNIX это специальным образом именованный набор данных, размещенный в системе. Виды файлов
Права доступа Категории пользователей Права На чтение На запись На исполнение Пользователь Группа Все пользователи системы
Логическая структура каталогов UNIX / BINETCTMPMNTDEVUSR USER BIN INCLUDE LIB SYS … …
Модель версии System V Структура ФС Суперблок Область индексных дескрипторов Блоки Суперблок файловой системы содержит оперативную информацию о текущем состоянии файловой системы, а также данные о параметрах настройки. Индексный дескриптор специальная структура данных ФС, которая ставится во взаимнооднозначное соответствие с каждым файлом. Блоки свободные, занятые под системную информацию, занятые файлами.
Работа с массивами номеров свободных блоков N свободно Выделение свободных блоков
Работа с массивом свободных ИД Освобождение ИД Есть свободное место номер элемент массива Нет свободного места номер «забывается» Запрос ИД Поиск в массиве Массив пустой обновление массива Массив не пустой OK
Индексные дескрипторы Имя 1Имя 2Имя N … Индексный дескриптор Содержимое файла
Адресация блоков файла … 1…128 … 1… 1… 1… … … … … Модельный пример: блок 512b; ссылка на блок 4b
Файл каталог text usr unix bindev root prog.c binlib peter text 17usr 3unix 76bin 14dev peter 19bin 34lib 21prog.c … … Индексные дескрипторы
Установление связей dir 1 name 1 dir 1 name 3name 2 ИД 17577ИД …/dir/name 1 символическая связь жёсткая связь
Достоинства ФС модели версии System V Оптимизация в работе со списками номеров свободных индексных дескрипторов и блоков Организация косвенной адресации блоков файлов
Недостатки ФС модели версии System V Концентрация важной информации в суперблоке Проблема надежности Фрагментация файла по диску Ограничения на возможную длину имени файла
Модель версии FFS BSD Стратегия размещения Внутренняя организация блоков Выделение пространства для файла Структура каталога FFS
Модель версии FFS BSD Суперблок Группа цилиндров копия суперблока информация о свободных блоках (битовый массив) и о свободных индексных дескрипторах массив индексных дескрипторов (ИД) блоки файлов
Стратегия размещения Размещение каталога Равномерность использования блоков данных Размещение последовательных блоков файлов 1 2 t
Внутренняя организация блоков Блоки Фрагменты Маска 01 … N … …
Выделение пространства для файла Дескриптор petya.txt ….РазмерФрагмент … Дескриптор vasya.txt …РазмерФрагмент … Блоки данных, разделённые на фрагменты Дескриптор petya.txt ….РазмерФрагмент … Дескриптор vasya.txt ….РазмерФрагмент … Блоки данных, разделённые на фрагменты
Структура каталога FFS RM Name 2 RM Name 4 Фрагментация каталога Прямой поиск Дефрагментация Кэширование имен файлов Size(Name 1 ) NAME \0 – дополненное до кратности 4 байтам Номер индексного дескриптора Размер записи Длина имени файла Имя файла (до 255 символов) Name 1 Name 2 Name 3 Name 4 Name 5 … Name 1 Name 3 Name 5 … Size (Name 3 )
Блокировка доступа к содержимому файла Системный вызов fcntl () Исключающая блокировка (exclusive lock) «жесткая» блокировка (область может быть заблокирована единственный раз). Блокировка с монополизацией. Распределенная блокировка (shared lock) «мягкая» блокировка (возможны пересечения заблокированных областей). Рекомендательная блокировка. Возможность блокирования области файла любого размера.