Всё для Учёбы — студенческий файлообменник
1 монета
zip

Лекции по Операционным системам (Иванько А. Ф.)

Файловая система современных операционных систем

Основными компонентами подсистемы ввода вывода являются драйверы, управляющие внешними устройствами.

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

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

2) Согласование скоростей обмена и кэширование данных при обмене. Обеспечивается буферизация данных и синхронизацией доступа к буферам. В системах, где требуется высокая скорость передачи данных, большая часть ОП отдается не под приложении, а под буферы данных. Однако, чаще роль таких буферов выполняет не ОП, а диск, и файлы буфера носят название «спул-файлов». Типичный процесс спулинга – вывод данных на принтер, когда на диске образуется очередной принт-файлов. Часто для повышения скорости работу ВУ и разгрузки ОП, буфер организуется на самом контроллере. Пример – видеокарта с видеопамятью, часто соизмеримой по объёму с ОП.

3) Распределение устройств и данных между процессами. Устройства ввода\вывода могут предоставляться как в монопольное, так и в совместное использование. При этом ОС должна контролировать доступ процессам как и к другим ресурсам – путем прав пользователя или группы пользователей, от имени которых действует процесс. Обычно последовательный или параллельный порты предоставляются в монопольное использование, а диск в разделяемое.

4) Обеспечение удобного логического интерфейса между внешними устройствами и ядром вычислительно системы. Разнообразие устройств ввода\вывода делает особенно актуальной функцию ОС по созданию единого интерфейса между приложениями и ВУ. Обычно это подержание файловой модели интерпретации ВУ. Файловая модель, однако, является очень бедной для многих устройств, поэтому она является базовой, над которой подсистема ввода\вывода строит более содержательную модель устройств конкретного вида.

5) Поддержка расширяемой библиотеки драйверов. Достоинством любой ОС является наличие в ней широкого набора драйверов. Пример: OS / 2 потерпела поражение Windows 3 из-за отсутствия драйверов. Чтобы не было недостатка в драйверах должен быть открытым интерфейс между драйверами и частями ОС, с которыми они взаимодействуют. Тогда их могут разрабатывать изготовители аппаратуры. Драйвер взаимодействует с одной стороны, с модуля ядра, с другой – с контроллерами ВУ. Поэтому существует 2 типа интерфейсов: «драйвер-ядро» (DKI) и «драйвер-устройство» DDI – Driver Device Interface. Первый должен быть стандартизирован, второй – желательно отделен от аппаратуры примитивными функция ОС. Драйверы желательно уметь загружать и выгружать из программного обеспеченья.

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

7) Поддержка синхронных и асинхронных операций ввода\вывода. Подсистема ввода\вывода должна представлять своим клиентам – приложениям и модулю ядра возможность выполнять как синхронные, так и асинхронные операции ввода\вывода. Обычно системные вызовы ввода\вывода выполняются в синхронном режиме, а внутренние вызовы ядра – в асинхронном режиме.

Логическая организация файловой системы

У операционной системы существует задача предоставления пользователям удобства, при работе с наборами данных, хранящихся на дисках. Для этого операционная система подменяет физическую структуру данных на диске логической модели. Логическая модель рассматривает наборы данных в виде дерева каталогов, в котором собственно наборы данных представляют собой конечные элементы или листья. Такие наборы данных получили название – «файлы». А файловая система в целом, как и каждый файл, имеет физическую структуру и логическую организацию.

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

Назначением файлов является:

1) Долговременное и надежное хранение информации

2) Совместное использование информации несколькими пользователями и приложениями

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

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

1) Именование файлов

2) Программный интерфейс для приложений

3) Отображение логической модели файловой системы на физическую организацию носителя

4) Устойчивость файловой системы к сбоям питания, ошибкам аппаратных и программных средств.

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

Логическое строение файлов

Все файлы делятся на:

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

2) Каталоги – это особые файлы фиксированной структуры, создаваемые самой операционной системой и содержащую информацию о других файлах, зарегистрированных в данном каталоге. В каталогах устанавливается соответствие между имена файлов и их характеристик.

