Главная / Программирование /
Многопоточное программирование с использованием POSIX Threads / Тест 8
Многопоточное программирование с использованием POSIX Threads - тест 8
Упражнение 1:
Номер 1
Над условной переменной определены основные операции:
Ответ:
 (1) wait 
 (2) error 
 (3) signal 
Номер 2
До какого момента блокируется нить, выполнившая операцию wait?
Ответ:
 (1) пока другая нить не выполнит операцию wait 
 (2) пока другая нить не выполнит операцию signal 
 (3) пока эта же нить не выполнит операцию wait 
Номер 3
Над семафором определены основные операции:
Ответ:
 (1) signal 
 (2) wait 
 (3) post 
Упражнение 2:
Номер 1
Какая операция, определенная над условной переменной, уничтожает атрибуты условной переменной?
Ответ:
 (1) pthread_condattr_destroy(3C) 
 (2) pthread_condattr_getpshared(3C) 
 (3) pthread_condattr_init(3C) 
 (4) pthread_condattr_setpshared(3C) 
 (5) pthread_cond_broadcast(3C) 
 (6) pthread_cond_destroy(3C) 
Номер 2
Какая операция, определенная над условной переменной, получает значения атрибута pshared?
Ответ:
 (1) pthread_condattr_destroy(3C) 
 (2) pthread_condattr_getpshared(3C) 
 (3) pthread_condattr_init(3C) 
 (4) pthread_condattr_setpshared(3C) 
 (5) pthread_cond_broadcast(3C) 
 (6) pthread_cond_destroy(3C) 
Номер 3
Какая операция, определенная над условной переменной, инициализирует атрибуты условной переменной?
Ответ:
 (1) pthread_condattr_destroy(3C) 
 (2) pthread_condattr_getpshared(3C) 
 (3) pthread_condattr_init(3C) 
 (4) pthread_condattr_setpshared(3C) 
 (5) pthread_cond_broadcast(3C) 
 (6) pthread_cond_destroy(3C) 
Упражнение 3:
Номер 1
Какой функцией инициализируются неименованные семафоры?
Ответ:
 (1) sem_open(3RT) 
 (2) sem_init(3RT) 
 (3) sem_post(3RT) 
Номер 2
Какой функцией создаются именованные семафоры?
Ответ:
 (1) sem_open(3RT) 
 (2) sem_init(3RT) 
 (3) sem_post(3RT) 
Номер 3
Укажите существующие типы семафоров:
Ответ:
 (1) анонимные 
 (2) именованные 
 (3) неименованные 
Упражнение 4:
Номер 1
Укажите параметр системного вызова select(3C), который является числом, на единицу большим, чем максимальный номер файлового дескриптора во всех множествах, переданных как параметры:
Ответ:
 (1) int nfds 
 (2) fd_set *readfds 
 (3) fd_set *writefds 
 (4) fd_set *errorfds 
 (5) struct timeval * timeout 
Номер 2
Укажите параметр системного вызова select(3C), являющийся множеством дескрипторов, которые следует проверять на готовность к чтению:
Ответ:
 (1) int nfds 
 (2) fd_set *readfds 
 (3) fd_set *writefds 
 (4) fd_set *errorfds 
 (5) struct timeval * timeout 
Номер 3
Укажите параметр системного вызова select(3C), являющийся множеством дескрипторов, которые следует проверять на готовность к записи:
Ответ:
 (1) int nfds 
 (2) fd_set *readfds 
 (3) fd_set *writefds 
 (4) fd_set *errorfds 
 (5) struct timeval * timeout 
Упражнение 5:
Номер 1
Какой параметр функции sem_init(3RT) является инициализируемым семафором?
Ответ:
 (1) sem_t * sem 
 (2) int pshared 
 (3) unsigned int value 
Номер 2
Чему равно значение параметра int pshared функции sem_init(3RT), если семафор будет локальным в пределах процесса?
Ответ:
 (1) false 
 (2) 0 
 (3) ненулевое значение 
Номер 3
Какой параметр функции sem_init(3RT) является начальным значением флаговой переменной семафора?
Ответ:
 (1) sem_t * sem 
 (2) int pshared 
 (3) unsignedintvalue 
Упражнение 6:
Номер 1
Какая операция, определенная над условной переменной, устанавливает значение атрибута pshared?
Ответ:
 (1) pthread_condattr_destroy(3C) 
 (2) pthread_condattr_getpshared(3C) 
 (3) pthread_condattr_init(3C) 
 (4) pthread_condattr_setpshared(3C) 
 (5) pthread_cond_broadcast(3C) 
 (6) pthread_cond_destroy(3C) 
Номер 2
Какая операция, определенная над условной переменной, является широковещательным вариантом операции signal?
Ответ:
 (1) pthread_condattr_destroy(3C) 
 (2) pthread_condattr_getpshared(3C) 
 (3) pthread_condattr_init(3C) 
 (4) pthread_condattr_setpshared(3C) 
 (5) pthread_cond_broadcast(3C) 
 (6) pthread_cond_destroy(3C) 
