LINUX.ORG.RU

Сообщения avovana7

 

Quiz для профф. Pay attention, please.

Форум — Development

Добрый день, дорогие форумчане! Подоспел быстрый квиз, взятый из собеседования на лида в крупную компанию. Как бы вы ответили?

Для каждого вопроса лишь один(!) правильный ответ.

  1. Процесс открывает файл, вызывает fork(). Файл в child доступен на чтение?
  • A. Да
  • B. Нет
  • C. Перед вызовом fork() необходимо закрывать все открытые файлы
  • D. Нет, файл автоматически будет закрыт системой в дочернем процессе
  • E. Зависит от реализации, поведение не определено
  1. Участки памяти создаются при создании потока?
  • A. heap
  • B. stack
  • C. data segment
  • D. code segment
  1. Можно ли заблокировать cигналы SIGHUP(1), SIGKILL(9), SIGTERM(15)?
  • A. да все
  • B. только SIGHUP
  • C. только SIGKILL
  • D. только SIGTERM
  • E. только SIGHUP и SIGKILL
  • F. только SIGHUP и SIGTERM
  • G. только SIGKILL и SIGTERTM
  1. В программе не установлен обработчик на сигнал SIGUSR1. Что будет, если такой сигнал пришёл?
  • A. Будет проигнорирован
  • B. Будет вызван обработчик по умолчанию, созданный операционной системой
  • C. Программа завершит свою работу
  • D. Программа перейдёт в состояние «ожидание»
  1. Процесс выделяет память и вызывает функцию fork(). child модифицирует память. Корректна ли такая операция и если да, то будут ли доступны изменения памяти дочернего процесса в родительском процессе?
  • A. Такая операция некорректна, дочерний процесс завершит своё выполнение
  • B. Такая операция некорректна, поведение системы не определено
  • C. Допустимая операция, данные из дочернего процесса будут доступны в родительском
  • D. Допустимая операция, данные из дочернего процесса не будут доступны в родительском
  • E. Допустимая операция. Родительский процесс при изменении данных получит сигнал SIGMEM
  1. Почему для многих функций, например таких как readdir и strtok, существуют аналоги (readdir_r и strtok_r)?
  • A. Ресурсы выделенные такими функциями не освобождаются корректно при прерывании потока.
  • B. Эти функции не безопасны при возникновении асинхронных сигналов.
  • C. Эти функции не потокобезопасные.
  • D. Эти функции могут блокировать выполнение всех потоков процесса если они будут заблокированы до выделения запрошенных ресурсов.
  • E. Ресурсы выделенные такими функциями не освобождаются корректно при нормальном завершении потока.
  1. Вызов select() иногда используется вместо вызова sleep() для приостановки выполнения программы на заданный период времени. Почему?
  • A. на select() не может оказать влияние операции ввода-вывода.
  • B. вызов select() не прерывает асинхронные операции ввода вывода во время паузы.
  • C. select() не может быть прерван сигналами.
  • D. вызову select() можно указать паузу с точность до микросекунд.
  • E. select() позволяет процессу перехватывать сигналы, позволя при этом дождаться окончания установленной паузы.
  1. Что из нижеперечисленного нельзя использовать для предотвращения одновременного доступа к общему объекту из разных потоков?
  • A. mutex
  • B. posix semaphore
  • C. flock
  • D. rwlock
  1. При использовании схемы producer and consumer (производитель и потребитель) какой механизм синхронизации можно использовать?
  • A. mutex
  • B. condition variable
  • C. mutex и condition variable
  1. Какая функция создаёт объект разделяемой памяти?
  • A. CreateFileMapping
  • B. shm_open
  • C. mmap
  • D. fcntl
  1. Ограничения при использовании разделяемой памяти (shared memory)?
  • A. Ограничений нет
  • B. Разделяемую память нельзя использовать в потоках
  • C. Нельзя изменить размер созданного объекта разделяемой памяти
  • D. Объект разделяемой памяти нельзя использовать совместно между не дочерними процессами
  1. Синхронизация доступа к данным между двумя процессами. Необходимо обеспечить наилучшую переносимость между различными Unix. Какие функции вы бы использовали для обеспечениния поставленной задачи?
  • A. pthread_mutex_lock
  • B. flock
  • C. semop
  • D. pthread_mutex_lock, flock
  • E. flock, semop
  1. Для того, чтобы работать с дескриптором в неблокирующем режиме надо:
  • A. передать специальные параметры вызову socket/open
  • B. использовать select
  • C. использовать fcntl

 ,

avovana7
()

RSS подписка на новые темы