3) Специальные файлы – это фиктивные файлы, ассоциированные с устройствами ввода\вывода и используемые для унификации механизмов доступа к файлам и ВУ (внешним устройствам). Такие файлы позволяют пользователю выполнять команды ввода\вывода на устройствах ввода\вывода в форме чтения или записи данных файлов.

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

В настоящее время используются следующие понятия имен файлов:

1) Простое короткое имя – идентифицирует файл в пределах своего каталога. В разных ОС различные ограничения на длину и допустимый алфавит для имен. Например Windows – 255 символом на имя файлов. Для однозначной идентификация используются полные имена файлов.

2) Полное имя файла – цепочка простых символьных имен всех каталогов, через которые проходит путь от корневого каталога до данного файла. Полное имя – составное, имена разделяются прямым или обратным slash. В иерархической системе между файлом и полным именем есть однозначное соответствие: 1 файл – 1 полное имя. В файловых системах с сетевой структурой одному файлу может соответствовать несколько полных имен т.е. в них есть соответствие 1 файл – несколько полных имен. Однако полное имя однозначно определяет файл.

3) Относительное имя – это составное имя, показывающее путь от текущего каталога до файла. В некоторых операционных системах одному файлу можно присвоить несколько простых имен или псевдонимов и тогда операционная система должна присваивать файлам уникальные имена. Например, в UNIX используется номер индексного дескриптора файла.

В файловой системе к каждому файлу приписывается некоторый набор атрибутов:

• Тип файла

• Владелец файла

• Создатель файла

• Пароль доступа к файлу

• Информация о разрешенных операция с файлом

• Времени создания последней модификации и последнего обращения

• Текущий размер

• Максимальный размер

• Признаки – только для чтения \ скрытый файл \ системный файл \ архивный файл \ двоичный или символьный \ временный файл \ блокировки

• Длина записи

• Указатель на ключевое слово в записи

• Длина ключа

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

Физическая организация файловой системы

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

Критериями физической организации строения фалов является:

1) Скорость доступа к данным

2) Объем

3) Степень фрагментированной диска

4) Максимально возможный размер файла

Основными вариантами размещения являются:

1) Непрерывное размеренные

2) Размещение в виде списка связанных кластеров

3) Размещение с использованием связанного списка индексов или FAT

4) Размещение с адресацией файла в виде списка кластеров файлов UFS (UNIX), NTFS (WINDOWS). Для ОС Windows вместе кластеров используются участки

Недостатки:

• FAT – фрагментация

• NTFS – сложность доступа к внутренним кластерам и не кратность длины данных степени

В настоящее время файловые системы наиболее распространенными являются FAT, UFS, NTFS.

Файловая система

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

1) Поиск характеристики файла по его символьному имени

2) Копирование характеристик файла в оперативную память

3) Проверку прав пользователя на выполнение запрошенных операций

4) Отчистка области памяти, в которой хранятся характеристики файла

К уникальным операциям для каждого файла относятся:

• Чтение, запись

• Удаление файла или его части

• Чтения и модификация атрибутов

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

1) Для каждой операции выполняется, как универсальные, так и уникальные действия. Эта схема без запоминания состояния файла. Она обладает устойчивостью к сбоям в работе и используется в распределённых файловых системах, например, компанией “Sun”.

2) Все универсальные действия для файлов выполняются в начале и конце работе с ним, а для каждой промежуточной операции выполняются только уникальные операции. Этот способ используется в большинстве современных системах. При этом способе универсальные действия объединяются в системные вызовы:

• “Open” - выполняется действия с 1 по 3

• “Close” – выполняется последнее действие

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

В операционных системах предусмотрены стандартные файлы ввода-вывода и сообщения об ошибках. Эти файлы автоматически открываются для каждого запускаемого приложения и связываются с системные устройствами ввода-вывода, которыми являются клавиатура и монитор. Имеется, возможно, переопределить системные устройства ввода-вывода символами: -> вывода,

Показать полностью…
Похожие документы в приложении