- •Операционные системы
- •Владимирского государственного университета
- •Оглавление
- •1 Операционные системы. Общие понятия 5
- •2 Однопользовательские операционные системы 11
- •3 Сетевые операционные системы 13
- •4 Управление локальными ресурсами 17
- •5 Современные концепции и технологии проектирования операционных систем 43
- •Введение
- •1Операционные системы. Общие понятия
- •1.1Понятие и функции операционной системы
- •1.1.1Ос как расширенная машина
- •1.2Этапы развития ос
- •1.3Классификация ос
- •1.3.1Особенности алгоритмов управления ресурсами
- •Поддержка многозадачности
- •Поддержка многопользовательского режима
- •Вытесняющая и невытесняющая многозадачность
- •Поддержка многонитевости
- •Многопроцессорная обработка
- •1.3.2Особенности аппаратных платформ
- •1.3.3Особенности областей использования
- •1.3.4Особенности методов построения
- •2Однопользовательские операционные системы
- •2.1Структура однозадачной операционной системы
- •2.2Структура многозадачной операционной системы
- •3Сетевые операционные системы
- •3.1Структура сетевой операционной системы
- •3.2Одноранговые сетевые ос и ос выделенных серверов
- •4Управление локальными ресурсами
- •4.1Понятие ресурса
- •4.1.1Свойства и классификация ресурсов
- •4.1.2Действия над ресурсами
- •4.2Управление процессами
- •4.2.1Состояние процессов
- •4.2.2Алгоритмы планирования процессов
- •4.2.3Вытесняющая и невытесняющая многозадачность
- •4.2.4Нити
- •4.2.5Взаимодействие процессов Разделяемая память
- •Программные каналы
- •Системы, управляемые событиями
- •4.2.6Средства синхронизации процессов Проблема синхронизации
- •Критическая секция
- •4.3Управление памятью
- •4.3.1Типы адресов
- •4.3.2Методы распределения памяти без использования дискового пространства
- •Распределение памяти фиксированными разделами
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
- •4.3.3Методы распределения памяти с использованием дискового пространства Понятие виртуальной памяти
- •Страничное распределение
- •Сегментное распределение
- •Странично-сегментное распределение
- •Свопинг
- •4.3.4Иерархия запоминающих устройств. Принцип кэширования данных
- •4.4Управление вводом-выводом
- •4.4.1Физическая организация устройств ввода-вывода
- •4.4.2Организация программного обеспечения ввода-вывода
- •Обработка прерываний
- •Драйверы устройств
- •Независимый от устройств, слой операционной системы
- •Пользовательский слой программного обеспечения
- •4.5Файловая система
- •4.5.1Имена файлов
- •4.5.2Типы файлов
- •4.5.3Логическая организация файла
- •4.5.4Физическая организация и адрес файла
- •4.5.5Права доступа к файлу
- •4.5.6Общая модель файловой системы
- •4.5.7Отображаемые в память файлы
- •4.5.8Современная архитектура файловой системы
- •5Современные концепции и технологии проектирования операционных систем
- •5.1Требования, предъявляемые к ос нового поколения
- •5.2Пользовательский интерфейс
- •5.2.1Интерфейс cli
- •5.2.2Интерфейс gui
- •5.3Операционная система Windows nt
- •5.3.1История создания
- •5.3.2Особенности Windows nt версий 4.0 и 5.0
- •5.3.3Требования к аппаратуре
- •5.3.4Области использования Windows nt
- •5.3.5Микроядерная структура Windows nt
- •5.3.6Планирование процессов и нитей
- •5.3.7Управление памятью
- •5.3.8Файловые системы Windows nt
- •Файловая система fat
- •Файловая система ntfs Структура ntfs
- •Короткие имена
- •Надежность ntfs
- •5.3.9Управление вводом-выводом в Windows nt
- •5.3.10Встроенная сетевая поддержка в Windows nt
- •5.3.11Доменная справочная служба Windows nt
- •5.3.12Служба каталогов Active Directory Общие сведения о службе каталогов
- •Архитектура Active Directory
- •Модель данных
- •Логическая структура
- •Модель защиты данных
- •Модель управления
- •Свойства Active Directory
- •Интеграция dns
- •Именование объектов
- •Доступ к Active Directory
- •Виртуальные контейнеры
- •Глобальный каталог
- •Безопасность
- •Репликация
- •Деревья и лес
- •Логическая структура
- •Публикация
- •Литература
5.3.9Управление вводом-выводом в Windows nt
При разработке подсистемы ввода-вывода Windows NT ставились следующие задачи:
обеспечить поддержку нескольких файловых систем: FAT, CDFS, NTFS;
предоставить средства для упрощения разработки драйверов устройств, в том числе для SMP-платформ;
обеспечить возможность динамического добавления и удаления драйверов из системы;
обеспечить возможность ввода-вывода для отображаемых в памяти файлов.
Компоненты системы ввода-вывода представлены на рисунке 5.10. Каждый запрос на ввод-вывод представлен пакетом IRP (I/O Request Packet). Пакеты передаются от одной подсистемы ввода-вывода к другой. Менеджер ввода-вывода определяет порядок доставки пакетов IRP файловым системам и драйверам устройств. Менеджер не выполняет операций ввода-вывода, он только создает пакет IRP, передает его нужному драйверу и удаляет пакет, когда операция завершается. Драйвер же, получив IRP, выполняет операцию ввода-вывода, а затем возвращает пакет менеджеру для уничтожения или передачи другому драйверу.
Термин «драйвер» в Windows NT имеет более широкое значение, чем «драйвер устройства». Файловая система – это сложный драйвер, который принимает запросы к файлам и передает свои более конкретные запросы драйверам физических устройств.
Кроме передачи пакетов, менеджер ввода-вывода выполняет следующие действия:
предоставляет драйверам некоторые общие функции, например, для вызова одного драйвера другим;
управляет буферами для запросов ввода-вывода;
управляет тайм-аутом для драйверов;
ведет записи о том, какие файловые системы установлены.
Unix в свое время представил новую упрощенную модель ввода-вывода. Все независимые данные представлялись в виде потока байтов, который направлялся в виртуальный файл; этот файл мог быть терминалом, межпроцессным конвейером или «настоящим» файлом. В Windows NT тоже принят этот подход. Запросы к виртуальным файлам менеджер ввода-вывода динамически направляет к реальным файлам: каталогам, физическим устройствам, конвейерам, почтовым ящикам или к любым адресатам, которые будут поддерживаться в будущем.
Особенностью Windows NT является общая структура ее драйверов и широкое определение того, что собой представляет драйвер. В Windows NT и драйвер устройства, и драйвер ФС построены единым образом, и для остальной части ОС имеют один и тот же вид. Более того, редиректоры и именованные конвейеры также выглядят как «файловые системы» и реализованы в виде драйверов. Каждый драйвер – это самодостаточный компонент, который может быть динамически добавлен или удален из системы.
Основные черты модели драйвера:
драйверы переносимы. Они написаны на языке высокого уровня и мало зависят от архитектуры процессора;
операции ввода-вывода управляются пакетами IRP;
система ввода-вывода может динамически назначать драйверы для новых устройств при изменении конфигурации системы;
драйверы должны синхронизировать свой доступ к глобальным данным драйвера из-за того, что выполнение драйвера может быть прервано либо высокоприоритетной нитью, либо высокоприоритетным прерыванием. Кроме того, драйвер может выполняться на многопроцессорном компьютере, что повышает вероятность одновременного обращения нескольких копий драйвера к общим глобальным данным;
интерфейс драйверов с менеджером ввода-вывода стандартизирован, что позволяет менеджеру вызывать их «вслепую», не зная их особенностей или структур внутренних данных. Драйверы могут также вызывать друг друга (через менеджер ввода-вывода) для достижения многоуровневой обработки запросов ввода-вывода.
В Windows NT чаще используется многоуровневая модель обработки запроса ввода-вывода, но для простых устройств может применяться и одноуровневая модель, когда менеджер вызывает только драйвер устройства. Может использоваться не только двухуровневая модель (как, например, файловый драйвер - драйвер устройства), но и модель с большим числом уровней. Например, если в компьютере есть SCSI-адаптер, к которому подключен диск, то запрос к такому диску проходит через 3 драйвера: драйвер файловой системы, драйвер класса дисков, драйвер SCSI-порта.
Ввод-вывод в отображаемые файлы – это важное свойство Windows NT, которое обеспечивается как менеджером ввода-вывода, так и менеджером виртуальной памяти. Менеджер виртуальной памяти делает это свойство доступным для пользовательского режима. Подсистемы окружения (например, Win32) могут использовать эти сервисы менеджера виртуальной памяти для предоставления возможности отображения файлов своим приложениям.
При отображении файл представляется как часть виртуального адресного пространства процесса. Процесс может осуществлять доступ к данным файла как к большому массиву в памяти, не выполняя операций ввода-вывода в файл. При доступе к памяти, отображающей файл, менеджер виртуальной памяти использует свой страничный механизм для загрузки соответствующей страницы в физическую память с диска. Если приложение пишет в файл, то менеджер виртуальной памяти записывает измененные страницы на диск как часть общего процесса страничного обмена.
Один из компонентов системы ввода-вывода – менеджер кэша – использует механизм отображенного ввода-вывода для управления своим кэшем, расположенным в оперативной памяти. Файловые системы и сетевой сервер используют этот кэш для размещения в нем часто используемых файловых данных. Тогда как в большинстве файловых систем объем кэша фиксированный, в Windows NT кэш растет или уменьшается в зависимости от наличия свободной физической памяти. Обращение к части файла, расположенной в кэше, является гораздо более быстрым.