Запрос к файлу (операция, имя файла, логическая запись)
|
Символьный уровень
Базовый уровень
Уровень проверки прав доступа
Логический уровень
Физический уровень
|
Подсистема ввода/вывода
Каждый уровень предоставляет некоторый интерфейс (набор функций) выше лежащего и использует функции нижележащего.
Символьный уровень – определяет по символьному имени файла его уникальное имя.
Базовый уровень – определяет по уникальному имени файла его характеристики. При этом характеристики перемещаются в диска в ОП для ускорения доступа.
Если права есть, то продолжаем. Нет – сообщаем.
На логическом уровне определяются координаты запрашиваемой логической записи в файле, то есть, на каком расстоянии в байтах она располагается от начала файла, как если бы он был размещен непрерывно.
На физическом уровне определяется номер физического блока, содержащего требуемую логическую запись и смещение записи в блоке.
Для упрощения доступа к файлам ОС обеспечивают отображение файлов в адресное пространство выполняемого процесса. Для этого используются системные вызовы MAP(имя файла, виртуальный адрес) - отобразить и UNMAP - отметить отображение.
При этом внутренние системные таблицы изменяются таким образом, что данный файл служил хранилище страниц виртуальной памяти на диске. То есть обращение по ассоциированному адресу вызывает страничный отказ и соответствующая страница ищется в физической памяти.
При завершении процесса все страницы отображения вытесняются на диск и отображение отменяется.
Файловые системы имеют многоуровневую структуру, на верхнем уровне которой находится переключатель файловых систем, преобразующий пользовательские запросы в формат, воспринимаемый конкретной системой.
Каждый компонент следующего уровня представлен в виде драйвера, поддерживающего определенную организацию ФС. Каждый драйвер регистрируется у переключателя, передавая ему таблицу точек входа (возможное обращение к ФС).
Выделяются два типа драйверов ФС:
1. Локальная FSD (File System Driver), управляющая дисками, подключенными непосредственно к компьютеру. Например, FAT, NTFS, CDFS.
2. Сетевые FSD, позволяющая обращаться в дисковым томам удаленного компьютера.
Локальный FSD должен зарегистрироваться у диспетчера ввода\вывода. При первом обращении к тому диспетчер ввода\вывода, вызывается драйвер для распознавания – анализа загрузочного сектора тома и метаданных ФС для проверки её целостности.
Все поддерживаемые Windows файловые системы резервируют первый сектор тома как загрузочный. В нем содержаться данные, идентифицирующие файловый формат системы тома и расположение метаданных.