3.8 KiB
Что такое процесс в контексте операционной системы? Чем процесс отличается от потока?
Изолированный набор ресурсов (потоков, страниц памяти, дескрипторов).
Что такое системный вызов в контексте операционной системы?
Обращение к ядру.
Что такое POSIX?
POSIX (англ. Portable Operating System Interface — переносимый интерфейс операционных систем) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API), библиотеку языка C и набор приложений и их интерфейсов.
Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода, но может быть использован и для не-Unix систем.
Какой системный вызов используется для создания нового процесса в Linux?
fork (57)
Что такое идентификатор процесса (PID), и как его можно получить в программе на языке C?
Уникальное число, используемое для идентификации процесса.
pid_t getpid(void);
Какой системный вызов позволяет родительскому процессу ожидать завершения своего потомка, и как он работает?
waitpid
- переводит вызывающий поток в спящее состояние, до тех пор пока вызывающий процесс не получит SIGCHLD
с соответствующим PID
.
Что произойдет, если родительский процесс завершится раньше своих потомков? Как это отразится на процессе потомков в операционной системе Linux?
Родителем потомков станет процесс с PID=1
.
Как можно программно контролировать завершение процесса в бесконечном цикле с вероятностью завершения 1/3?
Что делает системный вызов waitpid() и как его использовать для управления процессами в отношениях «родитель-потомок»?
Что происходит, если вызвать waitpid() с флагом WNOHANG, и чем это отличается от вызова без этого флага?
С флагом WHOHANG
функция сразу вернёт значение, без флага заблокирует вызывающий поток до завершения запрошенного процесса.