Базовая архитектура Windows 2000.
С Windows 2000 с точки зрения архитектуры организована как многоуровневая система модулей.Система поддерживает защищенный (системный) режим, в котором выполняются
· HAL,
· ядро и
· исполнительная подсистема (executive).
В пользовательском режиме исполняется набор подсистем, среди которых - подсистемы окружения, эмулирующие различные ОС, с целью совместимости приложений.
Подсистемы защиты реализуют различные функции безопасности.
Исполнительная система и ядро системы.
Ядро Windows 2000
Ядро в системе является основой функционирования исполнительной подсистемы (executive) и подсистем, выполняемых в пользовательском режиме. Отказы страниц в ядре исключены. Его исполнение никогда не прерывается.
Ядро выполняет следующие основные функции:
· Планирование потоков
· Обработка прерываний и исключений
· Низкоуровневую синхронизацию процессов
· Восстановление после отказов электропитания.
Особенно важной и принципиально новой в операционных системах особенностью является то, что ядро системы Windows - объектно-ориентированное.
Ядро использует два набора объектов:
· Объекты-диспетчеры - - объекты, управляющие диспетчеризацией и синхронизацией (события, мьютексы, семафоры, потоки, таймеры).
· Управляющие объекты - асинхронные вызовы процедур, обработчики прерываний, объекты нотификации об электропитании, объекты состояния электропитания, объекты профилирования.
Поддержка потоков и процессов в ядре.
Процессимеет адресное пространство в виртуальной памяти, информацию (например, базовый приоритет) и тесную связь с одним или несколькими процессами.
Потоки – единицы исполнения, планируемые диспетчером ядра. Каждый поток имеет свое собственное состояние, включая приоритет, связь с процессором и статистическую информацию. Поток может быть в следующих состояниях: ready, standby, running, waiting, transition и terminated.
Планирование в ядре.
Диспетчер использует 32-уровневую схему приоритетов для определения порядка выполнения потоков. Приоритеты разбиты на два класса:
· Класс real-time содержит потоки с приоритетами от 16 до 31.
· Класс variable содержит потоки с приоритетами от 0 до 15.
Характерными чертами стратегии приоритетов Windows 2000 являются следующие:
· Хорошее время ответа для потоков, использующих мышь и окна.
· Предоставление возможности потокам, связанным с вводом-выводом, обеспечивать занятость устройств ввода-вывода.
Планирование выполняется, когда поток переходит в состояние ready или wait, когда поток завершается, либо когда приложение изменяет приоритет потока или связь с процессором.
Потокам реального времени отдается предпочтение при выделении процессора; но ОС не гарантирует, что поток начнет выполняться в течение какого-либо определенного интервала времени (такой подход известен как soft real-time ).
Обработка прерываний в ядре
Ядро обеспечивает обработку прерываний, если исключения и прерывания генерируются аппаратурой и программным обеспечением. Таким образом, в Windows 2000 введены средства обработки исключений (exceptions) – более высокоуровневый механизм обработки ошибок, чем сигналы в UNIX.
Исключения, которые не могут быть обработаны программно, обрабатываются диспетчером исключений ядра ОС.
Диспетчер прерываний в ядре обрабатывает прерывание либо путем вызова подпрограммы, обслуживающей прерывание (например, драйвера устройства), либо путем вызова внутренней подпрограммы ядра.
Ядро использует блокировщики (spin locks,буквально – вертящиеся замки),находящиеся в основной памяти, для взаимного исключения процессов.
Исполнительная подсистема (executive) ОС Windows 2000
Менеджер объектов.
Как уже было сказано, Windows 2000 использует объекты для управления всеми своими службами и для представления сущностей. Менеджер объектов исполнительной подсистемы управляет использованием всех объектов. Основные функции менеджера объектов:
· Генерация object handle - ссылки на объект ядра Windows 2000;
· Выполнение проверок безопасности при работе с объектом;
· Слежение за использованием каждого объекта процессами.
Объекты управляются стандартным набором методов: create, open, close, delete, query name, parse, security.
Модуль executive поддерживает именование объектов. Имя может быть постоянным или временным. Имена объектов структурируются как имена путей доступа к файлам в MS-DOS или UNIX.
Реализованы объекты-символические ссылки, которые подобны символическим ссылкам в UNIX и дают возможность иметь несколько синонимов для одного файла.
Процесс получает ссылку на объект при его создании, при открытии уже существующего объекта, при получении скопированной ссылки от другого процесса, либо путем наследования ссылки от процесса-родителя.
Каждый объект защищен списком управления доступом.