Процесс Linux — исполняемая программа с виртуальным адресным пространством и ресурсами; ядро планирует выполнение её потоков и хранит их состояние в task_struct.
Можете рассказать про устройство процессов в Linux?
Процесс Linux — исполняемая программа с виртуальным адресным пространством и ресурсами; ядро планирует выполнение её потоков и хранит их состояние в task_struct.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Процесс Linux — исполняемая программа с виртуальным адресным пространством и ресурсами; ядро планирует выполнение её потоков и хранит их состояние в task_struct.
У процесса есть PID, права, дескрипторы файлов, окружение и связи с другими процессами. Потоки разделяют память и многие ресурсы процесса, но имеют собственные регистры и стеки. fork() создаёт дочерний процесс с copy-on-write памятью, а execve() заменяет исполняемую программу. Планировщик переключает runnable-задачи; ожидание ввода-вывода не означает активное использование CPU. После завершения родитель должен получить статус потомка через wait, иначе временно остаётся zombie. Namespaces и cgroups отвечают за изоляцию и учёт ресурсов, а не создают отдельное ядро.