Система хранения данных на дисках может быть структурирована
следующим образом (см. рис. 12.1).
Нижний уровень - оборудование. Это в первую очередь магнитные диски
с подвижными головками - основные устройства внешней памяти,
представляющие собой пакеты магнитных пластин (поверхностей), между
которыми на одном рычаге двигается пакет магнитных головок. Шаг
движения пакета головок является дискретным, и каждому положению
пакета головок логически соответствует цилиндр магнитного диска.
Цилиндры делятся на дорожки (треки), а каждая дорожка размечается
на одно и то же количество блоков (секторов) таким образом, что в
каждый блок можно записать по максимуму одно и то же число байтов.
Следовательно, для обмена с магнитным диском на уровне аппаратуры
нужно указать номер цилиндра, номер поверхности, номер блока на
соответствующей дорожке и число байтов, которое нужно записать или
прочитать от начала этого блока. Таким образом, диски могут быть
разбиты на блоки фиксированного размера и можно непосредственно
получить доступ к любому блоку (организовать прямой доступ к
файлам).
Непосредственно с устройствами (дисками) взаимодействует часть ОС,
называемая системой ввода-вывода (см. лекцию 13). Система
ввода-вывода предоставляет в распоряжение более высокоуровневого
компонента ОС - файловой системы - используемое дисковое
пространство в виде непрерывной последовательности блоков
фиксированного размера. Система ввода-вывода имеет дело с
физическими блоками диска, которые характеризуются адресом,
например диск 2, цилиндр 75, сектор 11. Файловая система имеет дело
с логическими блоками, каждый из которых имеет номер (от 0 или 1 до
N).
Размер логических блоков файла совпадает или является кратным
размеру физического блока диска и может быть задан равным размеру
страницы виртуальной памяти, поддерживаемой аппаратурой компьютера
совместно с операционной системой.
В структуре системы управления файлами можно выделить базисную
подсистему, которая отвечает за выделение дискового пространства
конкретным файлам, и более высокоуровневую логическую подсистему,
которая использует структуру дерева директорий для предоставления
модулю базисной подсистемы необходимой ей информации, исходя из
символического имени файла. Она также ответственна за авторизацию
доступа к файлам (см. лекции 11 и 16).
Стандартный запрос на открытие (open) или создание (create) файла
поступает от прикладной программы к логической подсистеме.
Логическая подсистема, используя структуру директорий, проверяет
права доступа и вызывает базовую подсистему для получения доступа к
блокам файла. После этого файл считается открытым, он содержится в
таблице открытых файлов, и прикладная программа получает в свое
распоряжение дескриптор (или handle в системах Microsoft) этого
файла. Дескриптор файла является ссылкой на файл в таблице открытых
файлов и используется в запросах прикладной программы на
чтение-запись из этого файла. Запись в таблице открытых файлов
указывает через систему выделения блоков диска на блоки данного
файла. Если к моменту открытия файл уже используется другим
процессом, то есть содержится в таблице открытых файлов, то после
проверки прав доступа к файлу может быть организован совместный
доступ. При этом новому процессу также возвращается дескриптор -
ссылка на файл в таблице открытых файлов. Далее в тексте подробно
проанализирована работа наиболее важных системных вызовов.
Рис. 12.1. Блок-схема файловой системы
Общая структура файловой системы
73
0
2 минуты
Темы:
Понравилась работу? Лайкни ее и оставь свой комментарий!
Для автора это очень важно, это стимулирует его на новое творчество!