- •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 Server: Windows 2000 Server, Windows 2000 Advanced Server, Windows Data Center Server.
В Windows XP существовало шесть клиентских версий: Windows XP Home Edition, Windows XP Professional, Windows XP Starter edition, Windows XP Table PC edition, Windows XP Media Center edition, Windows XP Embedded.
Windows Server 2003 выпускается в шести разновидностях: Windows 2003 WEB Edition, Windows Server 2003 Standard edition, Windows 2003 Server Small Business, Windows 2003 Storage Server, Windows 2003 Enterprise Edition, Windows 2003 Data Center edition.
Многообразие версий связано с потребностью рынка в эффективной организации вычислительного процесса засчет снижения универсальности.
В целом версии различаются по следующим параметрам:
1) число поддерживаемых процессоров;
2) объем поддерживаемой реальной памяти;
3) количество поддерживаемых одновременных сетевых соединений;
4) наличие специфических сервисов ОС от версии к версии.
Замечание: у всех клиентских и серверных выпусков есть общий набор базовых системных файлов: ядра, библиотеки, относящейся к HAL, драйверы, встроенные системные утилиты, DLL.
Примечание: Windows XP была первой ОС, которая не имела серверную версию. Вместо нее появился отдельный продукт Windows Server 2003, т.е. в целом Windows XP и Windows 2003 неодинаковые ОС.
Следует отметить, что при загрузке система знает, какой тип ОС загружается и делается отметка в реестре в параметрах ProductType (отличает клиентскую версию от серверной) и ProductSuite (различает, какие типы версий установлены).
Лекция. Проверочный выпуск ос
Специальная отладочная версия Windows носит название «Проверочный выпуск», который можно найти в Checked Build. Она доступна не всем, а только официальным партнерам майкрософта. Особенность: перекомпилированный исходный код Windows осуществлен с флажком –dbg (возможна локальная отладка и трассировка). Предназначен для разработчиков ОС. Примечание: возможно через WMI получить информацию, какой выпуск Windows в настоящий момент установлен.
Ключевые компоненты системы
На слайде 15 представлена укрупненная системная архитектура Windows.
Подсистема окружения
Windows имеет три подсистемы окружения: windows Os/2 и Posix. Примечание: OS/2 удалена из windows, начиная с windows 2000 как штатная компонента. Posix не поставляется, начиная с Windows XP.
Взамен идет продукт Services for Unix, т.е. системы OS/2 и POSIX запускаются и устанавливаются в случае необходимости.
Подсистема Windows – компонента, без которой ОС работать не может. Обрабатывает в т.ч. клавиатурные операции, мышь и т.д.
Начальная конфигурация подсистемы находится в разделе реестра SubSystems.
Значения параметров:
1) Required – список подсистем, загружаемых при запуске Windows. Параметр состоит из двух частей:
а) Windows – указывается спецификация файла подсистемы Windows (csrss.exe);
б) Debug – не заполненный. Примечание: использование этого параметра позволяет загрузить версию Windows с возможностью выполнения некоторых функций отладчика ядра (файл boot.ini).
2) Optional – указывает, что подсистема POSIX запускается по требованию;
3) KMode – содержит имя файла win32k.sys – часть подсистемы Windows, работающей в режиме ядра.
Подсистемы окружения предоставляют прикладным программам множество сервисов исполнительной системы Windows. Каждая отдельная подсистема Windows обеспечивает доступ к разным встроенным сервисам. Замечание: приложение, реализованное для одной подсистемы Windows, может не выполняться в другой. Например, Windows приложения не могут выполняться в системах OS/2 и POSIX.
При запуске образа кода он получает тип подсистемы, указанный в заголовке образа и оповещает соответствующую подсистему.
Смешивать в приложении вызовы разных подсистем окружения нельзя.
Пользователи приложения для вызова системных сервисов обращаются далее к подсистемам DLL. DLL представляют документированный интерфейс между программами и вызываемыми подсистемами, например, DLL подсистемы Windows реализуют функции API, DLL подсистемы - POSIX API.
При вызове возможны следующие состояния:
1) функция реализована в пользовательском режиме внутри DLL подсистемы. Никаких сообщений процессу подсистема окружения не посылает. После выполнения функции в пользовательском режиме возвращает управление приложению.
2) функция требует одного или более вызова исполнительной системы Windows. Пример: ReadFile обращается к недокументированным сервисам ввода-вывода ОС несколько раз.
3) функция требует выполнения каких-либо операций в самой подсистеме окружения. В этом случае подсистема окружения выдает клиент-серверный запрос к ОС на выполнение этой операции и ждет ответа.
