Архитектура файловой системы

Лабораторная работа № 4

Файловая система. Доступ к файлам

Функции файловой системы

Файловая система - это компонент ОС, который отвечает за сохранение данных в массовую память (жёсткий диск, флеш-память, оптические носители, и тд.).

Основными задачами файловой системы являются:

· Хранение информации

· Структурирование файлов

· Обеспечение прав доступа к данным

· Защита данных

· Создание однородной среды для разных носителей информации

Для большинства приложений центральным элементом является файл. За исключением приложений реального времени и некоторых других специализированных приложений, ввод данных в приложение осуществляется посредством файлов; выходные данные почти всех приложений также сохраняются в виде файлов для долговременного хранения и последующего обращения к ним пользователей и других программ.

Файлы существуют отдельно от индивидуальных приложений, использующих их для ввода и/или вывода. Пользователям необходима возможность доступа к файлам, их сохранения, поддержки целостности их содержимого. Для выполнения этих требований практически все операционные системы обеспечивают системы управления файлами. Обычно система управления файлами состоит из системных утилит, функционирующих как привилегированные приложения.

Файл представляет собой набор однородных записей. Файл рассматривается пользователями и приложениями как единое целое, и обращение к нему осуществляется по имени. Файлы можно создавать и удалять; каждый из них имеет свое собственное уникальное имя. Ограничения доступа обычно осуществляется на уровне файла. Другими словами, пользователи и программы, работающие в системах общего пользования, могут обладать правом доступа (или лишены его) к файлу как единому целому.

Системы управления файлами

Систему управления файлами составляет программное обеспечение, предоставляющее сервисные функции при работе пользователей и приложений с файлами. Обычно единственным способом работы с файлами является использование системы управления файлами. Ее применение позволяет избавиться от необходимости разработки специальных программ работы с файлами для каждого отдельного приложения, а также обеспечивает систему средствами управления ее наиболее важными компонентами.

Основные задачи системы управления файлами:

· Соответствие требованиям управления данными и требованиям со стороны пользователей, включающим возможность хранения данных и выполнения рассмотренных ранее операций с ними

· Гарантированные корректности данных, содержащихся в файле

· Оптимизация производительности, как с точки зрения системы (пропускная способность), так и с точки зрения пользователя (время отклика)

· Поддержка ввода-вывода для различных типов устройств и хранения информации

· Минимизация или исключение возможных потерь или повреждений данных

· Обеспечение стандартизированного набора подпрограмм интерфейса ввода-вывода

· Обеспечение поддержки коллективного пользования несколькими пользователями многопользовательской системы

Что касается первого пункта – соответствия пользовательским требованиям, - то спектр этих требований зависит от разнообразия приложений и от среды, в которой используется компьютерная система. Ниже приведен минимальный набор требований для диалоговой системы общего назначения.

Каждый пользователь должен иметь следующие возможности:

1. Создавать, удалять, читать и изменять файлы

2. Иметь контролируемый доступ к файлам других пользователей

3. Управлять доступом к своим файлам

4. Реструктурировать файлы таким способом, который наиболее подходит для решения стоящих перед ним задач

5. Перемещать данные между файлами

6. Резервировать и восстанавливать файлы в случае повреждения

7. Иметь доступ к файлам по символьным именам

Архитектура файловой системы

На рис.1 представлена типичная схема организации программного обеспечения. Естественно, что различные системы организованны по-разному, однако приведенная организация типична. На нижнем уровне драйверы устройств непосредственно связаны с периферийными устройствами или их контроллерами либо каналами. Драйвер устройства отвечает за начальные операции ввода-ввывода устройства и за обработку завершения запроса ввода-вывода. Драйверы устройств обычно рассматриваются как часть операционной системы.

Архитектура файловой системы - student2.ru


Смешаннный файл Последовательный Индексно-последовательный Индексированный Хэшированный
Логический ввод/вывод
Диспетчер базового ввода/вывода
Базовая файловая система
Драйвер диска Драйвер стримера
           

Рисунок 1 – Архитектура файловой системы

Следующий уровень называется базовой файловой системой, или уровнем физического ввода-вывода. Это первичный интерфейс с окружением компьютерной системы. Он оперирует блоками данных, которыми обменивается с дисковой системой, магнитной лентой или другим носителем. Поэтому он связан с размещением и буферизацией блоков в оперативной памяти. На этом уровне не выполнятся работа с содержимым блоков данных или структурой файлов. Базовая файловая система рассматривается как часть операционной системы.

Диспетчер базового ввода/вывода отвечает за начало и завершение файлового ввода-вывода. На этом уровне поддерживаются управляющие структуры, связанные с устройством ввода-вывода, планированием и статусом файлов.

Логический ввод/вывод предоставляет пользователям и приложениям доступ к записям.

Рассмотрим пять фундаментальных способов организации файлов:

· Смешанный файл

· Последовательный файл

· Индексно-последовательный файл

· Индексированный файл

· Файл прямого доступа (хешированный)

Архитектура файловой системы - student2.ru

Рисунок 2 – Типы файлов

Смешанный файл

Наименее сложная форма организации файла может быть названа смешанной. Данные накапливаются в порядке своего поступления. Каждая запись состоит из одного пакета данных. Такая форма упрощает накопление всей массы данных и их хранение. Записи могут иметь как различные поля, таи и одинаковые поля, расположенные в различном порядке. Поэтому каждое поле должно описывать само себя, включая как значение, так и имя. Длина каждого поля должна быть указанна неявным образом посредством применения разделителя, либо явно включена как подполе.

Поскольку смешанный файл не имеет никакой структуры, то доступ к записи осуществляется путем полного перебора всех записей файла. Т.е. если необходимо найти запись, содержащую определенное поле с определенным значением, проверяется каждая запись до тех пор, пока не будет найдена искомая или пока весь файл не будет пересмотрен. Файлы этого типа рационально используют дисковое пространство при работе с данными различного размера и структуры; он хорошо подходит для полного перебора, но недостаточно прост при обновлении данных. В большинстве случаев этот файл непригоден.

Последовательный файл

Наиболее распространенным видом файловой структуры является последовательный файл. В нем для записей используется фиксированный формат. Все записи имеет одинаковую длину и состоят из одинакового количества полей фиксированной длины, организованных в определенном порядке. Поскольку длина и позиция каждого поля известны, то сохранению подлежат только значения полей; атрибутами файловой структуры являются имя и длина каждого поля.

Одно определенное поле, обычно – первое поле в каждой записи, называется ключевым полем, которое идентифицирует запись уникальным образом, так что ключевые значения различных записей всегда различны. Более того, записи сохраняются в «ключевой» последовательности: в алфавитном порядке для текстового ключа и в числовом порядке для числового ключа.

Последовательные файлы часто используются пакетными приложениями и обычно являются оптимальным вариантом, если эти приложения выполняют обработку всех записей (например, программы составления счетов или расчета платежных ведомостей).

Для диалоговых приложений, которые работают с запросами и/или выполняют обновление индивидуальных записей, последовательный файл является малоэффективным. Для нахождения необходимой записи нужно произвести последовательный перебор записей файла. Обращение к записи в последовательном файле как правило занимает достаточно много времени.

Наши рекомендации