2. Операционные системы. Иерархическая структура файловой системы. Физическая организация файловой системы. Обработка прерываний.

Большинство файловых систем имеют иерархическую структуру. Структура может быть организованна как дерево или как сеть (Unix)

Рис. 9.4 Иерархическая структура.

Все типы файлов имеют имена. Имена файлов бывает трех типов: простые, составные, относительные и уникальные

Простое - идентифицирует файл в пределах одного каталога

Составное (полное) - однозначное имя

Относительное - относительно текущего каталога. Например, если текущий каталог /user, то имя /user/an/main.exe, можно записать an/main.exe

Уникальное - например, в UNIX, внутреннее уникальное цифровое имя

В древовидной структуре действует принцип: один файл - одно полное имя. В сетевой: один файл - много полных имен (за счет наличия уникального цифрового имени)

Монтирование

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

Автономная файловая система - файловые системы разных дисков не связаны между собой. Для обращения к файлу необходимо указать имя диска, например: a:\privat\uni\ins.doc

Монтирование - объединение файловых систем разных устройств в одну (например в Unix). Для этого одна выбирается корневой и в ней указывается каталог, который будет корневым для второй файловой системы. После монтирования для пользователя нет разницы между корневой и смонтированной системами.

Атрибуты файлов

Понятие файл включает в себя не только данные, но и атрибуты. Атрибуты - это информация, описывающая свойства файла: тип, владелец, пароль, информация для авторизации доступа, время создания и доступа, размер, признаки и пр.

Набор атрибутов зависит от ОС. Значения атрибутов могут храниться в каталогах (FAT) или в специальных таблицах, ссылки на которые хранятся в каталогах (NTFS)

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

Диск, в общем случае состоит из пакета пластин. На каждой пластине - две поверхности. На каждой пластине размечены дорожки (traks), на которых хранятся данные. Дорожки нумеруются с 0, начиная от края к середине. Для каждой поверхности пластины имеется магнитная головка. Все головки закреплены на одном механизме и перемещаются синхронно. Дорожки одного радиуса на всех поверхностях называются цилиндром (cylinder). Каждая дорожка делятся на фрагменты, называемые секторами (sectors). Чаще размер сектора равен 512 байт. Сектор - наименьшая адресуемая единица обмена. Для поиска, контроллер должен задать: номер цилиндра, поверхности и сектора

ОС для работы с диском использует собственную единицу - кластер (cluster). В ОС Unix кластер называют блоком. Размер кластера обычно = 1024 байта. Дорожки и секторы создаются в результате низкоуровневого форматирования диска и не зависят от типа ОС. Диск может быть разделен на логические устройства разделы (тома): а, в, с, ... Разметка раздела под конкретный тип файловой системы выполняют процедуры логического форматирования. При этом определяется размер кластера и записывается информация о границах файлов и каталогов, поврежденных областях, о доступном пространстве. Также записывается загрузчик ОС. В одном разделе может быть создана только одна ФС, но любого доступного типа (FAT, NTFS ...).

Основные способы физического размещения файлов на диске:

а. Непрерывное размещение;

b. Связанный список кластеров

c. Связанный список индексов

d. Перечень номеров кластеров

ФС FAT состоит из следующих областей:

Загрузочный сектор - программа загрузки ОС

Основная копия FAT, резервная копия FAT, переменной длины.

Корневой каталог - содержит 512 записей по 32 байт

Область данных - кластеры размером от 1 до 128 секторов.

Размер таблицы FAT и разрядность указателя определяет количество кластеров в области данных (часто по 4 Кбайт).

Индексный указатель в таблице FAT принимает следующие значения: кластер свободен, занят и не последний, занят и последний, дефектный, резервный. Разрядность индексного указателя в таблице FAT определяет название: FAT16, FAT32.

ФС распознает два типа файла: файл и каталог. В каталоге хранятся имя и атрибуты файла.

Запись в файле-каталоге ссылается на первый индекс файла.

Структура файловой системы аналогична варианту (с. Связанный список индексов) предыдущего рисунка.

Физическая организация s5 и ufs

Файловая система s5 (начиная с версии Unix System V) и ufs имеют схожие модели

Особенности:

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

Каталог содержит символьное имя и номер inode.

Inode хранятся в отдельной области диска.

Индексный дескриптор имеет 64 байта и содержит атрибуты файла и адресную информацию (перечень номеров кластеров).

Допустимые типы файла: файл, каталог, специальный файл, символьная связь, конвейер.

Корневой каталог неограничен.