Номер 3
Какая операция, определенная над условной переменной, уничтожает условную переменную?
Ответ:
 (1) pthread_condattr_destroy(3C) 
 (2) pthread_condattr_getpshared(3C) 
 (3) pthread_condattr_init(3C) 
 (4) pthread_condattr_setpshared(3C) 
 (5) pthread_cond_broadcast(3C) 
 (6) pthread_cond_destroy(3C) 
Упражнение 7:
Номер 1
Бит POLLERR в поле revents устанавливается, если:
Ответ:
 (1) на устройстве возникла ошибка 
 (2) сокет, труба или терминальное устройство закрыты на другом конце 
 (3) значение fd не соответствует валидному файловому дескриптору 
Номер 2
Бит POLLHUP в поле revents устанавливается, если:
Ответ:
 (1) на устройстве возникла ошибка 
 (2) сокет, труба или терминальное устройство закрыты на другом конце 
 (3) значение fd не соответствует валидному файловому дескриптору 
Номер 3
Бит POLLNVAL в поле revents устанавливается, если:
Ответ:
 (1) на устройстве возникла ошибка 
 (2) сокет, труба или терминальное устройство закрыты на другом конце 
 (3) значение fd не соответствует валидному файловому дескриптору 
Упражнение 8:
Номер 1
Укажите операцию, определенную над условной переменной, которая инициализирует условную переменную:
Ответ:
 (1) pthread_cond_init(3C) 
 (2) pthread_cond_timedwait_np(3C) 
 (3) pthread_cond_signal(3C) 
 (4) pthread_cond_wait(3C) 
Номер 2
Укажите операцию, определенную над условной переменной, которая выполняет ожидание с тайм-аутом:
Ответ:
 (1) pthread_cond_init(3C) 
 (2) pthread_cond_timedwait_np(3C) 
 (3) pthread_cond_signal(3C) 
 (4) pthread_cond_wait(3C) 
Номер 3
Укажите операцию, определенную над условной переменной, которая выполняет операцию signal:
Ответ:
 (1) pthread_cond_init(3C) 
 (2) pthread_cond_timedwait_np(3C) 
 (3) pthread_cond_signal(3C) 
 (4) pthread_cond_wait(3C) 
Упражнение 9:
Номер 1
Укажите параметр системного вызова select(3C), являющийся множеством дескрипторов, которые следует проверять на наличие исключительных состояний:
Ответ:
 (1) int nfds 
 (2) fd_set *readfds 
 (3) fd_set *writefds 
 (4) fd_set *errorfds 
 (5) struct timeval * timeout 
Номер 2
Укажите параметр системного вызова select(3C), устанавливающий тайм-аут, временной интервал, задаваемый с точностью до микросекунд:
Ответ:
 (1) int nfds 
 (2) fd_set *readfds 
 (3) fd_set *writefds 
 (4) fd_set *errorfds 
 (5) struct timeval * timeout 
Номер 3
Сколько параметров имеет системный вызов select(3C)?
Ответ:
 (1) 4 
 (2) 5 
 (3) 3 
Упражнение 10:
Номер 1
При каком значении своего параметра int timeout, системный вызов poll(2) работает в режиме опроса?
Ответ:
 (1) 0 
 (2) 1 
 (3) -1 
Номер 2
При каком значении своего параметра int timeout, системный вызов poll(2) ждет готовности дескрипторов неограниченное время?
Ответ:
 (1) 0 
 (2) 1 
 (3) -1 
Номер 3
Если poll(2) возвращает управление по тайм-ауту, код возврата будет равен:
Ответ:
 (1) 0 
 (2) 1 
 (3) -1 
Упражнение 11:
Номер 1
Параметр системного вызова poll(2), являющийся массивом описателей дескрипторов:
Ответ:
 (1) struct pollfd fds[] 
 (2) nfds_t nfds 
 (3) int timeout 
Номер 2
Параметр системного вызова poll(2), являющийся количеством описателей в массиве fds:
Ответ:
 (1) struct pollfd fds[] 
 (2) nfds_t nfds 
 (3) int timeout 
Номер 3
Параметр системного вызова poll(2), определяющий тайм-аут в миллисекундах:
Ответ:
 (1) struct pollfd fds[] 
 (2) nfds_t nfds 
 (3) int timeout 
Упражнение 12:
Номер 1
Укажите операцию, определенную над условной переменной, которая выполняет ожидание условной переменной:
Ответ:
 (1) pthread_cond_init(3C) 
 (2) pthread_cond_timedwait_np(3C) 
 (3) pthread_cond_signal(3C) 
 (4) pthread_cond_wait(3C) 
Номер 2
Чему равно значение параметра int pshared функции sem_init(3RT), если семафор будет разделяемым между процессами?
Ответ:
 (1) false 
 (2) 0 
 (3) ненулевое значение 
Номер 3
При ошибке poll(2) возвращает:
Ответ:
 (1) 0 
 (2) 1 
 (3) -1