Операционные системы Windows NT.
GDI.exe
USER.exe
Категории функций
- функции работы с сообщениями (обработка сообщений в очереди приложения)
- создание окна
- ввод информации
- аппаратные функции, связанные с изменением состояния устройств ввода
- функции отрисовки подготовка окна к отображению информации (работа с панелями диалога, прокрутка изображения, работа меню)
- информационная
- системная
- работы с буфером обмена
- поддержки курсора
- функции поддержки экранного указателя
- аппаратно – независимые функции отображения графических изображений. Функции реализуются через драйверы устройств.
Категории функций
- функции работы с контекстом устройства
- функции работы с графическими объектами
- работы с палитрами
- работы с растровыми изображениями
- установки атрибутов изображения
- вывода текста
- работы со шрифтом
- функции преобразования координат
- функции отображения
- создания и использования мегафайлов (набор функций, который часто используется, реализован в виде мегафайла)
- работы с областями
- вывода на устройства печати
- отображения линий
Новое – графический интерфейс. В Windows управление событиями – основа работы ОС.
При разработке использовать современные технологии об ориентации программы. Требования к современной архитектуре. При разработке архитектуры NT используют архитектуру ядра.
Операционная система разделена на несколько подсистем сервисные функции. Например: сервис памяти, сервис по созданию процессов (планирование). Каждый сервер выполняется в пользовательском режиме, выполняя цикл проверки запроса от клиента на одну из его сервисных функций. Клиентом может быть прикладная программа, другая компонента ОС, клиент запрашивает сервис, посылая сообщение на сервер. Ядро ОС доставляет сообщение нужному серверу, сервер выполняет операцию, после этого ядро возвращает результаты клиенту с помощью другого сообщения.
Структура Windows NT.
Может быть представлена двумя частями: привилегированной и в режиме пользователя.
- Часть, работающая в режиме ядра, называется исполнительной частью.
Компоненты исполнительной части:
-управление виртуальной памятью
- объектами (ресурсами)
- управление вводом/выводом
- файловой системой
- взаимодействием процессов
- частичное управление безопасностью
Компоненты взаимодействуют с помощью межмодульной связи, используя набор внутренних процедур.
- В пользовательском режиме – серверы или защищенные подсистемы.
Каждый сервер выполняется в определенном процессе, память которого защищена от других процессов системой управления виртуальной памятью. Нет общей памяти, подсистемы общаются друг с другом с помощью посылки сообщений. Сообщения могут быть между двумя серверами, а так же между клиентом и сервером. Все сообщения проходят через исполнительную часть Windows NT. Исполнительная часть всегда находится в оперативной памяти.
Компоненты:
- менеджер объектов, создает, удаляет и управляет объектами – абстрактные типы данных, используемые для представления ресурсов системы.
- монитор безопасности – устанавливает правила защиты на локальном компьютере, защиту и регистрацию объектов.
- менеджер процессов – создает, приостанавливает, возобновляет и завершает процессы и нити, хранит информацию о них.
- менеджер виртуальной памяти
- подсистема ввода/вывода
Подсистема ввода/вывода:
- менеджер ввода/вывода – предоставляет средства ввода/вывода независимо от устройств
- файловая система
- сетевой редактор
- сетевой сервер
- драйверы устройств
- менеджер кэша
Исполнительная часть основана на службах предоставляемых ядром.
Функции ядра:
- планирование процессов
- обработка исключительных ситуаций и прерываний
- синхронизация процессора для многопроцессорных систем
- восстановление системы после сбоя.
Обращение к ядру возможно только с помощью прерываний.
Цель разрабочика – улучшение сетевых возможностей и производительности достигнуто разделением функций ядра и другими модулями. Передача данных в файловую систему и по сети производится быстрее в пространстве ядра, т.к. там выделен буфер для чтения и записи.
Защищенная подсистема работает в пользовательском режиме и создаются при загрузке ОС. Среди защищенных подсистем выделяют подсистемы окружения, которые реализуют интерфейсы приложений АР. Другие подсистемы называются интегральные. Большая часть подсистем выполнена как интегральные. Наиболее важная подсистема окружения Win 32. Подсистема обеспечивает доступ 32 разрядных приложений, так же обеспечивает графический интерфейс с пользователем и управлением вводом/выводом данных пользователя. Каждая защищенная подсистема работает в режиме пользователя, вызывая системный сервис для выполнения привилегированных действий в режиме ядра. Сетевые серверы выполняются в режиме ядра и пользователя. Подсистемы связаны между собой путем передачи сообщений. Основное средство, объединяющее все подсистемы – механизм вызова локальных процедур LPC.
Локальная процедура – оптимизированный вариант удаленного вызова процедур RPC. Средства LPC поддерживают несколько способов передачи данных между клиентами сервера и пользователем:
- для передачи коротких сообщений
- длинных сообщений
- для Win 32
Windows NT используют подсистемы для решения:
- обеспечение нескольких программ интерфейсов, по возможности не усложняя основной программный код
- базовую операционную систему изолируют от изменений в программном интерфейсе
- объединить часть глобальных данных, которые требуются всем программным интерфейсам
- защитить окружение каждого программного интерфейса от приложения и окружений других программных интерфейсов
- позволить операционной системе расширяться за счет новых программных интерфейсов
Микроядро.
Служит для поддержки переносимой основной части ОС, т.к. машинозависимая программа концентрируется внутри микроядра перенос на другие процессоры прост.
Множественные прикладные среды.
При разработке Windows NT требовалось обеспечить поддержку существующих программных интерфейсов. В полной мере использовали опыт разработчиков МАС в которой клиентсерверные реализации отделены базовые механизмы от серверов программных интерфейсов. Windows NT поддерживает 5 прикладных сред след операционных систем MS DOS, Windows 16, OC 2, POSIX, 32 разрядный Windows.
Объектно-ориентированный подход.
Использовался при разработке Windows NT. Любой ресурс системы, который одновременно может быть использован более чем одним процессом, реализован в виде объекта и управляется набором функций. Разработчики решили использовать объект для представления системных ресурсов, т.к. объекты обеспечивают централизованные средства для выполнения важных задач ОС:
- поддержка воспринимаемых человеком имен системных ресурсов
- разделение ресурсов и данных между процессами
- защита ресурсов от несанкционированного доступа
Не все структуры данных являются объектами, объектами являются данные которые нужно разделить защищать делать видимыми для программ пользовательского режима с помощью системных функций.
В Windows NT входит менеджер объектов, он выполняет следующие функции:
Функции менеджера объектов:
1) выделение памяти для объекта
2) присоединяет к объекту дискриптор безопасности, который определяет кому разрешено использовать объект и что можно с ним делать.
3) Создает структуру каталога объекта, манипулирует структурой каталога (где хранятся имена объектов).
4) создает описатель объекта, возвращает его вызывающему процессу.
Процессы пользовательского режима должны иметь описатель объекта перед тем, как нити этих процессов могут использовать объект. Каждый NT-объект является объектом определенного типа. Тип определяет данные, которые хранит объект и системные функции, которые применяются к этому объекту. Для единообразного управления различными объектами, каждый объект содержит несколько полей стандартной информации. Эта информация необходима менеджеру объектов. Менеджер объектов работает с заголовком объекта. Другие компоненты исполнительной части работают с телами объектов тех типов, которые они сами создают. Заголовок используется без учета типа объекта.