Главная / Программирование /
Многопоточное программирование с использованием POSIX Threads / Тест 6
Многопоточное программирование с использованием POSIX Threads - тест 6
Упражнение 1:
Номер 1
На сколько категорий делятся сигналы в Unix?
Ответ:
 (1) 2 
 (2) 3 
 (3) 4 
 (4) 5 
Номер 2
На какие категории делятся сигналы в Unix?
Ответ:
 (1) асинхронные 
 (2) синхронные 
 (3) симметричные 
 (4) несимметричные 
Номер 3
Синхронные сигналы возникают при ...
Ответ:
 (1) событиях, внешних по отношению к процессу или при исполнении программой определенных операций 
 (2) исполнении программой определенных операций 
 (3) событиях, внешних по отношению к процессу 
Упражнение 2:
Номер 1
Асинхронные сигналы возникают при ...
Ответ:
 (1) событиях, внешних по отношению к процессу или при исполнении программой определенных операций 
 (2) исполнении программой определенных операций 
 (3) событиях, внешних по отношению к процессу 
Номер 2
Укажите примеры синхронных сигналов:
Ответ:
 (1) SIGFPE
 
 (2) SIGINT
 
 (3) SIGSEGV
 
 (4) SIGALARM
 
 (5) SIGBUS
 
 (6) SIGTERM
 
Номер 3
Укажите примеры асинхронных сигналов:
Ответ:
 (1) SIGFPE
 
 (2) SIGINT
 
 (3) SIGSEGV
 
 (4) SIGALARM
 
 (5) SIGBUS
 
 (6) SIGTERM
 
Упражнение 3:
Номер 1
Операции над маской сигналов нити осуществляются библиотечной функцией:
Ответ:
 (1) readdir(3C)
 
 (2) pthread_sigmask(3C)
 
 (3) readdir_r(3C)
 
Номер 2
Какая функция получает указатель на буфер, в котором следует разместить описание записи каталога?
Ответ:
 (1) readdir(3C)
 
 (2) pthread_sigmask(3C)
 
 (3) readdir_r(3C)
 
Номер 3
Укажите функцию, которая возвращает очередную запись каталога файловой системы и не предназначена для многопоточных программ:
Ответ:
 (1) readdir(3C)
 
 (2) pthread_sigmask(3C)
 
 (3) readdir_r(3C)
 
Упражнение 4:
Номер 1
Укажите значение атрибута функции MT-Level
, при котором функция использует незащищенные глобальные или статические данные:
Ответ:
 (1) unsafe
 
 (2) safe
 
 (3) mt-safe
 
 (4) asynch-signal-safe
 
 (5) fork-safe
 
 (6) deferred-cancel-safe
 
Номер 2
Укажите значение атрибута функции MT-Level
, при котором функция может вызываться из нескольких потоков:
Ответ:
 (1) unsafe
 
 (2) safe
 
 (3) mt-safe
 
 (4) asynch-signal-safe
 
 (5) fork-safe
 
 (6) deferred-cancel-safe
 
Номер 3
Укажите значение атрибута функции MT-Level
, при котором функция полностью подготовлена для работы в многопоточной среде:
Ответ:
 (1) unsafe
 
 (2) safe
 
 (3) mt-safe
 
 (4) asynch-signal-safe
 
 (5) fork-safe
 
 (6) deferred-cancel-safe
 
Упражнение 5:
Номер 1
Укажите значение атрибута функции MT-Level
, при котором функция может вызываться в многопоточной программе из обработчиков сигналов:
Ответ:
 (1) unsafe
 
 (2) safe
 
 (3) mt-safe
 
 (4) asynch-signal-safe
 
 (5) fork-safe
 
 (6) deferred-cancel-safe
 
Номер 2
Укажите значение атрибута функции MT-Level
, при котором функция безопасна, даже если во время работы этой функции другая нить процесса вызовет fork(2)
:
Ответ:
 (1) unsafe
 
 (2) safe
 
 (3) mt-safe
 
 (4) asynch-signal-safe
 
 (5) fork-safe
 
 (6) deferred-cancel-safe
 
Номер 3
Укажите значение атрибута функции MT-Level
, при котором функция безопасна для использования в нитях, работающих в режиме отложенного прерывания:
Ответ:
 (1) unsafe
 
 (2) safe
 
 (3) mt-safe
 
 (4) asynch-signal-safe
 
 (5) fork-safe
 
 (6) deferred-cancel-safe
 
Упражнение 6:
Номер 1
При каком значении атрибута мутекса robust_np
, мутексы, удерживавшиеся завершившимся процессом, остаются в занятом состоянии, и нити, пытающиеся захватить их, блокируются?
Ответ:
 (1) PTHREAD_MUTEX_STALLED_NP
 
 (2) PTHREAD_MUTEX_ROBUST_NP
 
 (3) PTHREAD_MUTEX_DEFAULT
 
Номер 2
При каком значении атрибута мутекса robust_np
, первая нить, пытающаяся захватить мутекс, получает ошибку EOWNERDEAD
, но мутекс при этом захватывается?
Ответ:
 (1) PTHREAD_MUTEX_STALLED_NP
 
 (2) PTHREAD_MUTEX_ROBUST_NP
 
 (3) PTHREAD_MUTEX_DEFAULT
 
