OS_Practical_work_5-snapshot-v9Dbw
Описание
Snapshot generated from srmk/OS_Practical_work_5
Практическая работа: Управление процессами в Linux
Цель работы
- Познакомиться с основными командами управления процессами в Linux.
- Научиться запускать, завершать и отслеживать процессы.
- Изучить работу с приоритетами процессов.
- Закрепить знания через практические задания.
Теоретическая часть
1. Что такое процессы?
Процесс — это выполняющаяся программа. У каждого процесса есть:
- PID (Process ID) — уникальный идентификатор процесса.
- PPID (Parent Process ID) — идентификатор родительского процесса.
- Состояние — текущий статус процесса (работает, ожидает, завершен).
2. Основные команды для работы с процессами
Просмотр процессов
-
— отображает список процессов.ps -
— интерактивный мониторинг процессов.topВариант команды с улучшенным интерфейсом:
Запуск процессов
-
— запуск процесса в фоновом режиме.& -
— запуск процесса, который не завершится при закрытии терминала.nohup
Управление процессами
-
— завершение процесса по PID.kill -
— завершение всех процессов с указанным именем.killall -
— завершение процесса по имени (удобно для частичных совпадений).pkill
Приоритеты процессов
-
— запуск процесса с заданным приоритетом.nice -
— изменение приоритета уже запущенного процесса.renice
Приостановка и возобновление процессов
— приостановка текущего процесса.Ctrl + Z— возобновление процесса в фоновом режиме.bg— возобновление процесса в текущем терминале.fg
Мониторинг процессов
— отображение всех процессов, запущенных в текущем терминале.jobs— получение PID процесса по имени.pidof
3. Логи процессов
Логи процессов записываются в системные файлы.
— общие системные логи./var/log/syslog— логи процессов (в некоторых дистрибутивах)./var/log/messages
Для просмотра логов используйте:
4. Работа с зависшими процессами
Если процесс завис, его можно завершить с помощью:
Практическая часть
Выполните следующие задания. Все задачи требуют использования команд терминала. Найдите решения самостоятельно, используя теоретическую часть или другие источники.
Задание 1: Запуск и мониторинг процессов
- Запустите программу
на 30 секунд.sleep - Просмотрите список процессов с помощью команды
.ps - Найдите PID процесса
и завершите его.sleep
Задание 2: Фоновый процесс
- Запустите любой процесс в фоновом режиме (например,
).sleep 60 - Проверьте список фоновых процессов с помощью команды
.jobs - Переместите процесс в передний план.
Задание 3: Использование top и htop
- Запустите
и найдите процесс с наибольшим потреблением процессора.top - Установите
и проверьте, как отображаются процессы.htop
Задание 4: Приоритеты процессов
- Запустите программу
с приоритетомsleep 120.10 - Найдите PID этого процесса.
- Измените приоритет процесса на
с помощью команды-5.renice
Задание 5: Управление группой процессов
- Запустите три процесса
с разными временными интервалами.sleep - Завершите все процессы
одновременно с помощью командыsleep.killall
Задание 6: Логи процессов
- Найдите в системных логах информацию о завершении процесса, который вы убили в Задании 5.
- Используйте команду
для наблюдения за логами в реальном времени.tail
Задание 7: Создание бесконечного цикла
- Напишите однострочный скрипт, который создает бесконечный цикл.
- Запустите этот скрипт в фоновом режиме.
- Найдите PID скрипта и завершите его.
Задание 8: Проверка зависших процессов
- Запустите любой процесс и приостановите его с помощью
.Ctrl + Z - Проверьте его состояние с помощью команды
.jobs - Завершите процесс.
Итоги работы
После выполнения практической работы у вас должно быть полное понимание:
- Как запускать, останавливать и завершать процессы.
- Как управлять приоритетами процессов.
- Как работать с фоновыми и зависшими процессами.
По окончанию, продемонстрируйте выполненные задания преподавателю
Вопросы для самопроверки:
- Чем отличаются команды
иkill?killall - Как узнать PID процесса?
- Какие команды позволяют изменить приоритет процесса?
- Как вывести список всех процессов в системе?
Домашнее задание:
Изучите команды и . Напишите скрипт, который отслеживает файлы, открытые определенным процессом, и сохраняет их список в файл.