Файл: Лабораторная работа 5 Управление памятью в oc linux Выполнил студент группы M32111 Михайличенко Александр Олегович.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.12.2023

Просмотров: 243

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования Российской ФедерацииФедеральное государственное автономное образовательное учреждение высшего образования«Национальный исследовательский университет ИТМО»Факультет информационных технологий и программированияЛабораторная работа №5Управление памятью в OCLinuxВыполнил студент группы № M32111Михайличенко Александр ОлеговичПодпись: Санкт-Петербург2022Ход работыДанные о конфигурации ОС:

  • Общий объем оперативной памяти: 1024 Мб

  • Объем раздела подкачки: 820 Мб

  • Размер страницы виртуальной памяти: 4 Кб

  • Объем свободной физической памяти в ненагруженной системе: 615 Мб

  • Объем свободного пространства в разделе подкачки в ненагруженной системе: 820 Мб
Эксперимент №1Подготовительный этапСоздание скрипта mem.bash:Этап №1Запустив созданный скрипт mem.bash и дождавшись аварийной остановки, получил в консоли сообщение:Значения в файле report.log:Использовав две консоли, запустил на одной мониторинг командой top, а на другой – скрипт, после чего получил в файле data список строк с информацией о процессе и свободной памяти:Последние записи о скрипте в системном журнале:Файл report.log:
Графики изменения значений памяти:Этап №2Создал копию скрипта mem.bash – mem2.bash, настроив на запись в файл report2.log:Вновь использовав две консоли, запустил на одной мониторинг командой top, а на другой – скрипты, после чего получил в файле data и data2 список строк с информацией о процессе и свободной памяти:Последние записи о скрипте в системном журнале:Файл report.log:Файл report2.log:Графики изменения значений памяти:Выводы: при достижении «критического» значения физической памяти (63-67 МБ) происходит переход на память подкачки: на графике хорошо видно, что, как только график физической памяти начинает убывать сильно медленнее, происходит резкий скачок (резкое убывание) значения swap и по достижении 30-33 МБ процесс завершается (когда суммарное количество свободной памяти колеблется в районе 100 МБ).При запуске же двух скриптов, какое-то время они работают вдвоем и их графики практически совпадают, но затем (примерно на 12 секунде графика 1) второй процесс умирает, происходит резкий скачок свободной физической памяти (mem1 идет вверх), swap какое-то время остается без изменений, т.к. есть возможность брать память, после чего, когда mem1 достигает значений около 70 (вновь первый случай), swap1 убывает и вновь при суммарном значении около 100МБ и второй (первый по счету) процесс завершает работу.Эксперимент №2Подготовительный этапСоздание скрипта newmem.bash (копирование mem.bash и небольшое его изменение):

Основной этапСоздание скрипта, который будет K раз запускать newmem.bash с переданным числом N:В качестве первого значения N взял величину, в 10 раз меньшую чем размер массива, при котором происходила аварийная остановка в прошлом эксперименте: т.к. таким значением было 18.000.000, то N = 1.800.000; K = 10:После этого изменил значение K на 30 (N = 1.800.000):Это лишь один из множества тех, кто отвалилсяПри N = 500000 программа отработала без ошибок:При N = 700000 около 3 процессов обвалилось.При N = 640000 отработало без ошибок:При N = 645000 один процесс завершился, а вот при N = 644000 все отработало без проблем:Таким образом, N = 644000 и есть максимально возможное значение N.Выводы: от того, насколько большим будет значение N (условие выхода из бесконечного цикла) зависит, насколько много скриптов одновременно мы можем запустить, чтобы при этом каждый из них не закончил свою работу с ошибкой. Естественно, это значение зависит от конфигурации машины: чем больше памяти мы можем выделить вообще, тем большее значение N можем подобрать.