Прежде чем углубляться в практическое применение управления процессами, важно понять, что такое процессы Linux и как они функционируют. Эта тема может показаться сложной по мере изучения деталей, поэтому не стесняйтесь вернуться к этому уроку позже, если потребуется.
Что такое процесс Linux
Процесс — это выполняемая программа. Точнее, это экземпляр запущенной программы, которому система выделила ресурсы, такие как память, время ЦП и ввод/вывод. Например, если вы откроете три окна терминала, запустите команду cat в двух из них без аргументов (она будет ждать стандартного ввода, сохраняя процесс активным), а затем используете третье окно для выполнения ps aux | grep cat, вы увидите два отдельных процесса cat. Каждый из них является отдельным экземпляром одной и той же программы, со своим уникальным идентификатором процесса и распределением ресурсов.
Роль ядра в управлении процессами
Ядро Linux отвечает за все управление процессами. Когда вы выполняете программу, ядро загружает ее код в память, выделяет необходимые системные ресурсы и начинает отслеживать ее как процесс. Ядро хранит подробную информацию для каждого процесса, включая:
- Состояние процесса
- Ресурсы, которые процесс использует и получает
- Владелец процесса
- Обработка сигналов (об этом позже)
- И, по сути, все остальное
Все активные процессы конкурируют за системные ресурсы. Ядро действует как планировщик, гарантируя, что каждый процесс получает справедливую долю ресурсов в зависимости от его приоритета и потребностей. Когда процесс завершает свою задачу или завершается, ядро освобождает используемые им ресурсы, делая их доступными для других процессов.