ОСРВ_Л6
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
(МТУСИ)
Кафедра
«Интеллектуальные системы в управлении и автоматизации»
Отчет по дисциплине
«Операционные системы реального времени»
Лабораторная работа №6
Москва 2022
Цель
Изучение средств для мониторинга производительности, управления процессами и автоматизации заданий.
Задания
Работа с процессами
Посмотреть работу утилит top и ps.
Посмотреть приоритет своего процесса и уменьшить скорость его выполнения за счет повышения номера приоритета.
Создать программу на Си с бесконечным циклом, откомпилировать ее и запустить в фоновом режиме.
Прервать выполнение этой программы.
Запуск заданий по расписанию
Создать каталог в своём домашнем каталоге.
Создать сценарий shell, выполняющий следующие действия над другим непустым каталогом:
проверка непустой ли каталог;
если каталог непустой, то все файлы этого каталога архивируются и сжимаются в архив с именем, включающем текущую дату и время;
сжатый архив помещается в другой каталог.
Добавить созданному сценарию право на выполнение.
Создать сценарий cron, по которому shell -сценарий выполняется каждые две минуты.
Через две минуты проверить сработал ли сценарий.
Удалить cron-сценарий
Выполнение работы.
Управление процессами
Утилита ps служит для отображения запущенных процессов, их PID. Пример работы утилиты представлен на рисунке 1.
Рисунок 1 - Утилита ps
Утилита top служит примерно для того же, что и ps, но выводит на экран гораздо больше информации. Вывод данной утилиты представлен на рисунке 2.
Рисунок 2 - Вывод утилиты top
В данной утилите можно увидеть различные параметры процессов, такие как PID, имя пользователя-владельца, приоритет процесса, используемые ресурсы.
С помощью команды renice можно изменить приоритет уже запущенного процесса (от высшего -20 до низшего 19) (рисунок 3).
Рисунок 3 - Команда renice
Для того, чтобы запустить программу в фоновом режиме нужно в конце команды для запуска поставить символ &.
Создадим и запустим на фоне программу с бесконечным циклом на C (рисунки 4, 5, 6).
Рисунок 4 - Программа с бесконечным циклом на C
Рисунок 5 - Компиляция программы в исполняемый файл
Рисунок 6 - Запуск программы на фоне
Проверим, работает ли программа на фоне с помощью утилиты top (рисунок 7).
Рисунок 7 - Проверка с помощью top
Для того, чтобы выключить процесс, используется команда kill [pid].
Выключим нашу запущенную на фоне программу и проверим остановку процесса с помощью утилиты ps (рисунок 8).
Рисунок 8 - Остановка процесса
Запуск заданий по расписанию
Создадим 2 папки и в одной из них разместим несколько файлов (рисунок 9).
Рисунок 9 - Создание папок и файлов
Далее необходимо написать сценарий, который будет выполнять архивацию файлов в этой папке. Код этого сценария представлен на рисунке 10.
Рисунок 9 - Код сценария
Теперь необходимо добавить сценарий в cron, чтобы проводить архивацию каждые две минуты. Команда для этого: crontab -e.
Добавим сценарий в cron (рисунок 11).
Рисунок 10 - Добавление сценария
Проверим изменение cron, а также время и дату (рисунок 12).
Рисунок 11 – Проверка изменения cron
Проверим, был ли создан архив в указанной папке (рисунок 13).
Рисунок 12 - Проверка
Вывод.
В ходе выполнения данной лабораторной работы были изучены методы для управления процессами и работой с запуском программ по расписанию.