
- •Список сокращений
- •Введение
- •Понятие процесса
- •Взаимодействие пользователя с процессами
- •Информация о процессах
- •Иерархия процессов
- •Запуск процессов
- •Завершение процессов
- •Межпроцессное взаимодействие
- •Механизмы информационного обмена
- •Сигналы;
- •Сигналы
- •Неименованные каналы
- •Именованные каналы
- •Упражнения
- •Начало работы
- •Подготовка
- •Изучение процессов
- •Запуск и завершение процессов в командной оболочке:
- •Межпроцессное взаимодействие в командной оболочке
- •Межпроцесное взаимодействие
- •Сигналы в Linux
- •Индивидуальные задания
- •Контрольные вопросы
- •Список литературы
- •Приложение 1. Справка по используемым утилитам
- •Регулярные выражения
- •Утилита xargs
- •Утилита wc
- •Утилита awk
- •Приложение 2. Листинги используемых программ
Упражнения
Начало работы
В соответствии с п. 3.1 из Упражнений предыдущей лабораторной работы подключитесь к командной оболочке Raspberry Pi.
Перейдите в каталог с вашими проектами, создайте в нем каталог «lab2» для данной лабораторной работы и перейдите в него:
cd IVT31_Ivanov_Ivan
mkdir lab2
cd lab2
Создайте еще один экземпляр командной оболочки. Для этого щелкните правок кнопкой мыши по заголовку окна Putty и выберите строку «Duplicate session». Перейдите в созданную в предыдущем пункте директорию lab2.
Подготовка
Для удобного перемещения файлов между стендом и персональным компьютером можно использовать программу WinSCP. Для этого:
Откройте программу WinSCP
В открывшемся окне заполните поля «имя хоста», «имя пользователя, «пароль». Далее нажмите кнопку «войти»:
Теперь возможно переносить файлы на привычным и удобным способом:
Переместите файлы writer.sh, reader.sh в созданную вами директорию /home/pi/IBT31_Ivanov_Ivan/lab2
Измените права доступа к перемещенным исполняемым файлам
chmod +x sleep.sh
chmod +x reader.sh
chmod +x writer.sh
Изучение процессов
Введите команду
|
top |
|
на экране будут показаны запущенные процессы и используемые системные ресурсы. Информация будет обновляться в режиме реального времени.
Введите команду
|
ps |
|
на экране отобразятся процессы, порожденные терминалом: «bash» и процесс «ps», который был вызван. В левой колонке будет показан PID каждого процесса.
Введите команду
|
ps -aux |
|
на экране отобразятся все процессы, запущенны в ОС в расширенном формате: указан пользователь, который запустил процесс, PID процесса, его состояние, команда его вызова и т. д.
Введите команду
|
ps -faxu |
|
на экране отобразятся запущенные в системе процессы с указанием родительских и дочерних.
Найдите дерево процессов, вызвавших используемый терминал. В корне дерева процесс "/usr/sbin/sshd" - программа «SSH Daemon», через которое произведено подключение.
Найдите дерево процессов, соответствующих второму терминалу.
Запуск и завершение процессов в командной оболочке:
Запустите исполняемый файл sleep.sh который бесконечное количество раз ничего не делает раз в одну секунду.
|
./sleep.sh |
|
Исполняемый файл запущен на переднем плане и захватывает командную оболочку, ввести другие команды невозможно.
Завершите выполнение процесса с помощью сочетания клавиш "Ctrl+C" (процессу будет отправлен сигнал SIGINT).
Запустите данный исполняемый файл в фоновом режиме
|
./sleep.sh & |
|
на экране появятся его номер «jobspec» фоновых процессов [1] и значение PID.
Запустите утилиту ps и обратите внимание на столбец STAT. Для запущенного процесса ps значение равняется «R+» - процесс исполняется на переднем плане. У запущенного процесса sleep значение равняется «S» - процесс находится в состоянии прерываемого сна.
ps -au
Посмотрите запущенные фоновые процессы пользователя pi с помощью команды
jobs -l
Добавьте еще 2 фоновых процесса
./sleep.sh &
./sleep.sh &
Посмотрите фоновые процессы
jobs -l
Перевидите экземпляр фонового процесса [2] на передний план
|
fg %2 |
|
После перевода процесса на передний план командная строка стала недоступна для ввода новых команд. Завершите выполнение процесса с помощью сочетания клавиш «Ctrl+C».