- •Классификация, критерии оценки и структура ос.
- •Критерии оценки ос
- •Надежность
- •Эффективность
- •Удобство
- •Масштабируемость
- •Способность к развитию
- •Мобильность
- •Основные функции и структура ос
- •Классификация и архитектура внешних устройств. Классификация периферийных устройств и их архитектура
- •Способы организации ввода/вывода. Синхронный и асинхронный ввод/вывод. Архитектура подсистемы ввода/вывода
- •Ввод/вывод по опросу и по прерываниям
- •Активное и пассивное ожидание
- •Синхронный и асинхронный ввод/вывод
- •Буферизация и кэширование.
- •Сглаживание неравномерности скоростей процессов
- •Распараллеливание ввода и обработки
- •Согласование размеров логической и физической записи
- •Редактирование при интерактивном вводе
- •Кэширование дисков
- •Опережающее чтение.
- •Драйверы устройств. Типовая структура драйвера.
- •Уровни доступа к устройствам в ms-dos. Драйверы устройств ms-dos.
- •Драйверы устройств в ms-dos
- •Управление символьными устройствами в ms-dos. (На примере клавиатуры) Управление символьными устройствами
- •Управление блочными устройствами в ms-dos. (Структура диска) Управление блочными устройствами Структура диска
- •Разделы и логические тома
- •Управление устройствами в Windows и unix. Управление устройствами в Windows Драйверы устройств в Windows
- •Управление устройствами в unix Драйверы устройств в unix
- •Устройство как специальный файл
- •Характеристики файлов и архитектура файловых систем.
- •Размещение файлов.
- •Разделение файлов между процессами. Разделение файлов между процессами
- •Файловая система fat. Структуры данных на диске, создание и удаление файлов. Файловая система fat и управление данными в ms-dos Общая характеристика системы fat
- •Структуры данных на диске
- •Создание и удаление файла
- •Работа с файлами в ms-dos. Хэндлы. Внутренние структуры данных подсистемы управления данными (sft, jft). Работа с файлами в ms-dos. Системные функции.
- •Доступ к данным
- •Структуры данных в памяти
- •Архитектура файловой системы unix.
- •Жесткие и символические связи
- •Монтируемые тома
- •Типы и атрибуты файлов
- •Управление доступом к файлам в unix. Управление доступом
- •Структуры данных файловой системы unix.
- •Развитие файловых систем unix. Развитие файловых систем unix
- •Особенности файловой системы ntfs. Особенности файловой системы ntfs
- •Структуры дисковых данных
- •Главная таблица файлов
- •Атрибуты файла
- •Доступ к данным в Windows. Доступ к данным
- •Защита данных в Windows. Защита данных
- •Аутентификация пользователя
- •Дескриптор защиты
- •Процессы и ресурсы. Квазипараллельное выполнение процессов. Понятия процесса и ресурса
- •Квазипараллельное выполнение процессов
- •Состояния процесса. Состояния процесса
- •Вытесняющая и невытесняющая многозадачность. Вытесняющая и невытесняющая многозадачность
- •Дескриптор и контекст процесса. Реентерабельность системных функций. Дескриптор и контекст процесса
- •Реентерабельность системных функций
- •Дисциплины диспетчеризации и приоритеты процессов. Дисциплины диспетчеризации и приоритеты процессов
- •Изоляция и взаимодействие процессов. Проблема взаимного исключения. Изоляция процессов и их взаимодействие
- •Проблема взаимного исключения процессов
- •Двоичные семафоры Дейкстры. Средства взаимодействия процессов. Двоичные семафоры Дейкстры
- •Средства взаимодействия процессов
- •Целочисленные семафоры
- •Семафоры с множественным ожиданием
- •Сигналы
- •Сообщения
- •Общая память
- •Программные каналы
- •Проблема тупиков. Проблема тупиков
- •Процессы и нити в Windows.
- •Планировщик процессов в Windows. Планировщик Windows
- •Синхронизация нитей и функции ожидания в Windows. Синхронизация нитей. Способы синхронизации.
- •Объекты синхронизации и функции ожидания
- •Объекты синхронизации в Windows. Критические секции. Типы объектов синхронизации
- •Критические секции
- •Механизм обмена сообщениями в Windows.
- •Жизненный цикл процесса в unix. Группы процессов. Жизненный цикл процесса
- •Группы процессов
- •Программные каналы
- •Сигналы
- •Интерпретатор команд shell
- •Виртуальные и физические адреса
- •Распределение памяти без использования виртуальных адресов Настройка адресов
- •Распределение с фиксированными разделами
- •Распределение с динамическими разделами
- •40. Сегментная и страничная организация памяти. Сегментная организация памяти
- •Страничная организация памяти
- •Управление памятью в Windows Структура адресного пространства
- •Регионы
- •Отображение исполняемых файлов
- •Файлы, отображаемые на память
- •Стеки и кучи
Развитие файловых систем unix. Развитие файловых систем unix
Описанная выше классическая файловая система UNIX является по-своему весьма стройной и мощной, способной удовлетворить разнообразные требования пользователей. В то же время эта система давно уже подвергалась критике за два существенных недостатка, определяемых выбором описанных выше структур данных. Эти недостатки следующие:
ненадежность;
низкая производительность.
Поговорим сначала о ненадежности. Можно назвать следующие опасные места в структуре файловой системы UNIX.
Широкое использование сцепленных списковых структур для хранения жизненно важной информации о размещении файлов и свободных блоков. Программистам известен основной недостаток сцепленных списков: при минимальном искажении хотя бы одного из указателей теряется, в лучшем случае, вся последующая часть списка. Возможна и потеря данных, не входящих в поврежденный список. Попробуйте представить себе, что произойдет на диске, если в качестве номера косвенного блока вследствие аппаратного сбоя будет записан номер ни в чем не повинного блока данных из совсем другого файла…
Интенсивное использование суперблока для хранения часто изменяющейся информации. Поскольку каждая операция записи связана с возможностью искажения данных, под угрозой оказываются жизненно важные параметры файловой системы, которые тоже хранятся в суперблоке, но не требуют частых изменений: размеры всей файловой системы и ее частей, размер блока и т.п.
Компактное размещение в начале дискового тома наиболее важных метаданных (суперблок, массив дескрипторов) приводит к тому, что при механическом повреждении начальных дорожек диска теряется возможность доступа ко всем данным на диске.
Давно известны и факторы, влияющие на снижение производительности работы:
использование косвенных блоков приводит к тому, что для поиска нужного места в большом файле могут потребоваться дополнительные операции чтения с диска.
используемые алгоритмы выделения и освобождения дисковых блоков по принципу «последним освободился — первым занят» способствуют фрагментации дискового пространства, а это, как нам известно, приводит к снижению скорости доступа.
Неудивительно, что в качестве замены системы s5fs были предложены различные более надежные и производительные файловые системы. К их числу относятся, например, система FFS, используемая в версии UNIX 4BSD, а также система ext2, поставляемая с Linux. Все эти системы поддерживают привычную архитектуру UNIX, включая структуру каталогов, жесткие и символические связи, типы файлов, набор атрибутов. Различия заключаются в реализующих эту архитектуру структурах дисковых данных и в алгоритмах работы с ними.
Постараемся дать общее представление о направлениях усовершенствования файловых систем UNIX, не вдаваясь в детали конкретных систем.
Дисковый том разбивается на несколько групп цилиндров. Каждая группа содержит копию общего суперблока, а также отдельный массив дескрипторов и блоки данных. В случае повреждения основного экземпляра суперблока его содержимое может быть восстановлено по сохранившейся копии. Повреждение метаданных в одной из групп цилиндров не ведет к потере информации в остальных группах.
Данные о количестве и местонахождении свободных блоков вынесены из суперблока и хранятся отдельно в каждой группе цилиндров.
Для хранения данных о свободных блоках используется не списковая структура, а битовая карта, в которой каждый блок из группы цилиндров помечается как свободный или занятый. Это уменьшает тяжесть последствий в случае повреждения данных.
Алгоритм размещения файлов старается по возможности размещать все файлы одного каталога, а также их дескрипторы, в пределах одной группы цилиндров. Напротив, подкаталоги по возможности не размещаются в той же группе цилиндров, что родительский каталог. Таким способом обычно удается уменьшить количество перемещений головок при работе программы с файлами.
Нужно отметить, что в современных версиях UNIX, как и в других современных ОС, поддерживается одновременное использование разных файловых систем на разных дисковых томах. Этой цели служит понятиевиртуальной файловой системы (VFS). Она позволяет подключать к единому дереву каталогов файловые системы различных типов, в том числе такие чужеродные для UNIX, как FAT или NTFS. Для работы с файлами используется единый набор файловых функций, однако при их вызове, в зависимости от того, к какой файловой системе принадлежит данный файл, будут вызываться различные подпрограммы.
