Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab_4 / ос_лаб_4_Мажукин

.docx
Скачиваний:
0
Добавлен:
12.02.2024
Размер:
10.86 Mб
Скачать

Министерство цифрового развития связи и массовых коммуникаций

Ордена Трудового Красного Знамени

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

СВЯЗИ И ИНФОРМАТИКИ»

Кафедра «Системное программирование»

Отчёт по лабораторной работе №4

по дисциплине «Операционные системы»

Выполнил: студент группы БСТ2104

Мажукин И.Н.

Проверил: ст. преп. Алексанян Д.А.

Москва, 2023 г.

Цели лабораторной работы:

  • Изучить основные команды и инструменты для управления процессами

  • Ознакомиться со средствами мониторинга производительности в Linux

  • Приобрести практические навыки автоматизации запуска процессов

  • Изучить набор средств коммуникации процессов в ОС GNU/LINUX.

  • Приобрести практические навыки по использованию механизмов межпроцессного взаимодействия

Задание на лабораторную работу

Задание 1.1. Мониторинг производительности системы

  1. Выполните проверку системы при помощи команды top. Отсортируйте процессы по: объему используемой памяти; времени работы; идентификатору; проценту использования времени процессора.

  2. Запустите новый процесс в системе, найдите его в выводе команды top. Измените приоритет запущенного процесса командой renice и убедитесь, что изменения отражены в выводе top.

  3. С помощью команды atop выполните сортировку процессов минимум по трем параметрам общей нагрузки.

  4. При помощи команды mpstat и опции P выведите информацию по: определенному процессору, всем процессорам.

  5. Выполните проверку системы при помощи команды pidstat. Выведите по четыре отчета статистики использования процессора для каждой активной задачи в системе с интервалом в три секунды.

Задание 1.2. Создание скрипта для получения статистики

Напишите скрипт, осуществляющий сбор статистики использования процессоров и статистики работы процессов средствами mpstat и pidstat, выводящий данные в текстовый файл с именем yyyy-mm-dd_h:m:s_syslog.

Задание 1.3. Создание автозапускаемой службы

С помощью утилиты systemd зарегистрируйте свою службу по сбору статистики, запускающую скрипт из задания 2 при старте системы. Запустите службу и проверьте ее работу.

Задание 2. Реализация обмена данными между процессами

Написать программы, выполняющие с помощью ВСЕХ перечисленных механизмов межпроцессного взаимодействия (разделяемая память, сокеты, каналы) задачу. Условие задачи: реализовать обмен текстовыми сообщениями между несколькими процессами, обеспечить возможность отправки сообщения сразу нескольким адресатам, реализовать подтверждение приема сообщения адресатом или, в случае потери сообщения, повторную его передачу.

Для решения задачи создавать минимально 2 ведомых процесса, выполняющих переданные ведущим процессом подзадачи и возвращающие результаты ведущему процессу. Финальную обработку результатов, по необходимости, осуществлять ведущим процессом.

Задание 1.1. Мониторинг производительности системы

На рисунке 1 представлена команда, предоставляющая выполнение проверки системы, на рисунке 2 представлен результат её выполнения

Рисунок 1 – Команда, предоставляющая выполнение проверки системы

Рисунок 2 – Результат выполнения команды top

На рисунке 3 представлена сортировка процессов по объёму используемой памяти (колонка %MEM)

Рисунок 3 – Сортировка процессов по объёму используемой памяти

На рисунке 4 представлена сортировка процессов по времени работы (колонка TIME+)

Рисунок 4 – Сортировка процессов по времени работы

На рисунке 5 представлена сортировка процессов по идентификатору в порядке возрастания (колонка PID USER)

Рисунок 5 – Сортировка процессов по идентификатору в порядке возрастания

На рисунке 6 представлена сортировка процессов по проценту использования времени процессора (колонка %CPU)

Рисунок 6 – Сортировка процессов по проценту использования времени процессора

На рисунке 7 представлен запуск нового процесса в системе (Bitwig studio). Данный процесс присутствует в выводе команды top.

Рисунок 7 – Список процессов с присутствием процесса Bitwig

На рисунке 8 представлена команда для изменения приоритета запущенного процесса и результат её выполнения

