- •1. Понятие вычислительной системы
- •1.1. Модель вычислителя
- •1.2. Модель коллектива вычислителей
- •1.3. Понятие параллельных алгоритмов
- •1.4. Принципы технической реализации модели коллектива вычислителей
- •1.5. Классификация архитектур вычислительных систем
- •1.6. Конвейерные вычислительные системы
- •1.7. Матричные вычислительные системы
- •1.8. Мультипроцессорные системы
- •1.9. Распределенные вычислительные системы
- •1.10. Вычислительные системы с программируемой структурой
- •1.11. Примеры реализаций вычислительных систем.
- •2. Аппаратные средства вс
- •2.1. Прерывания
- •2.2. Многомодульное программирование
- •2.3. Реализация архитектурных решений. Обзор технологий процессоров Intel
- •3. Ос. Основные понятия и типы операционных систем
- •3.1. Основные технологии программирования
- •3.2. Общие подходы к построению ос. Классификация ос.
- •3.3. Основные функции ос
- •3.4. Подходы к построению ос.
- •3.5. Виртуализация
- •3.6. Подходы Oracle
- •3.7. Центры обработки данных (цод)
- •Инструментарий ос (на основе Windows)
- •Основные базовые понятия: процессы и потоки
- •Инструментарий
- •Режим ядра и пользовательский режим
- •Средства изучения внутреннего устройства Windows
- •Основные концепции построения Windows
- •Архитектура современных ос
- •Лекция Основные требования при проектировании
- •Модель ос Windows
- •Обзор архитектуры
- •Многопроцессорная обработка
- •Различия между клиентскими и серверными версиями ос Windows
- •Лекция. Проверочный выпуск ос
- •Ключевые компоненты системы
- •Подсистема окружения
- •Подсистема окружения Windows
- •Исполнительная система Windows
- •Объекты ядра
- •Поддержка оборудования
- •Уровень абстрагирования от оборудования (Hardware Abstraction Layer)
- •Драйверы устройств в ос Windows
- •Недокументированные интерфейсы
- •Системные процессы
- •Прерывания (interrupts) и dpc (deferred procedure calls)
- •Процесс system и его потоки
- •Диспетчер сеансов
- •Диспетчер управления сервисами
- •Системные механизмы Windows
- •Виртуальная память
- •Режим ядра и пользовательский режим
- •Другие механизмы
- •Уровни запросов программных прерываний
- •Объекты прерывания
- •Программные прерывания
- •Прерывания apc (Asynchronous Procedure Call)
- •Диспетчеризация исключений
- •Необработанные исключения
- •Поддержка отчетов об ошибках
- •Диспетчеризация системных сервисов
- •Диспетчеризация 32-разрядных системных сервисов
- •Диспетчеризация системных сервисов режима ядра
- •Диспетчер объектов
- •Объекты исполнительной системы
- •Структура объектов в Windows
- •Заголовки и тела объектов
- •Объекты типа
- •Атрибуты объекта типа
- •Методы объекта
- •Описатели объектов и таблица описателей
- •Глобальные флаги Windows
- •Трассировка событий ядра
- •Управление процессами и потоками
- •Внутреннее устройство процессов
- •Создание процессов
- •Внутреннее устройство процессов. Структуры данных
- •Внутреннее устройство потоков
- •Основные блоки описания потоков в ос Windows
- •Взаимодействие процессов (ipc)
- •Взаимоисключения
- •Синхронизация в Windows
- •Спин-блокировки
Объекты ядра
Ядро состоит из низкоуровневых четко определенных и хорошо предсказуемых механизмов ОС, которые позволяют компонентам исполнительной системы в целом выполнять свои функции. Замечание: в Windows ядро отделено от остальной части исполнительной системы, не реализует системные механизмы и не принимает решений, связанных с системной политикой по организации вычислительного процесса. Все решения принимаются исполнительной подсистемой (кроме частично планируемой диспетчеризации процессов и потоков).
Исполнительная подсистема предоставляет все общедоступные ресурсы в виде объектов. Замечание: управление объектами требует системных издержек: описатели, средства защиты квоты и т.д. Чтобы снизить системные издержки, ядро реализует свои объекты, называемые объектами ядра (kernel objects). Возможна ситуация, когда один объект исполнительной подсистемы инкапсулирует, включает в себя несколько объектов ядра.
Объекты ядра делятся на следующие группы:
1) управляющие объекты ядра (Control Objects) – объекты, связанные с обработкой прерываний, исключений, некоторой частью ввода-вывода и др.
2) объекты диспетчера ядра – реализуют средства синхронизации для планирования выполнения потоков, включают такие объекты как поток ядра (Kernel Thread), мьютекс, событие, семафор, таймер, ожидаемый таймер и др. Объекты ядра создает исполнительная система с помощью функций ядра. Кроме того, манипулируя этими функциями, создает сложные объекты.
Поддержка оборудования
Одна из основных задач ядра – изоляция исполнительной подсистемы и драйверов устройств от различий между аппаратными платформами, поддерживаемыми Windows. Идея: максимальное обобщение кода ядра – минимум аппаратно-зависимой части. Кроме того, поддержка идентичных и переносимых в случае изменения платформ интерфейсов к функциям ядра. Замечание: интерфейсы в зависимости от аппаратной части реализуются по-разному, но можно выделить и аппаратно-независимые интерфейсы, которые можно выполнять внутри ОС на любой платформе.
Пример: в ядре Windows содержится часть кода с x86 специфичным интерфейсом, необходимым для поддержки приложений MS-DOS. Эти интерфейсы не являются переносимыми, т.е. нельзя выполнять на другой аппаратной платформе (например, поддерживает манипуляцию с GDT и LDT при организации виртуальной памяти специфичными для x86).
Различны также блоки динамического преобразования адресов – аппаратная поддержка преобразования виртуального адреса в реальный. Поэтому в ядре предусмотрена компонента, которая называется HAL, скрывающая отличия программно-аппаратных платформ.
Уровень абстрагирования от оборудования (Hardware Abstraction Layer)
Является ключевой компонентой ядра, осуществляющей переносимость. HAL – загружаемый модуль hal.dll (слайд 28), предоставляет низкоуровневый интерфейс с аппаратной платформой. Скрывает специфику аппаратной платформы (контроллеры, регистры, ядра, система команд и др.).
Идея: когда компонентам Windows нужна платформенно-зависимая информация, они обращаются не к самой аппаратуре, а к программе HAL. Интерфейс обращения к HAL ОС, драйверов документирован в Windows DDK.
Windows предоставляет несколько типов модулей HAL. При установке Windows устанавливается один. На слайде 28 представлены возможные названия модулей HAL под ту или иную аппаратную платформу.
ОС предоставляет возможность просмотреть взаимосвязь образа ядра ntoskrnl.exe и HAL. На слайде 29 ntoskernel связан сам с собой, с HAL, HAL связан с NT Kernel и видеодрайвером.
