Главная / Программирование /
Многопоточное программирование с использованием POSIX Threads / Тест 4
Многопоточное программирование с использованием POSIX Threads - тест 4
Упражнение 1:
Номер 1
Какой параметр функции pthread_create(3C)
является выходным?
Ответ:
 (1) const pthread_attr_t * attr
 
 (2) pthread_t * thread
 
 (3) void *(*start_routine)(void*)
 
 (4) void *arg
 
Номер 2
Укажите параметры функции pthread_create(3C)
, которые являются входными?
Ответ:
 (1) const pthread_attr_t * attr
 
 (2) pthread_t * thread
 
 (3) void *(*start_routine)(void*)
 
 (4) void *arg
 
Номер 3
Какой из параметров функции pthread_create(3C)
является значением, которое будет передано в качестве параметра start_routine
?
Ответ:
 (1) const pthread_attr_t * attr
 
 (2) pthread_t * thread
 
 (3) void *(*start_routine)(void*)
 
 (4) void *arg
 
Упражнение 2:
Номер 1
Какой из параметров функции pthread_create(3C)
является указателем на переменную, в которой при успешном завершении будет размещен идентификатор нити?
Ответ:
 (1) const pthread_attr_t * attr
 
 (2) pthread_t * thread
 
 (3) void *(*start_routine)(void*)
 
Номер 2
Какой из параметров функции pthread_create(3C)
является указателем на структуру, в которой заданы атрибуты нити?
Ответ:
 (1) const pthread_attr_t * attr
 
 (2) pthread_t * thread
 
 (3) void *(*start_routine)(void*)
 
Номер 3
Какой из параметров функции pthread_create(3C)
является указателем на функцию, которая будет запущена во вновь созданной нити?
Ответ:
 (1) const pthread_attr_t * attr
 
 (2) pthread_t * thread
 
 (3) void *(*start_routine)(void*)
 
Упражнение 3:
Номер 1
Укажите возвращаемое значение функции pthread_create(3C)
при успешном завершении:
Ответ:
 (1) TRUE
 
 (2) 0
 
 (3) код ошибки 
Номер 2
Укажите возвращаемое значение функции pthread_create(3C)
при неудачном завершении:
Ответ:
 (1) true
 
 (2) 0
 
 (3) код ошибки 
Номер 3
Укажите функцию POSIX, которая указывает, что все ресурсы, связанные с нитью, необходимо уничтожать сразу после завершения этой нити:
Ответ:
 (1) pthread_once(3C)
 
 (2) pthread_detach(3C)
 
 (3) pthread_join(3C)
 
Упражнение 4:
Номер 1
Какой код ошибки возвращает функция pthread_create(3C)
, если системе не хватает ресурсов для создания нити?
Ответ:
 (1) eagain
 
 (2) einval
 
 (3) eperm
 
Номер 2
Какой код ошибки возвращает функция pthread_create(3C)
, если один из параметров имеет недопустимое значение?
Ответ:
 (1) eagain
 
 (2) einval
 
 (3) eperm
 
Номер 3
Какой код ошибки возвращает функция pthread_create(3C)
, если процесс не имеет полномочий для исполнения нити с заданными атрибутами?
Ответ:
 (1) eagain
 
 (2) einval
 
 (3) eperm
 
Упражнение 5:
Номер 1
Функция POSIX, которая создает приватные или локальные данные нити:
Ответ:
 (1) pthread_key_create(3C)
 
 (2) pthread_once(3C)
 
 (3) pthread_create(3C)
 
 (4) pthread_exit(3C)
 
 (5) pthread_join(3C)
 
 (6) pthread_cancel(3C)
 
Номер 2
Функция POSIX, которая инициализирует динамические пакеты в многопоточной программе:
Ответ:
 (1) pthread_key_create(3C)
 
 (2) pthread_once(3C)
 
 (3) pthread_create(3C)
 
 (4) pthread_exit(3C)
 
 (5) pthread_join(3C)
 
 (6) pthread_cancel(3C)
 
Номер 3
Функция POSIX, которая создает нить:
Ответ:
 (1) pthread_key_create(3C)
 
 (2) pthread_once(3C)
 
 (3) pthread_create(3C)
 
 (4) pthread_exit(3C)
 
 (5) pthread_join(3C)
 
 (6) pthread_cancel(3C)
 
Упражнение 6:
Номер 1
Функция POSIX, которая используется для завершения нити:
Ответ:
 (1) pthread_key_create(3C)
 
 (2) pthread_once(3C)
 
 (3) pthread_create(3C)
 
 (4) pthread_exit(3C)
 
 (5) pthread_join(3C)
 
 (6) pthread_cancel(3C)
 
Номер 2
Функция POSIX, которая используется для ожидания завершения нити и получения ее кода возврата:
Ответ:
 (1) pthread_key_create(3C)
 
 (2) pthread_once(3C)
 
 (3) pthread_create(3C)
 
 (4) pthread_exit(3C)
 
 (5) pthread_join(3C)
 
 (6) pthread_cancel(3C)
 
Номер 3
Функция POSIX, которая используется для принудительного завершения нити:
Ответ:
 (1) pthread_key_create(3C)
 
 (2) pthread_once(3C)
 
 (3) pthread_create(3C)
 
 (4) pthread_exit(3C)
 
 (5) pthread_join(3C)
 
 (6) pthread_cancel(3C)
 
