ОП.05 · Операционные системы и среды · занятие 7 · комбинированное занятие
Процессы: PID, состояния и сигналы
Программа и процесс, номера PID и PPID, дерево процессов, состояния R, S, D, T и Z, фон и передний план, сигналы TERM, KILL, STOP и CONT, коды завершения и зомби. В конце — набор процессов в разных состояниях, который нужно завершить подходящими сигналами.
Часть 1 →План занятия
- 1Программа и процесс
В этой части разберём, чем запущенная программа отличается от файла программы на диске, что такое номер процесса PID и где ядро показывает сведения о каждом процессе.
- 2Родители и потомки: PPID и дерево процессов
В этой части разберём, как один процесс создаёт другой, что такое PPID, как выглядит дерево процессов и кто становится родителем процесса, если его родитель завершился.
- 3Состояния процесса
В этой части разберём, в каких состояниях бывает процесс, как их читать в столбце STAT команды ps и как получить каждое состояние на опыте.
- 4Передний план и фон: jobs, bg, fg
В этой части разберём, что такое задание оболочки, чем передний план отличается от фона и как переводить задание между ними клавишами и командами jobs, bg и fg.
- 5Сигналы: kill, остановка и продолжение
В этой части разберём, что такое сигнал, какие сигналы нужны администратору, как посылать их командой kill и почему процесс может перехватить TERM, но не KILL.
- 6Завершение процесса: код возврата и зомби
В этой части разберём, какой код возвращает процесс при завершении, как по коду узнать, что процесс был снят сигналом, и почему завершившийся процесс превращается в зомби.
- 7Практическая работа · Диспетчер процессов
В этой части запустим набор процессов в разных состояниях, построим их дерево, определим состояния и завершим каждый процесс подходящим сигналом. Порядок действий проверит журнал диспетчера и скрипт.
Подготовка
Для работы нужна Ubuntu из практической работы № 1 и терминал. Права администратора на этом занятии не нужны: все процессы запускаются от вашего имени. Набор для практической работы создаёт скрипт procs-lab-setup.sh.
На занятие отводится одна пара — 90 минут: части 1–6 около 55 минут, практическая работа — 35 минут. Снимки экрана сделаны в Ubuntu 24.04.4 Live; номера процессов в вашей системе будут другими.
Каждая часть построена одинаково: объяснение, определения, команды для выполнения в терминале, снимок с результатом, итоги части и переход к следующей.