slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Организация эффективного менеджера памяти, минимизирующего темп PowerPoint Presentation
Download Presentation
Организация эффективного менеджера памяти, минимизирующего темп

Loading in 2 Seconds...

play fullscreen
1 / 28

Организация эффективного менеджера памяти, минимизирующего темп - PowerPoint PPT Presentation


  • 130 Views
  • Uploaded on

Организация эффективного менеджера памяти, минимизирующего темпоральные ошибки. Милославский А. И. Термины. Крах . Аварийное завершение работы программы. Атака . Возможность вмешаться в ход выполнения программы злоумышленником. UB . Undefined behavior . Непредсказуемое поведение программы.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Организация эффективного менеджера памяти, минимизирующего темп' - bela


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Организация эффективного менеджера памяти, минимизирующего темпоральные ошибки

Милославский А. И.

slide2
Термины
  • Крах. Аварийное завершение работы программы.
  • Атака. Возможность вмешаться в ход выполнения программы злоумышленником.
  • UB. Undefined behavior. Непредсказуемое поведение программы.
  • Утечки памяти.
  • Очистка. Приведение освобожденной памяти в эффективное для повторного выделения состояние.
slide3
Виды темпоральных ошибок
  • 1. Многократное освобождение блока.
    • Нарушение работы системы выделения памяти.
    • Удаление чужих данных.
slide4
Виды темпоральных ошибок
  • 2. Работа с блоком после освобождения его памяти.
    • Чтение стертых данных.
    • Ошибочное чтение чужих данных.
    • Перезапись чужих данных.
slide5
Виды темпоральных ошибок
  • 3. Удаление неверного блока памяти.
  • 4. Утечки памяти.
slide6
Постановка задачи
  • Требования:
    • 1. Умеренные накладные расходы.
    • 2. Неограниченное время работы.
    • 3. Минимизация всех негативных последствий темпоральных ошибок.
    • 4. Возможность выполнять временную работу, связанную с большими затратами вычислительной мощности, в «спокойное время» в фоновом режиме.
    • 5. Ранняя очистка.
    • 6. Работа системы с кодом, не приспособленным для этого специально.
  • Пожелания:
    • 7. Малые накладные расходы.
    • 8. Возможность аппаратной поддержки.
    • 9. Полное исключение темпоральных ошибок.
slide7
Предыдущиеработы
  • [1] DinakarDhurjati, Vikram Adve – “Efficiently Detecting All Dangling Pointer Uses in Production Servers”
  • [2] Wei Xu, Daniel C. DuVarney, R. Sekar - “An Efficient and Backwards-Compatible Transformation to Ensure Memory Safety of C Programs”
  • [3] Harish Patil, Charles Fischer - “Low-cost, Concurrent Checking of Pointer and Array accesses in C Programs”
  • [4] Emery D.Berger, Benjamin G.Zorn – “DieHard: Probabilistic Memory Safety for Unsafe Languages”
slide8
Сбор статистики
  • 1. Стартовая нагрузка
  • 2. Объем использованного виртуального пространства в единицу времени
  • 3. Распределение запросов по размеру запрошенного блока памяти
  • 4. Типичное время жизни блока
  • 5. Чередование выделения и освобождения блоков
slide20
Стартовая нагрузка
  • Пик достигается за несколько секунд
  • Часто выполняется до 50% от общего числа запросов
  • В основном короткоживущие блоки
  • Большое чередование
  • Высокий потенциал фрагментации
slide21
Объем использованного виртуального пространства в единицу времени
  • 2-3Мб в секунду
  • Можно ожидать 30Мб/с
  • Без очистки адресное пространство исчерпается за 100 дней
slide22
Распределение запросов по размеру запрошенного блока памяти
  • Всегда есть типичные размеры блоков
  • Возможна оптимизация за счет отдельных менеджеров памяти
slide23
Типичное время жизни блока
  • В основном очень малое время жизни
  • С учетом 15000 запросов в секунду, высокий риск возникновения проблем из-за ошибок
slide24
Чередование выделения и освобождения блоков
  • Короткоживущие блоки сильно чередуются с долгоживущими
  • Высокая степень фрагментации
  • Корреляция с размером блока
slide25
Среднее число блоков
  • Для EVE Online – около 3 миллионов
  • Повышенная сложность учета блоков
diehard
DieHard
  • OKМногократноеосвобождение блока.
  • 99.5%Работа с блоком послеосвобождения его памяти.
  • 99.5%Удаление неверногоблока памяти.
  • XУтечки памяти.
slide27
Результатыработы
  • Написана платформа для испытаний менеджера памяти на реальных программах
  • Написана система сбора статистики использования памяти в реальных программах
  • Написана программа для анализа собранной статистики
  • Выполнен анализ собранной статистики
  • Проведены исследования различных способов устройства менеджера памяти
  • Рассмотрено влияние факторов, выявленных в статистике, на исследованные методы
  • Собрана литература по вариантам, оптимизациям и различным аспектам реализации консервативных сборщиков мусора
slide28
Дальнейшая работа
  • Придумать другие методы реализации менеджера памяти для лучшего выполнения требований и пожеланий
  • Добавить консервативный сборщик мусора (подчасть 1 пункта)
  • Реализовать менеджер памяти в коде
  • Испытать менеджера памяти на реальных программах с использованием готовой платформы
  • Внедрить готовый менеджер памяти в ОС