Данная программа демонстрирует управление процессами в среде Linux с использованием системных вызовов fork, kill, waitpid, а также обработки сигналов. Программа позволяет создавать, удалять и управлять дочерними процессами в интерактивном режиме.
Программа позволяет:
- Создавать дочерние процессы (
+) - Удалять последний созданный дочерний процесс (
-) - Выводить список всех процессов (
l) - Удалять все дочерние процессы (
k) - Завершать работу программы (
q)
Для компиляции программы используйте:
gcc -o process_manager process_manager.cДля запуска:
./process_managerПосле запуска программа принимает следующие команды:
+— создать новый дочерний процесс.-— удалить последний созданный дочерний процесс.l— вывести список активных процессов.k— удалить все дочерние процессы.q— завершить выполнение программы.
alarm_handler— обработка сигнала SIGALRM для управления таймерами.parent_sigusr1_handler,parent_sigusr2_handler— обработка сигналов SIGUSR1 и SIGUSR2 в родительском процессе.
create_child()— создаёт дочерний процесс, который выполняет бесконечный цикл переключения значений{0,0}и{1,1}.remove_last_child()— удаляет последний созданный дочерний процесс.list_processes()— отображает список всех активных процессов.remove_all_children()— завершает все дочерние процессы.
init_terminal()— отключает ввод с буферизацией, чтобы команды вводились без нажатия Enter.restore_terminal()— восстанавливает стандартные настройки терминала.
- Добавить обработку сигналов в дочерних процессах для корректного завершения.
- Улучшить логику статистики для дочерних процессов.
- Добавить больше команд для управления процессами.