Физическая организация файловой системы
Осн. Носителем информации явл. Жесткий диск, он состоит из пластин, покрытый магнитным материалом.
Каждая сторона разбита на концентрические окружности – дорожки.
Они же разбиты на сектора, размером 512 байт каждый.
Структура диска: пластины, дорожки, цилиндры, секторы, кластеры.
Низкоуровневое форматирование – создание дорожек и секторов.
Высокоуровневое форматирование – создание разделов и кластеров для определенной файловой системы или нескольких файловых систем.
Способы логического размещения файла:
Файловые операции:
Два способа организации файловых операций:
Файловая система ОС должна предоставлять пользователям набор операций работы с файлами, оформленный в виде системных вызовов. Этот набор обычно состоит из таких системных вызовов, как create (создать файл), read (читать из файла), write (записать в файл) и некоторых других.
Чаще всего с одним и тем же файлом пользователь выполняет не одну операцию, а последовательность операций. После большого количества операций чтения и записи пользователь завершает работу с данным файлом и переходит к другому.
Какие бы операции не выполнялись над файлом, ОС необходимо выполнить ряд универсальных для всех операций действий:
1. По символьному имени файла найти его характеристики, которые хранятся в файловой системе на диске.
2. Скопировать характеристики файла в оперативную память, так как только таким образом программный код может их использовать.
3. На основании характеристик файла проверить права пользователя на выполнение запрошенной операции (чтение, запись, удаление, просмотр атрибутов файла).
4. Очистить область памяти, отведенную под временное хранение характеристик файла.
Кроме того, каждая операция включает ряд уникальных действий, например чтение определенного набора кластеров диска, удаление файла и т. п.
1. Для каждой операции выполняются как универсальные, так и уникальные действия. Такая схема называется схемой без запоминания состояния операций (stateless).
2. Все универсальные действия выполняются в начале и конце последовательности операций, а для каждой промежуточной операции выполняются только уникальные действия (stateful).
Первый способ обладает одним преимуществом — он более устойчив к сбоям в работе системы, так как каждая операция является самодостаточной и не зависит от результата предыдущей. Поэтому первый способ применяется в распределенных сетевых файловых системах (например, в Network File System, NFS компании Sun), когда сбои из-за потерь пакетов или отказов одного из сетевых узлов более вероятны, чем при локальном доступе к файлам.
При втором способе в файловой системе вводятся два специальных системных вызова: open — открытие файла, и close — закрытие файла.
• Системный вызов открытия файла open выполняется перед началом любой последовательности операций с файлом, а вызов закрытия файла close — после окончания работы с файлом. Основной задачей вызова open является преобразование символьного имени файла в его уникальное числовое имя, копирование характеристик файла из дисковой области в буфер оперативной памяти и проверка прав пользователя на выполнение запрошенной операции. Вызов close освобождает буфер с характеристиками файла и делает невозможным продолжение операций с файлом без его повторного открытия.
Блокировки файлов
Блокировки файлов и отдельных записей в файлах являются средством синхронизации между процессами, пытающимися использовать один и тот же файл одновременно.
В случае одновременного использования файла разреш. Остается только операция чтения.
Дата добавления: 2021-01-26; просмотров: 438;