Упражнение 7:
Номер 1
Укажите значение по умолчанию атрибута scope
в структуре pthread_attr_t
:
Ответ:
 (1) PTHREAD_SCOPE_PROCESS
 
 (2) PTHREAD_CREATE_JOINABLE
 
 (3) NULL
 
 (4) 0
 
 (5) PTHREAD_EXPLICIT_SCHED
 
 (6) SCHED_OTHER
 
Номер 2
Укажите значение по умолчанию атрибута detachstate
в структуре pthread_attr_t
:
Ответ:
 (1) PTHREAD_SCOPE_PROCESS
 
 (2) PTHREAD_CREATE_JOINABLE
 
 (3) NULL
 
 (4) 0
 
 (5) PTHREAD_EXPLICIT_SCHED
 
 (6) SCHED_OTHER
 
Номер 3
Укажите значение по умолчанию атрибута stackaddr
в структуре pthread_attr_t
:
Ответ:
 (1) PTHREAD_SCOPE_PROCESS
 
 (2) PTHREAD_CREATE_JOINABLE
 
 (3) NULL
 
 (4) 0
 
 (5) PTHREAD_EXPLICIT_SCHED
 
 (6) SCHED_OTHER
 
Упражнение 8:
Номер 1
Какой атрибут структуры pthread_attr_t
определяет область действия?
Ответ:
 (1) scope
 
 (2) stacksize
 
 (3) stackaddr
 
 (4) concurrency
 
 (5) inheritsched
 
 (6) schedparam
 
Номер 2
Какой атрибут структуры pthread_attr_t
определяет размер стека?
Ответ:
 (1) scope
 
 (2) stacksize
 
 (3) stackaddr
 
 (4) concurrency
 
 (5) inheritsched
 
 (6) schedparam
 
Номер 3
Какой атрибут структуры pthread_attr_t
определяет адрес стека?
Ответ:
 (1) scope
 
 (2) stacksize
 
 (3) stackaddr
 
 (4) concurrency
 
 (5) inheritsched
 
 (6) schedparam
 
Упражнение 9:
Номер 1
Если требуемая нить еще не завершилась, то нить, сделавшая вызов pthread_join(3С)
, ...
Ответ:
 (1) блокируется 
 (2) не блокируется 
 (3) завершается 
Номер 2
Если нить пытается ожидать сама себя с помощью функции pthread_join(3С)
, она получает ошибку:
Ответ:
 (1) esrch
 
 (2)
edeadlk 
 (3) einval
 
Номер 3
Укажите значение по умолчанию атрибута schedpolicy
в структуре pthread_attr_t
:
Ответ:
 (1) PTHREAD_SCOPE_PROCESS
 
 (2) PTHREAD_CREATE_JOINABLE
 
 (3) NULL
 
 (4) 0
 
 (5) PTHREAD_EXPLICIT_SCHED
 
 (6) SCHED_OTHER
 
Упражнение 10:
Номер 1
Установка типа прерывания осуществляется функцией ...
Ответ:
 (1) pthread_cancel(3C)
 
 (2) pthread_setcancelstate(3C)
 
 (3) pthread_setcanceltype(3C)
 
Номер 2
Атрибут нити cancelstate
определяет, ...
Ответ:
 (1) многопоточность программы 
 (2) время прерывания нити 
 (3) разрешено ли прерывание нити 
Номер 3
Укажите возможные значения атрибута нити cancel type
:
Ответ:
 (1) PTHREAD_CANCEL_TRUE
 
 (2) PTHREAD_CANCEL_NULL
 
 (3) PTHREAD_CANCEL_DEFERRED
 
 (4) PTHREAD_CANCEL_ASYNCHRONOUS
 
Упражнение 11:
Номер 1
Какой атрибут структуры pthread_attr_t
определяет степень параллелизма?
Ответ:
 (1) scope
 
 (2) stacksize
 
 (3) stackaddr
 
 (4) concurrency
 
 (5) inheritsched
 
 (6) schedparam
 
Номер 2
Какой атрибут структуры pthread_attr_t
определяет наследование класса планирования?
Ответ:
 (1) scope
 
 (2) stacksize
 
 (3) stackaddr
 
 (4) concurrency
 
 (5) inheritsched
 
 (6) schedparam
 
Номер 3
Какой атрибут структуры pthread_attr_t
определяет параметры планирования?
Ответ:
 (1) scope
 
 (2) stacksize
 
 (3) stackaddr
 
 (4) concurrency
 
 (5) inheritsched
 
 (6) schedparam
 
Упражнение 12:
Номер 1
Укажите значение по умолчанию атрибута stacksize
в структуре pthread_attr_t
:
Ответ:
 (1) PTHREAD_SCOPE_PROCESS
 
 (2) PTHREAD_CREATE_JOINABLE
 
 (3) NULL
 
 (4) 0
 
 (5) PTHREAD_EXPLICIT_SCHED
 
 (6) SCHED_OTHER
 
Номер 2
Укажите значение по умолчанию атрибута priority
в структуре pthread_attr_t
:
Ответ:
 (1) PTHREAD_SCOPE_PROCESS
 
 (2) PTHREAD_CREATE_JOINABLE
 
 (3) NULL
 
 (4) 0
 
 (5) PTHREAD_EXPLICIT_SCHED
 
 (6) SCHED_OTHER
 
Номер 3
Укажите значение по умолчанию атрибута inheritsched
в структуре pthread_attr_t
:
Ответ:
 (1) PTHREAD_SCOPE_PROCESS
 
 (2) PTHREAD_CREATE_JOINABLE
 
 (3) NULL
 
 (4) 0
 
 (5) PTHREAD_EXPLICIT_SCHED
 
 (6) SCHED_OTHER