игра брюс 2048
Главная / Программирование / Многопоточное программирование с использованием POSIX Threads / Тест 6

Многопоточное программирование с использованием POSIX Threads - тест 6

Упражнение 1:
Номер 1
На сколько категорий делятся сигналы в Unix?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 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)

 (2)

 (3)


Номер 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)

 (2)

 (3)




Главная / Программирование / Многопоточное программирование с использованием POSIX Threads / Тест 6