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

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

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

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

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

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

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

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

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

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

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

В основ Работы ОС 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,

)

Наши рекомендации