Индустрия программирования

Типичные функции, которые подсистемы



  1. Создание и завершение процессов и нитей
  2. Регистрация и управление взаимоотношениями между
    процессами
  3. Чтение, запись и другие действия с адресными
    пространствами процессов - клиентов
  4. Останов нити клиента, изменение пользовательского
    контекста нити, рестарт этой нити
  5. Захват и обработка исключительных ситуаций (exeptions),
    генерируемых клиентскими процессами











Отличия 32-битного API Win32 от 16-битного
Windows API:


  • использование 32-битной плоской модели памяти
  • расширенные функции по управлению вводом-выводом,
    памятью, объектами
  • поддержка многонитевости, безопасности
  • улучшены функции по управлению графикой и окнами


Преемственность API Win32

  • управление окнами и пользовательским интерфейсом
    из Windows 3.0
  • пользовательский интерфейс Windows NT полностью
    совместим с пользовательским интерфейсом Windows 3.1
  • графическая часть подсистемы Win32 является
    полностью новой
  • новое свойство Win32 - безопасность













Подсистема OS/2

  • символьно-ориентированные приложения OS/2 1.х
  • компьютеры на базе процессоров х86
  • запуск из командной строки Windows NT, из Program
    Manager или косвенно из приложений OS/2 или Win32
  • распознаются по заголовку исполняемого файла
  • для загрузки приложения - вызов подсистемы OS/2
  • запускается процесс OS/2SRV подсистемы окружения
    OS/2
  • попытки выполнить сегменты ввода-вывода в кольце
    2 завершаются кодом "Общий сбой по защите"
  • Объекты Windows NT встраиваются внутрь объектов
    OS/2
  • Нить получает приоритет и идентификатор, которые
    являются допустимыми в OS/2
  • Подсистема окружения OS/2 использует возможности
    большой памяти Windows NT


Подсистема Posix (Portable Operation System Interface based on UNIX)

  • запуск из консольного текстового окна Windows
    NT, с помощью File Manager, Program Manager и косвенно из другого
    приложения POSIX
  • на диске должен находится по крайней мере один
    раздел NTFS
  • Подсистема POSIX непосредственно не поддерживает
    печать
  • Командный процессор Windows NT поддерживает команды
    всех подсистем окружения



Механизм вызова локальных процедур (Local Procedure Call, LPC)

Назначение - прозрачный
вызов процедур одного процесса из другого процесса внутри одной
машины


LPC - локальный вариант RPC

Для прикладного программиста совершенно прозрачен

Системный программист оформляет библиотеку стабов
LPC и библиотеку функций сервера LPC и регистрирует последнюю
в ядре

Механизм передачи параметров и результаты в LPC -
передача асинхронных сообщений через общую память
Передача сообщений при реализации LPC


Передача сообщений через коммуникационные
порты


Коммуникационные порты
- очереди фиксированной длины в виртуальном адресном пространстве
ядра.

Передача сообщений через разделяемую секцию памяти


  • Клиентский стаб сам решает, какого размера сообщения понадобятся
    для передачи параметров процедуры
  • Если потребуется сообщение 256 байт, то стаб создает секцию
    памяти и отображает ее (с помощью менеджера виртуальной памяти)
    в свое адресное пространство и пространство процесс-сервера


Содержание раздела