Перейти к содержанию

Процессы

Процесс — это изолированный контейнер для исполнения программы со своим адресным пространством, таблицей файловых дескрипторов и правами доступа. Этот раздел рассматривает жизненный цикл процессов в Linux: создание (fork, exec), завершение и сбор статуса (wait, зомби), управление (приоритеты, CPU affinity, capabilities, rlimit), асинхронные уведомления (signals), межпроцессное взаимодействие (IPC) и низкоуровневое переключение контекста между задачами.

Темы

Страница Что рассматривается
Основы процессов PID, PPID, дерево процессов, мониторинг через ps/top//proc, UID/EUID
fork и exec Создание процессов через fork, Copy-on-Write, замена образа через exec*, идиома fork+exec
Состояния процессов, wait, sleep Диаграмма состояний (R/S/D/T/Z), зомби и orphan-процессы, wait/waitpid
Приоритеты, аффинность, capabilities Nice-приоритеты, RT-планировщики, CPU affinity (taskset), Linux capabilities, cgroups CPU controller
rlimit Ограничение ресурсов процесса: CPU-время, память, файловые дескрипторы, стек; setrlimit/ulimit
Сигналы Доставка и обработка сигналов, sigaction, маска, realtime signals, sigaltstack, signalfd
IPC: Pipes, FIFO, Shared memory Анонимные pipe, FIFO, POSIX shared memory, Unix domain sockets, eventfd, System V IPC
Context switch (kernel) __switch_to, switch_mm, PCID/ASID, XSAVE, eager vs lazy FPU, preemption models, цена ~1-5 µs