(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Мобильные платформы | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Выпускники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация

Цели работы

Получить навыки управления процессами средствами командного языка bash. Научиться а) получать информацию о запущенных в системе процессах, в том числе выводить список собственных процессов; б) отправлять процессу (задаче) сигналы; в) по коду завершения (возврата) определять номер сигнала, с которым был завершен процесс; г) выводить список задач, переводить (запускать) задачи в фоновый режим из интерактивного о обратно; д) посылать задаче сигнал. Освоить следующие команды, определенные стандартом Posix.2:

ps top pstree kill (-l, -s, -9) bg fg

Описание работы

Шаг 1 (справка).
Используя справочные руководства man, whatis, apropos, info изучите общее назначение команд, перечисленных в разделе "Цели работы".

Шаг 2 (вывод информации).
1. С помощью команды ps
1.1 выведите полный перечень процессов (-A) в расширенном формате (-f);
1.2 определите номер (PID) процесса, представляющего запущенную в пункте 1.1 команду;
1.3 с помощью утилиты grep выберите из полного перечня только те процессы, которые принадлежат текущему пользователю;
1.4 сравните вывод команды из пункта 1.3 с результатом вывода команды ps -f -u $(whoami). В чем состоит отличие?

2. С помощью команды top выполните следующие пункты задания.
2.1 Запустите команду top в интерактивном режиме (Обратите внимание, что без специального параметра команда top всегда запускается в интерактивном режиме) Объясните в каком порядке отображаются процессы.
2.2 Отсортируйте процессы по номеру PID (O, a).
2.3 Отобразите информацию о 5 первых процессах (n). Попробуйте увеличить число отображаемых процессов до 80, 100. Все ли процессы отображаются в окне команды top?
2.4 Выведите информацию о собственных процессах (-u).
2.5 Завершите процесс, связанный с командой top, по его номеру (k, y).
2.6 Запустите команду top в пакетном режиме (-b) с выполнением одного обновления (-n 1) и запишите результат выполнения команды в файл top_info.

Шаг 3 (сигналы).
1. Запустите на выполнение команду find / -name "*" >/dev/null.
2. В другом терминале определите PID запущенного процесса и отправьте ему сигнал SIGTSTP. Объясните, что произойдет. Какое число соответствует константе SIGTSTP? (kill -l)
3. В первом терминале отправьте приостановленному процессу сигнал на завершение (SIGKILL) и выведите код возврата (echo $?). Объясните результат.

Шаг 4 (задачи).
1. Запустите в фоновом режиме редактор emacs (например, emacs file &).
2. C помощью команды jobs получите список запущенных в терминале задач.
3. Запустите комаду man ls и выполните терминальную остановку с помощью Ctrl+Z.
4. Отобразите список задач.
5. Переведите вторую задачу в фоновый режим (bg).
6. Переведите первую задачу в интерактивный режим (fg).
7. Удалите задачи с помощью команды kill.
Объясните, как запустить задачу в фоновом режиме? Как перевести задачу из фонового режима в интерактивный?

Критерии оценки работы

За задание можно получить 8 баллов. При этом задание должно быть выполнено полностью, сдаваться в срок, автор обязан понимать собственное решение и уметь объяснить суть основных понятий: процесс, задача, сигнал.

Защищая работу, Вы должны продемонстрировать 1) умение работать со справочной системой (man, whatis, apropos, info); 2) знание общего назначения приведенных в разделе "Цели работы" команд (например, echo — вывод строки текста); 3) умение отправлять сигналы процессу, задаче; 4) умение выводить информацию о процессах и задачах 5) запускать задачи в фоновом и интерактивном режимах.