Text
                    Лабораторная работа №
4
(
2
часа)
Контроль и мониторинг процессов
Цели:
изучить средства контроля процессов в ОС
Linux
, получить базовые
навыки использования утилит
контрол
я процессов
в
Debian
GNU
/
Linux
.
Инструкции по выполнению
:
Загрузите ОС
Linux
, войдите в сеанс и
получите доступ к командной строке. Перед выполнением заданий
лабораторной работы ознакомьтесь с главой 12 «Контроль использования
системных ресурсов» книги «
L
inux
. Карманный справочник»
Скотта
Граннемана
и с главой
5
(с.
16
3) «
UNIX
и
Linux
. Руководство системного
администратора» Эви Немет и др. Внимательно прочитайте условие
лабораторной работы, выполните требуемые задания
, ответьте на
приведенные вопросы
и сост
авьте итоговый отчет по работе.
Перед
началом
работы
проверьте
,
установлены
ли
на
Вашей
машине
необходимые пакеты
(
strace
,
sysstat
)
.
В случае необходимости установите их.
В
Linux
рассматривается 3 типа процессов: интерактивные процессы,
пакетные процессы
и процессы
-
демоны. Далее в работе будут
рассматриваться интерактивные процессы.
Интерактивные процессы могут выполняться как процессы переднего
плана (
foreground
)
или могут быть переведены в фоновый режим
(
background
). Фоновые процессы приостанавливаются,
возвращают
управление терминалом родительскому процессу приостановленного
процесса. Фоновые процессы также могут продолжать свою работу в
фоновом режиме, в том случае, если продолжение работы не требует
взаимодействия с терминалом.
Управление интерактивным
и процессами, или управление задачами,
позволяет процессу перемещаться между передним планом и фоновым
исполнением, перезапускаться в фоновом режиме, если это возможно или
перезапускаться как процесс переднего плана.
Для перемещения процесса в фоновый режи
м может использоваться
отправка сигнала сочетанием клавиш
<
Ctrl
+
Z
>
.
Выполните это действие для какого
-
либо интерактивного процесса,
например, процесса проверки корректности файловой системы. В каком
состоянии находится процесс? Продолжает ли он выполнение
и сколько
процессорного времени потребляет?
Для просмотра фоновых процессов может использоваться утилита
jobs
.
При помощи указанной утилиты проверьте состояние фоновых процессов.
Введите в терминале команду
bg
и повторите проверку. Что изменилось?
Отметьте
в отчете назначение команды
bg
. Попытайтесь выполнить команду
fg
. Что произошло в этом случае?
Нажмите
<
Ctrl
+
Z
>
еще раз, а затем
используйте команду
disown
-
a
. Что произошло?
Опишите по шагам, что будет результатом выполнения следующей
цепочки команд, вып
олненной в терминале:


nano < Ctrl + Z > bg 1 fg 1 <Ctrl+C> Для управления приоритетом процессов в Linux используются команды nice , renice и, частично, top . При помощи команд nice и renice выполните следующие задания: 1 ) определите текущее значение «фактора nice » для выбранного процесса; 2 ) определите результат выполнения команды sudo nice - n - 10 gimp nice - n - 10 gimp почему одна из них не работает? 3 ) определите результат выполнения команды renice +2 - u user Изучение команды ps . Выполните команду ps с ключами, позволя ющими увидеть процессы всех пользователей и параметром PPID . Отметьте в отчете командную строку, которую вы использовали. Обратите внимание на поле TTY . Это поле показывает, где запущен процесс. Если его значение «?», то он был запущен как часть процесса и нициализации системы без терминала. Для остальных процессов в качестве терминала указано значение tty или pts с некоторым номером. tty задает сессию, подключенную к стандартному потоку вывода, т.е. локальную для данной системы. pts указывает на сессию, отк рытую или удаленно (например, telnet ) или через графический терминал (например, xterm ). Задание. При помощи команды ps определите: 1 ) Количество процессов, работающих из pts . 2 ) Процесс, который больше всего использовал процессорного времени Вашей системы. 3 ) Колич ество процессов в состоянии D . Что это за состояние процесса? Просмотрите справку по команде ps . Что выведет на экран команда ps – e ? Какие процессы в выводе команды ps заключаются в [] ? Как определить при помощи команды ps когда был запущен тот или иной процесс? При необходимости динамического мониторинга процессов в системе может использоваться команда top ( gtop ). Ознакомьтесь с работой этой команды. Как с ее помощью изменить фактор уступчивости для процесса, который чрезмерно занимает CPU ? Что будет вы полнять top при следующих параметрах вызова: а ) top - d 5 b) top - u user c) top - p 1024, 2048, 4096 
d) top - n 10 e) top - b - n 12000 > somefile После запуска команды top она может интерактивно управляться. Определите, что будет происходить с выводом команды при использовании следующих сочетаний клавиш: 1 ) <Shift+N> 2 ) <Shift+P> 3 ) <Shift+M> 4 ) <Shift+T> 5 ) d 6 ) = 7 ) u 8 ) n 9 ) K Обе команды, и ps , и top для получения информации используют псевдофайловую систему / proc . Укажите в отчете, какую информацию о процессе можно извлечь из / proc вручную и каким образом? Приведите примеры получения информации о распределении памяти для процесса и используемых им динамических библиотеках. Кроме указанных выше программ для мониторинга работы процессов могут быть полезны команды vmstat , free , uptime ( объясните чем), pgrep , iostat , dstat . После определения источника проблем производительности в работе системы при помощи команд ps и top и подобных им , администратор может принять необходимые меры при помощи команд renice и / или kill . Тренинг: запустите не сколько дополнительных ненужных процессов (в качестве таковых отлично подойдут программы из каталогов / usr / games или / usr / bin ). Проверьте на них действие команды kill с различными сигналами, рассмотренными в лекции. Результаты тренировки отметьте в отчете. Что произойдет при вводе команды kill - 1 [ PID _ демона ] Какому сигналу соответствует номер «1»? Каким образом, не обращаясь к заголовочным файлам, используя только команду kill это можно узнать? Изучение команды strace . По доступной справочной документации определите назначение этой команды. Как ее использовать? Какие ключи она принимает?