5* Обязательная лабораторная работа: Управление процессами.
Команды LINUX для работы с процессами
at - запускает программы в определенное время
atq - выводит список заданий, поставленных в очередь командой at
atrm - удаление задания из очереди команды at
/etc/crontab - таблицу расписаний запуска заданий файл содержащий
kill - прекращение выполнения процесса по PID процесса
killall - прекращение выполнения процесса по имени процесса
nice - задает приоритет процесса перед его запуском
renice - изменяет приоритет работающего процесса
ps - выводит информацию о работающих процессах
top - выводит динамическую информацию о процессах
fg - вывод процесса из фонового режима
bg - продолжение выполнения фонового процесса, если он приостановлен нажатием <Ctrl+Z>
ipcs - взаимодействие процессов (разделяемая память, семафоры, сообщения)
Для получения более подробной информации, можно использовать help (например: ps --help), или документацию (например: man ps, для выхода нажмите q).
Запуск фонового процесса осуществляется так:
ps -x &
При загрузке системы, необходимые процессы, загружаются в фоновый режим, их называют "демонами". Они находятся в каталоге /etc/rc.d/init.d/.
Некоторые комбинации клавиш:
<Ctrl+Z> - приостановить выполнение задания
<Ctrl+C> - завершить выполнение задания
Связывание процессов с помощью каналов. Запуск нескольких команд с передачей выходного потока следующей программе, "|" означает передачу выходного потока от первой программы ко второй.
ps -ax | more
запускается команда ps -ax, и передает выходной поток программ more которая запускается на выполнение.
Перенаправление ввода/вывода. Запуск команды с записью выходного потока в файл
ps -ax > test.txt
ps -ax > test.txt - добавит в коней файла
Группы команд
command-1;command-2;command-3
{command-1;command-2} > test.txt
Задание:
- На языке С (gcc) напишите программу с вечным циклом, выводящую каждые 5 секунд на экран вашу ФИО и номер группы. Имя программы (файла) - ваша фамилия.
- В своей виртуальной машине сделать:
- создать задание на запуск задание для вашей программы, минута,час,день месяца, месяц - последняя цифра в номере зачетки, показывать этот список, удалять из списка (скриншоты в отчет)
- прописать в crontab, задание на запуск задание для вашей программы, минута,час,день месяца, месяц - последняя цифра в номере зачетки (скриншоты в отчет)
- запустите свою программу
- пошлите сигнал на прекращение процесса вашей программы по ID и по имени (скриншоты в отчет)
- запустите процесс вашей программы с конкретным приоритетом (скриншоты в отчет)
- измените приоритет процесса вашей программы (скриншоты в отчет)
- выведите информацию о работающих процессах (ps) (скриншоты в отчет)
- запустите процесс вашей программы в фоновом режиме, выведите из фонового режима (скриншоты в отчет)
- запустите процесс вашей программы в интерактивном режиме, переведите в спящий режим, переведите в фоновый режим, выведите из фонового режима (скриншоты в отчет)
- передайте выходной поток другой программе (поток ps) (скриншоты в отчет)
- запишите выходной поток процесса (поток ps) в файл (скриншоты в отчет)
- вывести информацию о работающих процессах, с различным количеством столбцов и процессов (ps) (скриншоты в отчет)
- вывести динамическую информацию о процессах, сортировать эту информацию по столбцам, убирать и добавлять столбцы, менять приоритет процесса, уничтожать процесс. (top) (скриншоты в отчет) - Изучить теорию: Процессы и потоки (многозадачность, состояние, планирование, борьба за ресурсы, блокировки).
При сдаче:
- умение работать с этими командами.
- выполненные задания на виртуальных машинах
- Знать теорию: Процессы и потоки (многозадачность, состояние, планирование, борьба за ресурсы, блокировки).