
- •Тема 8. Интерфейсы операционных систем
- •8.1.Интерфейс прикладного программирования
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1.Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1.Основные определения
- •8.1.1.Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1. Интерфейс прикладного программирования
- •8.1.2. Классификация системных вызовов
- •Основные функции управления синхронизацией
- •Основные функции управления виртуальной и физической памятью
- •Основные функции управления виртуальной и физической памятью
- •Функции механизма отображения файла в память
- •Основные функции для файлового ввода-вывода
- •Основные функции управления каталогами
- •Некоторые категории вызовов GUI
- •Основные функции управления защитой
- •Основные функции управления реестром
- •Основные функции управления консолью
- •8.1.Интерфейс прикладного программирования
- •8.1.3. Программирование системных вызовов
- •8.1.3.Программирование системных вызовов
- •8.1.3. Программирование системных вызовов
- •8.1.3. Программирование системных вызовов
- •8.1.3.Программирование системных вызовов
- •8.1.3.Программирование системных вызовов
- •8.1.Интерфейс прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •Способы реализации ИПП
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •На рис. позицией 1 обозначен вызов обработчика ловушки и диспетчера базовых сервисов. Позиции
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.2. Интерфейс пользователя
- •8.2.1.Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.1.Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.1.Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.Интерфейс пользователя
- •8.2.2.Консоль
- •8.2.2. Консоль
- •8.2.2. Консоль
- •8.2.2. Консоль
- •8.2.2. Консоль
- •8.2.2.Консоль
- •8.2.Интерфейс пользователя
- •8.2.3. Графическая среда
- •8.2.3. Графическая среда
- •8.2.3. Графическая среда
- •8.2.3. Графическая среда
- •8.2.Интерфейс пользователя
- •8.2.Интерфейс пользователя
- •8.2.Интерфейс пользователя
- •8.2.5. Архитектура, управляемая событиями
- •8.2.5. Архитектура, управляемая событиями
- •8.2.5. Архитектура, управляемая событиями
- •8.2.5. Архитектура, управляемая событиями

8.2.Интерфейс пользователя
8.2.5.Архитектура, управляемая событиями
Появление элементов управления стало возможным благодаря реализации новой архитектуры взаимодействия пользователя с программой.
Во многих операционных системах (MS DOS, UNIX) взаимодействие с пользователем инициирует программа пользователя.
Например, в MS DOS при необходимости осуществить ввод данных с клавиатуры приложение выводит приглашение и выполняет запрос к системе.
Это характерно и для всех Windows-программ, написанных в стиле консольного приложения. Такие программы сами обращаются к операционной системе. Прикладная программа (ПП) сама определяет, в какой момент времени она хочет получить от пользователя информацию.
101

8.2.5. Архитектура, управляемая событиями
Схема взаимодействия на примере ввода с клавиатуры с помощью функции getchar() языка С. Цифрами показана последовательность выполнения вызова.
102

8.2.5. Архитектура, управляемая событиями
Весь интерфейс имеет структуру «приглашение или вопрос - ожидание ввода - ввод - обработка - вывод результата». При такой архитектуре взаимодействия программа управляет пользователем.
Ранее эта архитектура была вполне приемлемой, пока не появилось множество источников информации, отличных от клавиатуры. Например, теперь благодаря наличию мыши пользователь по своему усмотрению может выбрать требуемую команду меню или нажать какую-либо кнопку, щелкнуть на значке панели управления, ввести текст или, в конце концов, нажать допустимую комбинацию клавиш.
Для реализации такого сценария нужна новая архитектура, в которой пользователь управляет программой, а последняя всегда готова обрабатывать ввод из любых источников информации. Именно подобное взаимодействие и реализовано в Windows.
Прикладная программа теперь не запрашивает с помощью системных вызовов ввод данных с клавиатуры, вместо этого она ждет, когда Windows введет информацию и передаст ее вашей программе.
103

8.2.5. Архитектура, управляемая событиями
Этот процесс состоит из следующих этапов (см. рис. ниже). Программа ожидает сообщения от Windows и в общем случае бездействует.
Пользователь, щелкая клавишами мыши или вводя информацию с клавиатуры, инициирует событие и работу соответствующего драйвера.
Сообщения от драйверов сначала передаются в системную очередь, а затем перераспределяются по очередям приложений (точнее, потоков).
Из очереди приложения операционная система выбирает сообщение и вместе с управлением передает его соответствующему приложению.
После получения сообщения программа производит его обработку и далее снова переходит в состояние ожидания очередного сообщения.
Описанная выше и реализованная в Windows схема взаимодействия пользователя, операционной системы и приложения называется
архитектурой, управляемой событиями (сообщениями).
104

8.2.5. Архитектура, управляемая событиями
105