Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpora_1-10_bez_vosmogo1 (1).docx
Скачиваний:
3
Добавлен:
16.04.2019
Размер:
133.72 Кб
Скачать

50. Синхронізація потоків. Події.

События используется в том случае, если надо «вручную» управлять состоянием, которое, может быть свободным и занятым, и выполнять заданные действия в зависимости от этого состояния.

Рассмотрим функции для создания и использования события.

1. Создание события. Функция CreateEvent.

HANDLE CreateEvent (

LPSECURITY_ATTRIBUTES IpEventAttributes, // атрибут безопасности

BOOL bManualReset, // признак управления вручную

BOOL blnitialState, //начальное состояние события

LPCTSTR IpName //имя события).

Функция возвращает дескриптор объекта. В случае ошибки возвращает 0.

2. Установка свободного текущего состояния.

BOOL SetEvent( HANDLE hEvent // дескриптор события),

3. Установка занятого текущего состояния.

BOOL ResetEvent( HANDLE hEvent // дескриптор события);

51. Синхронізація потоків. М’ютекси.

Мьютекс используется для :

- организации критической секции для процессов;

- проверки повторного запуска запущенного процесса.

Создание(открытие) мьютекса. Функция CreateMutex.

HANDLE CreateMutex(

LPSECURITY_ATTRIBUTES IpMutexAttributes, //атрибут безопасности

BOOL bInitialOwner //определяет режим использования мьютекса

LPCTSTR IpName //имя мьютекса);

Функция ReleaseMutex – уничтожает мьютех

BOOL ReleaseMutex ( HANDLE hMute );

52 Синхронізація потоків. Семафори.

Семафоры - обычно используются для управления множеством ресурсов когда количество ресурсов более одного.

Создание семафора. Функция CreateSemaphore

HANDLE CreateSemaphore(

LPSECURITY_ATTRIBUTES IpSemaphAttributes, // атрибут безопасности

LONG llnitialCount, // начальное содержимое счетчика

LONG IMaximumCount, // максимальное содержимое счетчика

LPCTSTR IpName //имя объекта);

Если текущее значение llnitialCount = 0, то нет ни одного

доступного ресурса, и все потоки, которые ждут ресурс (функции

WaitFor), будут заблокированы.

Если текущее значение llnitialCount > 0, то функция WaitFor

уменьшает число доступных ресурсов на 1 и получает доступ

к ресурсу.

53. Понятие параллельного исполнения.

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

Параметры многозадачной системы.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]