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

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

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

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

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

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

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

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

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

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

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

Мажукин И.Н.

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

Москва, 2023 г.

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

● изучить основные методы управления памятью в Linux

● построить карту виртуальной памяти процесса

● приобрести практические навыки работы с инструментами мониторинга

использования памяти, настройки параметров виртуальной памяти,

тестирования работоспособности оперативной памяти

● построить карту виртуальной памяти процесса;

● изучить основные системные вызовы и функции в ОС GNU/LINUX для

работы с файлами и каталогами.

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

Задание 1.1. Получение карты виртуальной памяти процесса

С помощью pmap выведите карту виртуальной памяти любого работающего процесса, например, экземпляра терминала. Изучите структуру карты, сделайте вывод, какая информация может быть получена в результате работы pmap.

Задание 1.2. Настройка файла подкачки

1. Проверьте текущее использование памяти с помощью команды free.

2. Создайте файл подкачки размером 1 ГБ.

3. Установите требуемые разрешения и отформатируйте файл подкачки с

применением mkswap.

4. Подключите созданный файл подкачки с применением команды swapon.

5. Убедитесь, что размер swap-файла изменился.

6. Добавьте настройку для автоматического подключения swap-файла при

перезагрузке виртуальной машины (необходимо внести изменения в файл

/etc/fstab), перезагрузите машину и убедитесь в корректности работы.

7. Выполните команды free -h -t и swapon –s.

8. Деактивируйте созданный файл подкачки и удалите его.

9. Проверьте доступное количество свободной памяти.

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

С помощью утилиты Memtester проведите тестирование 1 Гб свободной памяти, выполнив не менее двух проходов.

Задание 2.1. Разработка программы построения карты ВАП процесса

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

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

Задание 2.2. Разработка программы просмотра содержимого файла

Разработать программу вывода содержимого текстового файла на экран (в качестве аргумента при запуске программы передаётся имя файла, второй аргумент (N) устанавливает вывод по группам строк (по N –строк) или сплошным текстом (N=0)). Для вывода очередной группы строк необходимо ожидать нажатия пользователем любой клавиши.

Предусмотрите контроль ошибок открытия/закрытия/чтения/записи файла.

Задание 1.1. Получение карты виртуальной памяти процесса

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

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

На рисунке 2 представлен PID экземпляра терминала из выпадающего списка

Рисунок 2 – PID экземпляра терминала

На рисунке 3 представлена команда для вывода карты виртуальной памяти экземпляра терминала, на рисунке 4 представлен результат её выполнения.

Рисунок 3 – Команда для вывода карты виртуальной памяти экземпляра терминала

Рисунок 4 – Вывод информации карты виртуальной памяти экземпляра терминала

Информация, полученная в результате работы pmap:

  • Address (Адрес): это адрес начала сегмента виртуальной памяти.

  • Kbytes (Килобайты): размер сегмента в килобайтах.

  • Mode (Режим доступа): описывает права доступа к этому сегменту. Режимы прав доступа:

r: Сегмент доступен для чтения.

w: Сегмент доступен для записи.

X: Сегмент содержит исполняемый код.

p: Сегмент является частью файла.

  • Offset (Сдвиг): сдвиг от начала файла для сегментов, связанных с файлами. В данном случае, это смещение в файле от начала.

  • Device (Устройство): устройство, связанное с сегментом. Обычно это устройство, на котором хранится файл, связанный с этим сегментом.

  • Mapping (Отображение): имя файла или описание, связанные с сегментом. Это может быть имя библиотеки или файла.

Задание 1.2. Настройка файла подкачки

Задание 1.2.1. Проверьте текущее использование памяти с помощью команды free.

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

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

Задание 1.2.2. Создайте файл подкачки размером 1 ГБ

На рисунке 6 представлена команда, создающая файл подкачки размером 1 ГБ.

Рисунок 6 – Команда для создания файла подкачки размером 1 ГБ

