русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Механизм сообщений Windows


Дата добавления: 2013-12-23; просмотров: 1958; Нарушение авторских прав


Эффективность многозадачной системы

Условие освобождении объектов синхронизации

Тип объекта Условие
1)Thread Поток завершен.
2)Process Переходит в состояние после завершении последнего потока процесса
3)File Объекта файла после завышение операции вода- вывода
4)Event Когда поток выполнил функцию SetEvent
5)Semaphone Счеттчик ресурсов содержит значение больше 0
6)Mutex Когда поток его выполнил функцию ReleaseMutex
7)WaitableTimer После SetWaitableЕimer

 

 

- количество программ выполняемых в единицу времени(пропускная способность ВЧ).

- время отклика каждой запущенно программы (реактивность ).

- способность обеспечить удобство работы пользователя в динамичной меняющей обстановки (динамичность).

 

Указанные параметры взаимно исключаемые, по этому ОС разделены на 3 типа, каждый из них обеспечивает наилучше значения одного из названых параметров. С точки зрения одной программы наибольшее пропускной способность имеют ОС с пакетной обработки. Не тратиться временя на сохраннее и восстановления текущего состояния, что имеет место при ее вытеснении другой задачи, в тоже время если процесс не участвует в каких-то операции то оно простаивает.

Многозадачность приводить к значительной уплотнению управлению программ и обеспечивает большую пропускную способность , чем выполнению программ по очереди в пакетном режиме. Таким образом с точки зрении являются ОС с не вытесняющей многозадачностью

Реактивность обеспечивает время отклика(время выполнения программы). Система гарантирует что программа выполниться за определённый отрезок времени.

Динамичность определяет удобство работы пользователя в котором часто хочется одновременно работать с несколькими программами интерактивными, причем заранье не известно с какими именно и когда. В таких системах распределения ресурсов компьютера должны вести себя приемлемо в случае заранее не известных количеством программ и запрещенным им качеством ресурсов. Такие системы называются системами разделения времени, ОС Win, Linux .



 

В основ Работы ОС Windows и работающи в нем лежит обработка сообщений. Система и приложения выработают такие сообщения на в качестве ответа на каждое события. В wndows каждый поток имеет собственную очередь сообщений, что позволяет потокам работать не зависимо . сообщения имеют структуру данных

typedef struct tagMSG {

HWND hwnd;// дескриптор окна

UNIT message; /// индитфиикатор сообщений

WPARAM wParam; // в каждой сообщений свое значения

LPARAM lParam;//

GWORD time;//количетсво м.сек с момента запуска окна

POINT pt; // положения курсор мыши в экранных координатах

}

MSG;

Основой механизмом сообщения является поток сообщений. Сообщения предназначенные конкретному потоку ставиться в очередь конкретному потоку. Отдельные сообщения могут назначаться несколькими потокам или относиться системе. Для вывода сообщений используется функция MessageBox выводить на эран окно с сообщением и кнопко лии кнопаками выхода

Int MessageBox (

HWND hwnd;//дескриптор окна

LPCTSTR lpText,//сообствено текс содержания сообщений

LPCTSTR lpCaption;// заголовок окна

UNIT uType//тип окна(можно указать использований кнопок)

)

Типы параметром: первый-32 битовой целый, второй 32 битный указатель на строку, 4-ый 32-битное целое. Для работы с окнами в программе выделяют 4 секции : регистрация класса окон, создания главного окна, цикл обработки очереди сообщений, процедура главного окна.

Регистрация классов окон выполняется выполняеться с помощью функции RegisterClassA(WNDCLASS) который содержит один параметр, указатель на структуру в ней содержиться информация о окне. На основе зарегистрированного класса с помощью CreateWindows можно создать экземпляр окна и все его особенность его описать

 

 

Цикл обработки очереди сообщений

while(GetMessage(&msg,NULL,0,0))

{

//разрешить использования клавиатуры путем трансляции сообщений о виртуальный клавиш сообщения о цифровых клавиш

TranslateMessage(&msg) ;

//вернуть управления windows и передать сообщения далее процедуре окна

DispatchMessage(&msg) ;

}

 

GetMessage – выбирает очередное сообщения из цепочек сообщений и помещает в структуру msg.

TranslateMessage –действия касается сообщений WM_KEYDOWN, WM_KEYUP, которые транслируются в WC_CHAR WM_DEADCHAR, WM_SYSKEYDOWN и WM_SYSKEYUP –которые преобразуются в WM_SYSCHAR, WM_SYSDEADCHAR. Смысл преобразования заключаеться в посылке дополнительной сообщений. Выход из цикла ожидания имеет место только в том случае если GetMessage возвращает ноль.

Процедура выполниться необходимые функции для вывода информации в окно , восприятия указаний проявляющий в окне, в том числе в виде выбора пункта меню или указания на очередным шаге диалога и анализ вводим указанных ус клавиатуры , выполнения необходимы действий и вида состояния … Для реализации таких действи надо знать такие функции : прототип функции окна

LRESULT CALLBACK WindowsFunc(

HWND hwnd,//идификатор окна

UINT message,//идификарот сообщений

// уточнают смыл сообщения

WPARAM wParam,

LPARAM lParam,

)



<== предыдущая лекция | следующая лекция ==>
Создание выполнение и завершение процессов | Организация адресного пространства


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.