Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПС- читать.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
142.34 Кб
Скачать

1. Windows-как объектно-ориентированная операционная система (трпс)

Windows – многозадачная, многопользовательская, объектно-ориентированная, событийная операционная система. Операционные системы Windows имеют единый графический интерфейс, поддерживают обмен данными между приложениями. Исполняемые приложения Windows абсолютно не зависят от особенностей аппаратуры компьютера. Характерно полное использование всех ресурсов.

Система Windows является операционной системой передачи сообщений. В основе системы лежит механизм, транслирующий практически каждое событие – нажатие клавиши, перемещение мыши – в соответствующее сообщение. Приложение Windows построено на основе цикла обработки сообщений. Основополагающий компонент операционной системы – окна. Каждое приложение имеет хотя бы одно окно.

2. Общая схема взаимодействия приложения и ядра Windows. (трпс)

Система Windows является ОС передачи сообщений. В основе лежит механизм, транслирующий практически каждое событие – нажатие клавиши, перемещение мыши, истечение времени таймера – в соответствующее сообщение. Типичное приложение построено на основе цикла обработки сообщений, который принимает эти сообщения и отправляет их к соответствующим функциям – обработчикам сообщений. Хотя сообщения передаются приложениям, они адресованы не им, а другим основополагающим компонентам ОС – окнам.

Существует много разновидностей сообщений, представляющих Windows события на разных уровнях. Каждое простое событие, каждое простое действие посылается в виде сообщения окну для обработки.

Все сообщения состоят из нескольких частей и представляются структурой MSG:

typedef struct tagMSG {

HWND hwnd; // окно, которому предназначено сообщение

UINT message; //сообщение

WPARAM wParam; // информация, относящаяся к сообщению

LPARAM lParam; // дополнительная информация для сообщения

DWORD time; // время отправления сообщения

POINT pt; //координаты мыши

} MSG;

Элемент структуры hwnd однозначно идентифицирует окно, которому посылается это сообщение.

Элемент message идентифицирует само сообщение. Этот элемент принимает любое значение из допустимого диапазона, который описывает сообщения. Для Windows сообщений обычно используются символьные представления, такие как WM_PAINT, WM_TIMER, а не конкретные числовые значения.

Ключевая точка каждого приложения – цикл обработки сообщений.

Функция GetMessage() постоянно просматривает очередь сообщений и, если она пуста, не делает возврата, а передает управление Windows. Приложение находится в состоянии простоя. Но как только в очереди сообщений появляется сообщение, GetMessage() заполняет соответствующие поля структуры MSG, удаляет сообщение из очереди и возвращает ненулевое значение. В этом случае говорят – GetMessage() выбирает сообщение из очереди. После этого, управление передается функции DispatchMessage(&msg), которая пересылает указатель на заполненную ранее структуру MSG обратно ядру Windows. ОС блокирует DispatchMessage() и вызывает оконную функцию с параметрами, соответствующими полям структуры MSG. Функция окна выполняет действия, которые были указаны (или не указаны) для обработки данного сообщения. После этого функция окна возвращает управление Windows, которая делает возврат из DispatchMessage(). Цикл снова повторяется.