Quiz для проф. Pay attention, please.
От: avovana Россия  
Дата: 06.11.23 07:24
Оценка:
Добрый день, дорогие форумчане!
Подоспел быстрый квиз, взятый из собеседования на лида в крупную компанию.
Как бы вы ответили?

Для каждого вопроса лишь один(!) правильный ответ.
1. Процесс открывает файл, вызывает fork(). Файл в child доступен на чтение?
A. Да
B. Нет
C. Перед вызовом fork() необходимо закрывать все открытые файлы
D. Нет, файл автоматически будет закрыт системой в дочернем процессе
E. Зависит от реализации, поведение не определено

2. Участки памяти создаются при создании потока?
A. heap
B. stack
C. data segment
D. code segment

3. Можно ли заблокировать cигналы SIGHUP(1), SIGKILL(9), SIGTERM(15)?
A. да все
B. только SIGHUP
C. только SIGKILL
D. только SIGTERM
E. только SIGHUP и SIGKILL
F. только SIGHUP и SIGTERM
G. только SIGKILL и SIGTERTM

4. В программе не установлен обработчик на сигнал SIGUSR1. Что будет, если такой сигнал пришёл?
A. Будет проигнорирован
B. Будет вызван обработчик по умолчанию, созданный операционной системой
C. Программа завершит свою работу
D. Программа перейдёт в состояние "ожидание"

5. Процесс выделяет память и вызывает функцию fork(). child модифицирует память. Корректна ли такая операция и если да, то будут ли доступны изменения памяти дочернего процесса в родительском процессе?
A. Такая операция некорректна, дочерний процесс завершит своё выполнение
B. Такая операция некорректна, поведение системы не определено
C. Допустимая операция, данные из дочернего процесса будут доступны в родительском
D. Допустимая операция, данные из дочернего процесса не будут доступны в родительском
E. Допустимая операция. Родительский процесс при изменении данных получит сигнал SIGMEM

6. Почему для многих функций, например таких как readdir и strtok, существуют аналоги (readdir_r и strtok_r)?
A. Ресурсы выделенные такими функциями не освобождаются корректно при прерывании потока.
B. Эти функции не безопасны при возникновении асинхронных сигналов.
C. Эти функции не потокобезопасные.
D. Эти функции могут блокировать выполнение всех потоков процесса если они будут заблокированы до выделения запрошенных ресурсов.
E. Ресурсы выделенные такими функциями не освобождаются корректно при нормальном завершении потока.

7. Вызов select() иногда используется вместо вызова sleep() для приостановки выполнения программы на заданный период времени. Почему?
A. на select() не может оказать влияние операции ввода-вывода.
B. вызов select() не прерывает асинхронные операции ввода вывода во время паузы.
C. select() не может быть прерван сигналами.
D. вызову select() можно указать паузу с точность до микросекунд.
E. select() позволяет процессу перехватывать сигналы, позволя при этом дождаться окончания установленной паузы.

8. Что из нижеперечисленного нельзя использовать для предотвращения одновременного доступа к общему объекту из разных потоков?
A. mutex
B. posix semaphore
C. flock
D. rwlock

9. При использовании схемы producer and consumer (производитель и потребитель) какой механизм синхронизации можно использовать?
A. mutex
B. condition variable
C. mutex и condition variable

10. Какая функция создаёт объект разделяемой памяти?
A. CreateFileMapping
B. shm_open
C. mmap
D. fcntl

11. Ограничения при использовании разделяемой памяти (shared memory)?
A. Ограничений нет
B. Разделяемую память нельзя использовать в потоках
C. Нельзя изменить размер созданного объекта разделяемой памяти
D. Объект разделяемой памяти нельзя использовать совместно между не дочерними процессами

12. Синхронизация доступа к данным между двумя процессами. Необходимо обеспечить наилучшую переносимость между различными Unix. Какие функции вы бы использовали для обеспечениния поставленной задачи?
A. pthread_mutex_lock
B. flock
C. semop
D. pthread_mutex_lock, flock
E. flock, semop

13. Для того, чтобы работать с дескриптором в неблокирующем режиме надо:
A. передать специальные параметры вызову socket/open
B. использовать select
C. использовать fcntl
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.