Рисунок 8 – Команда для изменения приоритета запущенного процесса

На рисунке 9 представлена команда для получения загрузки по процессору, памяти, дискам и сети, на рисунке 10 представлен результат ввода команды

Рисунок 9 – Команда для получения загрузки по процессору, памяти, дискам и сети

Рисунок 10 – Результат выполнения команды atop

На рисунке 11 представлена сортировка процессов по проценту использования времени процессора (колонка %CPU) внутри команды atop

Рисунок 11 – Сортировка процессов по проценту использования времени процессора внутри команды atop

На рисунке 12 представлена сортировка процессов по объёму используемой памяти (колонка MEM) внутри команды atop

Рисунок 12 – Сортировка процессов по объёму используемой памяти внутри команды atop

На рисунке 13 представлена сортировка процессов по дисковой активности (колонка DKS) внутри команды atop

Рисунок 13 – Сортировка процессов по дисковой активности внутри команды atop

На рисунке 14 представлена команда для вывода информации по всем процессорам и результат её выполнения

Рисунок 14 – Команда для вывода информации по всем процессорам и результат её выполнения

На рисунке 15 представлена команда для вывода информации по определённому процессору и результат её выполнения

Рисунок 15 – Команда для вывода информации по определённому процессору и результат её выполнения

На рисунке 16 представлена команда, предоставляющая выполнение проверки системы при помощи команды pidstat. Команда также выводит четыре отчёта статистики использования процессора с интервалом в три секунды

Рисунок 16 – Результат работы команды pidstat -u 3 4

Задание 1.2. Создание скрипта для получения статистики

На рисунке 17 представлен текст скрипта, который осуществляет сбор статистики использования процессоров и статистики работы процессов

Рисунок 17 – Текст скрипта

На рисунке 18 представлено содержимое файла лога

Рисунок 18 – Содержимое файла лога

На рисунке 19 представлен вывод команды ls -l для директории сохранения логов скрипта

Рисунок 19 – Вывод команды ls -l для директории сохранения логов скрипта

Задание 1.3. Создание автозапускаемой службы

На рисунке 20 представлен текст файла sysloggining.service

Рисунок 20 – Текст файла stats_collector.service

На рисунке 21 представлена команда для установки службы

Рисунок 21 – Команда, регистрирующая службу по сбору статистики

На рисунке 22 представлена команда, регистрирующая службу по сбору статистики

Рисунок 22 – Команда, регистрирующая службу по сбору статистики

На рисунке 23 представлены команды для запуска службы и включения её в автозагрузку

Рисунок 23 – Команды для запуска службы и включения её в автозагрузку

На рисунке 24 представлен вывод команды ls -l для директории сохранения логов скрипта

Рисунок 24 – Вывод команды ls -l для директории сохранения логов скрипта

На рисунке 25 представлена статистика выполнения службы

Рисунок 25 – Статистика выполнения службы

Задание 2. Реализация обмена данными между процессами

На рисунках 28 и 29 представлены коды файлов Channel_server.py и Canal_client.py

Рисунок 28 – Код файла Channel_server.py

Рисунок 29 – Код файла Channel_client.py

На рисунках 30 и 31 представлены результаты работы файлов

Рисунок 30 – Результат работы файла Canal_client.py

Рисунок 31 – Результат работы файла Canal_server.py

На рисунках 32 и 33 представлены коды файлов Socket_server.py и Socket_client.py

Рисунок 32 – Код файла Socket_server.py

Рисунок 33 – Код файла Socket_client.py

На рисунках 34 и 35 представлены результаты работы файлов

Рисунок 34 – Результат работы файла Socket_client.py

Рисунок 35 – Результат работы файла Socket_server.py

На рисунках 36 и 37 представлены коды файлов Shared_memory_server.py и Shared_memory_client.py

Рисунок 36 – Код файла Shared_memory_server.py

Рисунок 37 – Код файла Shared_memory_client.py

На рисунках 38 и 39 представлены результаты работы файлов

Рисунок 38 – Результат работы файла Shared_memory_client.py

Рисунок 39 – Результат работы файла Shared_memory_server.py

Соседние файлы в папке lab_4