- •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 функций, например, StartService (слайд 43) или вручную с помощью оснастки Services в папке Администрирование.
Сервисами управляет специальный системный процесс, который называется Service Control Manager (services.exe) – отвечает за запуск сервисов, остановку и взаимодействие. Как правило, у сервиса есть три имени:
1) имя процесса, соответствующего ему, выполняющегося в системе;
2) внутреннее имя в реестре;
3) отображаемое имя, которое можно посмотреть в оснастке Services закладки Администрирование.
Замечание: если у сервиса нет отображаемого имени, то используется его внутреннее имя. Посмотреть, какие сервисы используются в том или ином процессе, можно с помощью команды tlist или установленного списка сервисов в ОС с помощью Администрирование -> Services. Для сервисов можно посмотреть детальную информацию.
Системные механизмы Windows
Это механизмы, реализованные в ОС.
Виртуальная память
В Windows реализована виртуальная память на основе так называемой плоской модели (линейное адресное пространство). Идея: модель создает каждому процессу иллюзию, что у него есть собственное большое и закрытое адресное пространство. Во время выполнения диспетчер памяти, используя аппаратную поддержку, подкачивает страницы (сегменты), находящиеся в области страничного обмена в реальную память и вытесняет их обратно в случае необходимости освобождения реальной ОП. Далее он преобразует виртуальные адреса, которые расположены линейно в виртуальном адресном пространстве процесса в реальные адреса реальной ОП, учитывая, что виртуальные страницы помещаются в несмежные рамки реальной ОП. Он также защищает рамку реальной ОП, в которой загружена страница, от воздействия других страниц из других рамок реальной ОП.
Замечание: необходимо помнить, что идея виртуальной памяти увеличивает во много раз значение общей памяти процесса по отношению к объему реальной памяти.
Размер ВАП, выделяемый ОС, зависит от конкретной аппаратной платформы.
На 32-разрядных x86 системах теоретический максимум ВАП – 4 ГБ. Эти 4 ГБ делятся на две части слева (слайд 4): нижняя часть – процессам, верхняя часть – используется ОС в собственных целях.
Замечание: в некоторых ОС Windows возможно деление ВАП на другие части: 3 ГБ и 1 ГБ. Правая часть используются для хранения частей баз данных для сокращения ввода-вывода.
Замечание: развитие технологий виртуальной памяти в Windows предусмотрен механизм AWE («Address Windows Extension»), позволяющий 32-разрядному приложению выделять до 64 ГБ памяти таким образом, что оно проецируется на штатное 2 ГБ адресное пространство.
64-разрядная Windows позволяет выделять 7 ГБ для процессоров Italium и 8 ГБ для процессоров x64.
Режим ядра и пользовательский режим
Для перехода из пользовательского режима в режим ядра используются возможности аппаратной платформы.
Примечание: в режиме ядра предоставляется доступ ко всей системе (аппаратной и программной части), в режиме пользователя – нет.
Переход из режима пользователя в режим ядра может осуществляться по команде ассемблера. Команда выполняет копирование регистра общего назначения Rn в счетчик команд. Во время перехода осуществляется очистка конвейера команд и передается управление той команде, которая была занесена в регистре Rn.
Важно разобраться с механизмом перевода из пользовательского режима по команде ассемблера в режим ядра.
