- •1. Понятие вычислительной системы
- •1.1. Модель вычислителя
- •1.2. Модель коллектива вычислителей
- •1.3. Понятие параллельных алгоритмов
- •1.4. Принципы технической реализации модели коллектива вычислителей
- •1.9. Распределенные вычислительные системы
- •1.5. Классификация архитектур вычислительных систем
- •1.6. Конвейерные вычислительные системы
- •1.7. Матричные вычислительные системы
- •1.8. Мультипроцессорные системы
- •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 написана в среде объектно-ориентированного программирования.
Объектный подход в Windows позволяет получать согласованный и безопасный доступ к ресурсам системы и внутренним функциям по управлению ими. Все объекты Windows управляются компонентом, который называется Диспетчер объектов (Object Manager).
В ОС Windows у диспетчера объектов имеется база объектов, которые можно посмотреть с помощью программы WinObj, Process Explorer и др.
При разработке диспетчера объектов Windows к нему предъявлялись следующие требования:
1) должен быть реализован унифицированный механизм, который связывал бы управление ресурсами через объекты;
2) реализовать защиту объектов (а значит, ресурсов, которые им соответствуют) по требованиям к определенному классу безопасности (C2);
3) предоставить механизм, который бы позволял вести учет использования объектов и предоставляемые им ресурсы. Ввести наименования объектов и их типов, которые позволяли бы создавать новые объекты и новые типы объектов в зависимости от появления новых ресурсов;
4) должен быть применен механизм, который позволял бы обращаться к объектам и соответствующих подсистем окружения, т.е. API;
5) определить механизм, каким образом объект ()содержимое объекта) хранится в реальной памяти.
Объекты в Windows бывают исполнительные (Executive objects) и объекты ядра (Kernel Objects). Ядро входит в исполнительную систему. Объекты исполнительной системы (подсистема ввода-вывода, и т.д.) реализуются таким образом, что они невидимы приложением. Объекты ядра непосредственно создают базу для объектов исполнительной системы по управлению ресурсами, т.е. могут инкапсулировать несколько объектов ядра (слайд 44).
Объекты исполнительной системы
Как правило, объекты исполнительной системы создаются подсистемами окружения в интересах пользовательских приложений или компонент ОС. Например, для создания файла приложение вызывает CreateFile, который реализован в DLL подсистемы Windows и Kernel32.dll. После проверки инициализации CreateFile вызывается ntcreatefile – внутренняя функция ядра, в которой создается объект – файл исполнительной системы. Другие объекты, типа мьютекса и семафора, также создаются на основе выполнения внутренних функций ядра.
На слайде 45 показаны основные объекты, которые имеет исполнительная система Windows. Например, объект «процесс», который связывает ресурсы, отводимые процессу, с некоторой структурой данных. Объект «поток», объект «семафор» - аналогично.
Примечание: мьютекс, семафор – см. лекции в электронном виде.
Структура объектов в Windows
В Windows реализована следующая структура объекта:
1) заголовок
2) тело.
Заголовками управляет диспетчер объектов, а телами – колмпоненты исполнительной системы.
Заголовок также указывает на список процессов, которые открыли этот объект, который описывает какие-то ресурсы.
Кроме прочего, заголовок имеет указатель на специальный объект, который называется объектом типа. Объект типа – объект, который хранит информацию, общую для всех объектов данного типа. Слайд 45 – заголовок, тело объекта и объект типа.