Задание 1.2.3. Установите требуемые разрешения и отформатируйте файл подкачки с применением mkswap.

На рисунке 7 представлены команды для установки требуемых разрешений (читать и записывать в файл может только владелец, а все остальные пользователи не имеют никаких прав доступа к этому файлу) и форматирования файла подкачки

Рисунок 7 – Команды для установки требуемых разрешений и форматирования файла подкачки

Задание 1.2.4. Подключите созданный файл подкачки с применением команды swapon.

На рисунке 8 представлена команда, подключающая созданный файл подкачки

Рисунок 8 – Команда для подключения файла подкачки

Задание 1.2.5. Убедитесь, что размер swap-файла изменился.

На рисунке 9 представлен ввод команды free для проверки изменения размера swap-файла

Рисунок 9 – Ввод команды free для проверки изменения размера swap-файла

Задание 1.2.6. Добавьте настройку для автоматического подключения swap-файла при перезагрузке виртуальной машины (необходимо внести изменения в файл /etc/fstab), перезагрузите машину и убедитесь в корректности работы.

На рисунке 10 представлена команда для открытия файла /etc/fstab в текстовом редакторе nano

Рисунок 10 – Команда для открытия файла /etc/fstab в текстовом редакторе nano

На рисунке 11 представлено содержимое файла /etc/fstab

Рисунок 11 – Содержимое файла /etc/fstab

На рисунке 12 представлено добавление конечной строки /swapfile none swap sw 0 0 в файл /etc/fstab, его сохранение и закрытие

Рисунок 12 – Изменение содержимого файла /etc/fstab, его сохранение и закрытие

На рисунке 13 представлена команда для перезагрузки виртуальной машины для проверки настройки

Рисунок 13 – Команда для перезагрузки виртуальной машины

На рисунке 14 представлен повторный ввод команды free для проверки настройки

Рисунок 14 – Проверка настройки после перезагрузки виртуальной машины

Задание 1.2.7. Выполните команды free -h -t и swapon –s.

На рисунке 15 представлен ввод команды free -h -t

Рисунок 15 – Ввод команды free -h -t для отображения использования и настройки файла подкачки

На рисунке 16 представлен ввод команды swapon –s

Рисунок 16 – Ввод команды swapon –s для отображения использования и настройки файла подкачки

Задание 1.2.8. Деактивируйте созданный файл подкачки и удалите его.

На рисунке 17 представлен процесс деактивации созданного файла и его удаление

Рисунок 17 – Деактивация и удаление созданного файла

Задание 1.2.9. Проверьте доступное количество свободной памяти.

На рисунке 18 представлен ввод команды free для проверки доступного количества свободной памяти

Рисунок 18 – Проверка доступного количества свободной памяти

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

На рисунке 19 представлена установка утилиты memtester

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

На рисунке 20 представлена команда для проведения тестирования 1 Гб свободной памяти с выполнением двух проходов и результат её выполнения

Рисунок 20 – Команда для проведения тестирования 1 Гб свободной памяти с выполнением двух проходов и результат её выполнения

Задание 2.1. Разработка программы построения карты ВАП процесса

На рисунке 21 представлен код реализации программы построения карты ВАП процесса

Рисунок 21 – Код реализации программы для задания 2.1

На рисунке 22 представлена папка, в которой будут храниться файлы для заданий 2.1 и 2.2

Рисунок 22 – Папка с файлами

На рисунке 23 представлена команда для обращения к python-файлу для создания текстового файла, в котором содержится информация о карте виртуальной памяти

Рисунок 23 – Команда, обращающаяся к python-файлу и создающая текстовый файл

На рисунке 24 представлено содержимое папки с созданным текстовым файлом

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

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

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

На рисунке 26 представлена работа программы на примере переименования файла, на рисунке 27 представлен результат её выполнения

Рисунок 26 – Процесс переименования файла

Рисунок 27 – Результат переименования файла

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