Номер 3
Операция Pthread_mutex_timedlock(3C)
...
Ответ:
 (1) инициализирует мутекс 
 (2) пытается захватить мутекс и если он занят, операция возвращает ошибку EAGAIN
 
 (3) пытается захватить мутекс и блокируется, если это невозможно, но не дольше чем до указанного момента 
Упражнение 7:
Номер 1
Сколько основных операций определено над мутексом?
Ответ:
 (1) 4 
 (2) 3 
 (3) 5 
Номер 2
Укажите основные операции, которые определены над мутексом:
Ответ:
 (1) pthread_mutex_lock(3C)
 
 (2) pthread_mutex_unlock(3C)
 
 (3) pthread_mutex_setlock(3C)
 
 (4) pthread_mutex_trylock(3C)
 
 (5) pthread_mutex_timedlock(3C)
 
Номер 3
В каких состояниях может находится мутекс?
Ответ:
 (1) в свободном состоянии 
 (2) в захваченном состоянии 
 (3) в переходном состоянии 
Упражнение 8:
Номер 1
Какой атрибут мутекса определяет область действия мутекса?
Ответ:
 (1) pshared
 
 (2) type
 
 (3) protocol
 
 (4) prioceiling
 
 (5) robust_np
 
Номер 2
Какой атрибут мутекса обозначает способ проверки ошибок при работе с мутексом?
Ответ:
 (1) pshared
 
 (2) type
 
 (3) protocol
 
 (4) prioceiling
 
 (5) robust_np
 
Номер 3
Какой атрибут мутекса описывает схему предотвращения инверсии приоритета, используемую этим мутексом?
Ответ:
 (1) pshared
 
 (2) type
 
 (3) protocol
 
 (4) prioceiling
 
 (5) robust_np
 
Упражнение 9:
Номер 1
При каком значении атрибута мутекса type
, мутексы не делают никаких проверок?
Ответ:
 (1) PTHREAD_MUTEX_NORMAL
 
 (2) PTHREAD_MUTEX_ERRORCHECK
 
 (3) PTHREAD_MUTEX_RECURSIVE
 
Номер 2
При каком значении атрибута мутекса type
, все операции над мутексами проверяют состояние мутекса и возвращают ошибки при недопустимых последовательностях операций над мутексом?
Ответ:
 (1) PTHREAD_MUTEX_NORMAL
 
 (2) PTHREAD_MUTEX_ERRORCHECK
 
 (3) PTHREAD_MUTEX_RECURSIVE
 
Номер 3
При каком значении атрибута мутекса type
, мутексы допускают многократный захват одной и той же нитью?
Ответ:
 (1) PTHREAD_MUTEX_NORMAL
 
 (2) PTHREAD_MUTEX_ERRORCHECK
 
 (3) PTHREAD_MUTEX_RECURSIVE
 
Упражнение 10:
Номер 1
Блокировка свободного мутекса приводит к его переводу в ...
Ответ:
 (1) свободное состояние 
 (2) захваченное состояние 
 (3) переходное состояние 
Номер 2
Попытка блокировки захваченного мутекса приводит к ...
Ответ:
 (1) снятию блокировки мутекса 
 (2) блокировке мутекса 
 (3) блокировке нити, которая пыталась выполнить эту операцию 
Номер 3
Захват и освобождение мутекса должны производиться ...
Ответ:
 (1) только разными нитями 
 (2) одной или несколькими нитями 
 (3) только двумя нитями 
 (4) только одной нитью 
Упражнение 11:
Номер 1
Укажите значения, которые может принимать атрибут мутекса robust_np
:
Ответ:
 (1) PTHREAD_MUTEX_STALLED_NP
 
 (2) PTHREAD_MUTEX_ROBUST_NP
 
 (3) PTHREAD_MUTEX_DEFAULT
 
Номер 2
По умолчанию значение атрибута мутекса robust_np
равно:
Ответ:
 (1) PTHREAD_MUTEX_STALLED_NP
 
 (2) PTHREAD_MUTEX_ROBUST_NP
 
 (3) PTHREAD_MUTEX_DEFAULT
 
Номер 3
Операция Pthread_mutex_trylock(3C)
...
Ответ:
 (1) инициализирует мутекс 
 (2) пытается захватить мутекс и если он занят, операция возвращает ошибку EAGAIN
 
 (3) пытается захватить мутекс и блокируется, если это невозможно, но не дольше чем до указанного момента 
Упражнение 12:
Номер 1
Какой атрибут мутекса используется мутексами с протоколом PTHREAD_PRIO_PROTECT
?
Ответ:
 (1) pshared
 
 (2) type
 
 (3) protocol
 
 (4) prioceiling
 
 (5) robust_np
 
Номер 2
Какой атрибут мутекса управляет поведением мутекса в ситуации, когда владелец этого мутекса аварийно завершился?
Ответ:
 (1) pshared
 
 (2) type
 
 (3) protocol
 
 (4) prioceiling
 
 (5) robust_np
 
Номер 3
Сколько значений может принимать атрибут мутекса robust_np
?
Ответ:
 (1) 3 
 (2) 2 
 (3) 4