OS_Practical_work_5-snapshot-v9Dbw

9

Описание

Snapshot generated from srmk/OS_Practical_work_5

год назад
README.md

Практическая работа: Управление процессами в Linux


Цель работы

  • Познакомиться с основными командами управления процессами в Linux.
  • Научиться запускать, завершать и отслеживать процессы.
  • Изучить работу с приоритетами процессов.
  • Закрепить знания через практические задания.

Теоретическая часть

1. Что такое процессы?

Процесс — это выполняющаяся программа. У каждого процесса есть:

  • PID (Process ID) — уникальный идентификатор процесса.
  • PPID (Parent Process ID) — идентификатор родительского процесса.
  • Состояние — текущий статус процесса (работает, ожидает, завершен).

2. Основные команды для работы с процессами

Просмотр процессов

  • ps
    — отображает список процессов.

  • top
    — интерактивный мониторинг процессов.

    Вариант команды с улучшенным интерфейсом:

Запуск процессов

  • &
    — запуск процесса в фоновом режиме.

  • nohup
    — запуск процесса, который не завершится при закрытии терминала.

Управление процессами

  • kill
    — завершение процесса по PID.

  • killall
    — завершение всех процессов с указанным именем.

  • pkill
    — завершение процесса по имени (удобно для частичных совпадений).

Приоритеты процессов

  • nice
    — запуск процесса с заданным приоритетом.

  • renice
    — изменение приоритета уже запущенного процесса.

Приостановка и возобновление процессов

  • Ctrl + Z
    — приостановка текущего процесса.
  • bg
    — возобновление процесса в фоновом режиме.
  • fg
    — возобновление процесса в текущем терминале.

Мониторинг процессов

  • jobs
    — отображение всех процессов, запущенных в текущем терминале.
  • pidof
    — получение PID процесса по имени.

3. Логи процессов

Логи процессов записываются в системные файлы.

  • /var/log/syslog
    — общие системные логи.
  • /var/log/messages
    — логи процессов (в некоторых дистрибутивах).

Для просмотра логов используйте:


4. Работа с зависшими процессами

Если процесс завис, его можно завершить с помощью:


Практическая часть

Выполните следующие задания. Все задачи требуют использования команд терминала. Найдите решения самостоятельно, используя теоретическую часть или другие источники.


Задание 1: Запуск и мониторинг процессов

  1. Запустите программу
    sleep
    на 30 секунд.
  2. Просмотрите список процессов с помощью команды
    ps
    .
  3. Найдите PID процесса
    sleep
    и завершите его.

Задание 2: Фоновый процесс

  1. Запустите любой процесс в фоновом режиме (например,
    sleep 60
    ).
  2. Проверьте список фоновых процессов с помощью команды
    jobs
    .
  3. Переместите процесс в передний план.

Задание 3: Использование
top
и
htop

  1. Запустите
    top
    и найдите процесс с наибольшим потреблением процессора.
  2. Установите
    htop
    и проверьте, как отображаются процессы.

Задание 4: Приоритеты процессов

  1. Запустите программу
    sleep 120
    с приоритетом
    10
    .
  2. Найдите PID этого процесса.
  3. Измените приоритет процесса на
    -5
    с помощью команды
    renice
    .

Задание 5: Управление группой процессов

  1. Запустите три процесса
    sleep
    с разными временными интервалами.
  2. Завершите все процессы
    sleep
    одновременно с помощью команды
    killall
    .

Задание 6: Логи процессов

  1. Найдите в системных логах информацию о завершении процесса, который вы убили в Задании 5.
  2. Используйте команду
    tail
    для наблюдения за логами в реальном времени.

Задание 7: Создание бесконечного цикла

  1. Напишите однострочный скрипт, который создает бесконечный цикл.
  2. Запустите этот скрипт в фоновом режиме.
  3. Найдите PID скрипта и завершите его.

Задание 8: Проверка зависших процессов

  1. Запустите любой процесс и приостановите его с помощью
    Ctrl + Z
    .
  2. Проверьте его состояние с помощью команды
    jobs
    .
  3. Завершите процесс.

Итоги работы

После выполнения практической работы у вас должно быть полное понимание:

  • Как запускать, останавливать и завершать процессы.
  • Как управлять приоритетами процессов.
  • Как работать с фоновыми и зависшими процессами.

По окончанию, продемонстрируйте выполненные задания преподавателю

Вопросы для самопроверки:

  1. Чем отличаются команды
    kill
    и
    killall
    ?
  2. Как узнать PID процесса?
  3. Какие команды позволяют изменить приоритет процесса?
  4. Как вывести список всех процессов в системе?

Домашнее задание:
Изучите команды

strace
и
lsof
. Напишите скрипт, который отслеживает файлы, открытые определенным процессом, и сохраняет их список в файл.