Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / 4 лабораторная.docx
Скачиваний:
2
Добавлен:
09.07.2025
Размер:
4.43 Mб
Скачать

Задание 1.3. Тестирование памяти

С помощью утилиты Memtester проведите тестирование 1 Гб свободной памяти (если данный объем недоступен, выберите меньшее количество свободной памяти), выполнив не менее двух проходов. Отобразите в отчете процесс и результаты тестирования.

Результат выполнения и установки утилиты представлены на рисунках 15-17.

Рисунок 15 – Установка утилиты memtester

Рисунок 16 – Тестирование 1 ГБ свободной памяти

Рисунок 17 – Тестирование 1 ГБ свободной памяти

Дополнительное задание

Получите текущее значение параметра swappiness. Измените его. Сделайте скриншот внесенного изменения. На что влияет значение этого параметра?

Результат выполнения представлен на рисунке18.

Рисунок 18 – Получение и изменение параметра swappiness

Swappiness определяет, насколько активно ядро Linux будет использовать область подкачки. Значение этого параметра находится в диапазоне от 0 до 100, где 0 означает минимальное использование подкачки, а 100 максимальное.

  • Значение 0. Компьютер будет стараться избегать использования области подкачки, сохраняя данные в оперативной памяти на столько, насколько это возможно.

  • Значение 100. Компьютер будет активно использовать область подкачки, чтобы освободить оперативную память, когда она начинает заполняться.

Изменение параметра swappiness может применяться для оптимального использования ресурсов в зависимости от конкретных потребностей.

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

Цели:

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

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

Задание:

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

Выбор средства коммуникации в программе осуществлять исходя из переданного пользователем при запуске программы аргумента, например: ./lab_4 pipe запускает ведущую программу, задавая режим коммуникации с помощью каналов, далее ведущий процесс создает дочерние.

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

Продумать интерфейс взаимодействия с пользователем и отображение результатов работы.

Задача:

Реализовать алгоритм блочной сортировки файла целых чисел. Каждый процесс, выполняющий сортировку, получает свою часть файла от ведущего процесса и сортирует его. Ведущий процесс выполняет упорядочивание уже отсортированных блоков. При необходимости ведомым процессам может быть выделено более одного задания на сортировку.

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

Рисунок 19 – Код программы

Рисунок 20 – Код программы

Рисунок 21 – Код программы

Рисунок 22 – Код программы

Рисунок 23 – Код программы

Рисунок 24 – Код программы

Рисунок 25 – Код программы

Рисунок 26 – Код программы

Рисунок 27 – Код программы

Рисунок 28 – Код программы

Рисунок 29 – Код программы

Рисунок 30 – Код программы

Рисунок 31 – Код программы

Рисунок 32 – Код программы

На рисунке 33 представлено содержание исходного файла.

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

На рисунках 34-36 представлено содержание файла после сортировки с помощью сокетов, каналов и разделяемой памяти соответственно.

Рисунок 34 – Содержание нового файла после сортировки сокетами

Рисунок 35 – Содержание нового файла после сортировки каналами

Рисунок 36 – Содержание нового файла после сортировки разделяемой памятью

Вывод

Мы изучили управление памятью в Linux. Изучили основные методы управления памятью в Linux, построили карту виртуальной памяти процесса, приобрели практические навыки работы с инструментами мониторинга использования памяти, настройки параметров виртуальной памяти, тестирования работоспособности оперативной памяти.

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

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