Подсистема управления файлами. Задачи ОС по управлению файлами.
Одна из основных задач ОС – дать юзеру удобный доступ к файлам не его дисках. Для этого ОС подменяет физическую структуру данных более удобной для пользователя логической моделью: деревом каталогов, в котором лежат файлы.
Файл – это именованная область внешней памяти, куда можно записывать данные и откуда можно их считывать. Они хранятся в энергонезависимой ПЗУ.
Файловая система – это часть ОС, включающая:
· СОВОКУПНОСТЬ всех файлов на диске
· Все структуры, разработанные для УПРАВЛЕНИЯ файлами:
o Каталоги файлов
o Дескрипторы файлов
o Таблицы распределения свободного и занятого пространства на диске
· Программные средства для осуществления ОПЕРАЦИЙ над файлами:
o Создание
o Уничтожение
o Чтение
o Запись
o Именование
o Поиск и тд
Задачи ОС по управлению файлами:
· Именовать файлы
· Отображать логическую модель файловой системы на физическую
· Обеспечивать АПИ для программ, чтобы им легко было работать в файлами
· Обеспечить устойчивость ФС к сбоям питания, аппаратным и программным ошибкам
Плюс в мультипрограммной среде:
· Обеспечивать безопасный совместный доступ к файлу из нескольких процессов (блокировки файлов и их частей, средства предотвращения гонок, исключения тупиков, согласования копий.)
Плюс в многопользовательской среде:
· Защита файлов одного пользователя от файлов другого
· Защита от несанкционированного доступа
Логическая организация файловой системы.
Типы файлов
Файловые системы поддерживают разные функциональные типы файлов:
· Обычные файлы
o Создаются пользователем
o ОС не контролирует и не ограничивает их структуру и содержимое
o Содержимое и структура определяются приложением, которое с ними работает
o Любая ОС должна поддерживать как минимум собственные исполняемые файлы
· Файлы-каталоги
o Особый тип файлов, содержат системную справочную инфу о наборе файлов, сгрупированных юзером по произвольному признаку
o Часто сюда могут входить и каталоги – получается древовидная структура
o Каталоги устанавливают соответствия между именами файлов и их характеристиками (тип файла, расположение на диске, права доступа, дата создания, модификации и тд.)
o В остальных отношениях каталоги рассматриваются как обычные файлы
· Специальные файлы
o Фиктивные файлы, ассоциированные с устройствами ввода-вывода
o Используются, чтобы доступ к файлам и внешним устройствам был одинаков по механизму
o Операции ввода-вывода юзер с их помощью может делать путем обычных команд записи/чтения
o Команды обрабатываются сначала ФС, а потом ОС преобразует их в команды управления устройством
· Именованные контейнеры
· Символьные связи
· Отображаемые в память файлы и тд.
Иерархическая структура ФС
Проблема запоминания большого количества файлов решается с помощью группировки файлов – формирования иерархической структуры файлов.
Иерархия каталогов может быть организована в виде:
- дерева (Windows, MS-DOS) – файл входит только в 1 каталог
- сеть (Unix) – файл может входить в разные каталоги
Каталог верхнего уровня называется корнем (root)
Одноуровневая организация – частный случай иерархической структуры, когда все файлы входят в один каталог.
Имена файлов
Иерархически организованные ФС обычно поддерживают 3 типа имен файлов:
· Простое имя (идентифицирует файл в пределах каталога)
o NTFS – до 255 сивмолов, FAT – 8.3, unix s5 – 14 символов
o Несколько файлов могут иметь одно простое имя, если они лежат в разных каталогах
o В этом случае для идентификации файла пользуем полное имя
· Полное имя
o Составное – состоит из цепочки простых имен всех каталогов
o Отделяются разделителем, принятым в ОС (/\), корневой каталог не учитывается
o Полные имена должны быть уникальны
· Относительное имя
o Определяется через понятие «текущий каталог»
o Путь к текущему каталогу + простое имя
· Уникальное имя – уникальное число, присваиваемое файлу ОС, предназначено только для ОС
Монтирование
Файловая система может иметь несколько дисковых устройств:
- жесткий диск
- гибкие диски
- компактные диски и тд
Как с ними работать:
1) Автономные файловые системы
Чтобы указать путь к файлу, нужно указать устройство A:\privat\letter\doc.txt
(MS-DOS)
2) Объединять файловые системы в одну – монтирование.
· Из всех файловых систем выделяется системная
· Файловая система на системном диске является корневой
· В корневой системе выбирается нужный каталог
· Этот каталог становится корневым для второй системы
· Логической разницы между обычной и смонитрованной системами нет.
У файла есть:
· Имя
· Данные
· Атрибуты
Набор атрибутов разный для разных ОС.
Где можно хранить атрибуты:
· В каталогах (MS-DOS)
· В спец таблицах (ссылки на эти таблицы хранятся в каталоге) – ufs UNIX. Это делает систему очень гибкой, позволяя включать файл в несколько каталогов.
Логическая организация файла:
По способам логической организации файла ФС делятся на:
- ФС с неструктурироваными файлами
· формат файла известен только программе, которая его обрабатывает
· ФС видит файл как неупорядоченный набор бит
· для работы с файлом ОС указывает смещение от начала и к-во байт, которые необходимо считать
· используется в большинстве современных ФС
· можно легко разделять файл между несколькими прилагами, каждая читает его по-своему.
- ФС со структурированными файлами
· за структуру файла отвечает ФС
· ФС видит файл как упорядоченную последовательность логических записей
· ФС дает приложению доступ к запрошенной записи (№ такой-то)
· применялась в ранних ОС (ОС\360, наприметр)
· на основе этого подхода работают СУБД
· наименьший элемент, которым оперирует прогер – логическая запись
· Их можно:
o читать последовательно (последовательный доступ) – неиндексированные файлы
o сразу указывать, какую надо (прямой доступ) – индексированные файлы. Для такой работу нужна специальная индексная таблица, где будет указано соответствие ключевых полей и адреса в памяти.
o Если этот индекс указывает на несколько полей, в которых нужную запись нужно искать последовательно – это индексно-последовательные файлы.
· ОС не может поддерживать много разных логических структур – ограниченность.