LONG InterlockedExchangeAdd(

PLONG plAddend, // указатель напеременнуютипа LONG,

// к которой нужен атомарный доступ

LONG lIncrement // добавляемое значение

130. Interlocked-функции. Функция заменяет содержимое переменной новым значением?

LONG InterlockedExchange(

PLONG plTarget, // указательнапеременнуютипа LONG,

// к которой нужен атомарный доступ

LONG lValue // новое значение

);

LONG InterlockedExchangePointer(

PVOID* ppvTarget, // указатель на указатель на переменную типа

LONG,

// к которой нужен атомарный доступ

PVOID pvValue // новое значение

);

131. Interlocked-функции. Функция выполняет операции атомарного сравнения и замены значения переменной?

LONG InterlockedCompareExchange(

PLONG plDestination, // указательнапеременную

LONG lExchange, // новое значение

LONG lComparand // значение для сравнения

);

LONG InterlockedCompareExchangePointer(

PVOID* plDestination, // указатель на указатель на переменную

PVOID lExchange, // указатель на новое значение

PVOID lComparand // указатель на значение для сравнения

);

132. Критическая секция должна быть инициализирована при помощи функции?

InitializeCriticalSection

133. Для входа в критическую секцию потоки используют функцию?

EnterCriticalSection

134. По завершении работы с разделяемыми данными поток выходит изкритической секции при помощи функции?

LeaveCriticalSection

135. После использования критической секции она должна быть уничтожена вызовом функции?

DeleteCriticalSection

136. Функция … предпринимает попытку войти вкритическую секцию без блокировки?

TryEnterCriticalSection

137. К синхронизирующим объектам ядра относятся: 1)процесс 2)поток 3)задание 4)файл 5)консольный ввод 6)уведомление об изменении файла 7)событие 8)ожидаемый таймер 9)семафор и мьютекс?

????????????????????????

138. Синхронизирующий объект ядра может находиться в одном из двухсостояний?

- свободное (signaledstate);

- занятое (non-signaledstate).

139. ФункцияWaitForMultipleObjects. Параметр DWORD nCount?

DWORDnCount, // количество синхр-х объектов

Максимальное количество синхронизирующих объектов определено

Константой MAX_WAIT_OBJECTS, равной 64.

140. ФункцияWaitForMultipleObjects. Параметр CONST HANDLE *lpHandles?

Массив описателей объектов

141. ФункцияWaitForMultipleObjects. Параметр BOOL bWaitAll?

Вариант ожидани явсех объектов

Если параметр bWaitAll равен значению TRUE, функция ожидает

Перехода в свободное состояние всех синхронизирующих объектов.

142. Функция WaitForMultipleObjects. Параметр DWORD dwMilliseconds?

Максимальное время ожидания

143. ФункцияCreateEvent. Параметр LPSECURITY_ATTRIBUTES lpEventAttributes?

Атрибуты безопасности

144. ФункцияCreateEvent. Параметр BOOL bManualReset?

Тип события

145. ФункцияCreateEvent. Параметр BOOL bInitialState?

Начальноесостояние

146. Событие создается функцией?

CreateEvent

147. Если создано поименованное событие, далее можно получить его описатель при помощи функции?

OpenEvent.

148. Функция … устанавливает в свободное состояние?

SetEvent

149. Функция … устанавливает занятое состояние события?

ResetEvent

150. Функция OpenEvent. Параметр DWORD dwDesiredAccess?

Требуемый доступ

151. Функция OpenEvent. Параметр BOOL bInheritHandle?

Возможность наследования описателя

152. Ожидаемый таймер создается функцией?

CreateWaitableTimer

153. Для получения описателя существующего ожидаемого таймераможно использовать функцию?

OpenWaitableTimer

154. Для установки времени переходаожидаемого таймера в свободное состояние используется функция?

SetWaitableTimer.

155. Функция … устанавливает занятое состояние ожидаемого таймера?

??

HANDLE CancelWaitableTimer (HANDLE Timer);

156. ФункцияSetWaitableTimer.Параметр HANDLE hTimer?

Описатель

ФункцияSetWaitableTimer.Параметрconst LARGE_INTEGER *pDueTime?