Поиск файла осуществляется путем последовательного просмотра каталогов и соответствующих inode. Адрес корневого каталога известен системе. Для ускорения дескриптор файла копируется в системную область памяти (это входит в процедуру открытия).

Рис. 9.6 Схема адресации файловой системы UFS

Физическая организация NTFS

Файловая система NTFS была разработана в качестве основной для Windows NT

Особенность: поддержка больших файлов и дисков, восстанавливаемость после сбоев, низкий уровень фрагментации

Определение: непрерывная область кластеров называется отрезком .

Порядковый номер кластера тома называется логическим номером кластера (LCN)

Порядковый номер кластера внутри файла называется виртуальным номером кластера (VCN)

Часть файла в отрезке характеризуются числом (VCN,LCN,К), где К длина отрезка. Для хранения номера кластера используются 64-разрядные указатели

Весь том (раздел) это последовательность кластеров.

Основа структуры - таблица MFT (Master File Table) это тоже файл.

Порядковый номер записи в MFT - номер файла.

Системные файлы:

1 - $Mft полный список файлов тома

2 - $MftMirr Копия первых трех записей MFT

3 - $LogFile Список транзакций для восстановления после сбоя

4 - $Volume Имя тома, версия и пр.

5 - $AtrDef Файл описаний атрибутов

6 - $ Корневой каталог

7 - $BitMap Разметка использованных кластеров

8 - $Boot Адрес загрузочного сектора

9 - $BadClus Список плохих кластеров

10 - $Quota Квоты для каждого пользователя

11 - $Upcase Таблица преобразования символов в Unicode

12 -15 Резерв

Каждый файл (включая и системные) состоит из набора атрибутов.

Имя файла и данные рассматриваются тоже как атрибуты.

Файлы могут быть небольшие(small). Они имеют сокращенное количество атрибутов и помещаются в одной записи MFT.

Большие(large) - перечисляются отрезки входящие в этот файл

Очень большие(huge) - используется косвенная адресация на отрезки

Сверхбольшие(extremely huge) - двойная косвенная адресация (как в UFS)

Ссылки находятся в атрибуте Attribute List

Каталог - тоже файл.

В атрибуте Index Root содержится имя файла и номер записи MFT

Прерывание

Прерывание - это событие/сигнал, привлекающий внимание ЦП и заставляющий его изменить текущий порядок исполнения команд процесса. Существуют аппаратные и программные прерывания.

Аппаратные прерывания инициируются аппаратурой (например, сигнал микросхемы таймера в IBM PC вырабатывается 18.2 раза в секунду), сигналом принтера, нажатием клавиш клавиатуры и т.д.

Программные прерывания инициируются процессом и на самом деле ничего не прерывают. Это обычные процедуры, которые используются программами. Однако эти программы содержатся в ОС, и механизм прерываний дает возможность обратиться к ним из программ пользователей. Программные прерывания могут выдаваться внутри друг друга (быть вложенными). Например, аппаратные прерывания могут возникнуть при выполнении программных прерываний. Когда разрешенное прерывание вызывается, то ЦП оставляет свою работу, выполняет прерывание, а затем возвращается в место прерывания. Управляет прерываниями обработчик прерываний (Interrupt Handler).

Основная концепция обработки прерываний

В различных ЭВМ существует различный набор типов прерываний, которые можно разделить на 6 классов.

1. Программы-прерывания по системной директиве. Инициатор - активный процесс, выполнивший команду SVC (обращение к супервизору), то есть запрос на предоставление ОС какой-либо системной вычислительной услуги.

2. Прерывания ввода-вывода. Инициируются устройством ввода/вывода (УВВ) и сигнализируют ЦП о том, что произошло изменение состояния канала ввода-вывода (КВВ) или УВВ (например: завершение операции, ошибка, переход устройства в состояние готовности).

3. Внешние прерывания. Причинами их является нажатие операторами клавиш на панели ЭВМ или прием сигнала прерывания от другого ЦП в мультипроцессорной системе, сигнала от модема.

4. Прерывание по рестарту. Нажатие оператором на панели управления кнопки рестарта или Reset.

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

6. Прерывания по контролю машины вызываются аппаратными ошибками.

Планирование процессов включает в себя решение следующих задач:

1. определение момента времени для смены выполняемого процесса;

2. выбор процесса на выполнение из очереди готовых процессов;

3. переключение контекстов "старого" и "нового" процессов.

Первые две задачи решаются программными средствами, а последняя выполняется, как правило, аппаратно.

Hosted by uCoz