- •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
- •Спин-блокировки
Архитектура современных ос
ОС является программной средой. Для каждой программной среды понимается программная и функциональная структура.
Функциональная структура – выполняемые функции программной средой.
Программная структура – состав и взаимодействие программных компонент, которые реализуют указанные функции.
Программная структура ОС. Наиболее общим подходом к построению является разбиение ОС на ядро и обеспечивающие модули.
Ядро – программная структура. Как правило, состоит из двух основных частей:
а) резидентная часть ядра – постоянно находится в реальной ОП, не подвергается страничному обмену;
б) нерезидентная часть – модули находятся в виртуальной памяти ядра и загружаются по мере необходимости. Как правило, модули ядра являются реентерабельными (повторно используемыми). Идея: после выполнения модуля изменения в нем не происходят и его могут использовать еще раз. Т.е. во время выполнения модуль не пишет и не изменяет свои области.
Разделение на резидентную и нерезидентную часть условно и осуществляется в различных ОС на различных подходов. В целях сокращения операций ввода/вывода наиболее часто используемые модули ядра помещают резидентную часть. В некоторых ОС существует инструментарий оптимизации, с помощью которого можно определить, какие модули наиболее часто подвергаются страничному обмену и вводу/выводу в целом и сделать их резидентными.
Ядро ОС имеет многослойную программную структуру:
а) модули по управлению средствами аппаратной поддержки – управляют обработкой команд на той или иной платформе;
б) машинно-зависимые модули – экранируют основные компоненты ядра от специфики аппаратуры, что позволяет разрабатывать модули более высокого уровня как машинно-независимые компоненты;
в) модули базовых механизмов ядра – выполняют наиболее примитивные операции ядра, являются исполнительным механизмом модулей более высокого уровня;
г) модули менеджера ресурсов (диспетчера) реализуют алгоритмы планирования, учета, выделения и освобождения ресурсов системы при организации вычислительного процесса.
Функциональная структура ядра. В общем случае для всех ОС в той или иной мере характерны следующие основные функции, сосредоточенные в ядре. Замечание: некоторые функции, перечисленные ниже, непосредственно не связаны с ядром, но являются функциональной компонентой ядра:
а) загрузчик (IPL, initial program loader) – представляет программу, которая, как правило, в зависимости от ОС, записывается в нулевой сектор диска, который опрашивается первым. Программа может записываться различными способами: при форматировании носителя или процесса генерации ОС.
б) программа инициализации ядра (NID, nuclear initial program) – программа APL, выполняясь, загружает в реальную ОП часть ядра, которая подготавливает информацию для дальнейшей загрузки. В некоторых ОС программа NID грузится в старшие адреса реальной ОП, чтобы в младшие адреса загрузить ядро. После того, как APL отработала, выполняется NIP, определяющая состояние аппаратных средств, устанавливающая место загрузки ядра в ОП, устанавливающая размер ОП и др. После этого NIP загружает в реальную ОП ядро ОС и передает ему управление. Область реальной ОП, где находилась NIP, освобождается.
в) поддержка привилегированного режима – в ОС предусмотрена функция корректного перевода процессора из пользовательского режима в режим ядра. В режиме ядра может использоваться все команды по управлению системой, вводом/выводом и аппаратной поддержкой. Если такая команда начинает выполняться в пользовательском режиме, возникает прерывание по привилегированной операции.
г) средства трансляции виртуальных адресов в реальные. Создание и актуализация таблиц для поддержки того или иного способа организации виртуальной памяти.
д) средства обработки прерываний – обработка прерываний происходит по-разному в зависимости от аппаратной платформы и типа ОС. Общим подходом является то, что сигнал прерывания того или иного типа, если он не замаскирован, осуществляет смену PSV, некой структуры, которая отслеживает автоматически аппаратно состояние системы в текущий момент времени, в т. ч. в ней находится адрес следующей выполняемой команды. PSV хранится в регистрах и может быть загружена в них с помощью машинной команды (например loadpsv <адрес ОП>). С этого момента следующей командой, которая будет выполняться, является та команда, адрес которой указан в загруженном новом PSV. Старая PSV сохраняется и после обработки прерывания загружается и вновь становится текущим, возобновляя прерванный процесс.
