Diplom Savin N.I. - на проектор (сероватая).pptx
- Количество слайдов: 10
Разработка структур данных с дисциплиной доступа один пишет – много читают для многопоточного взаимодействия в системах реального времени Студент-дипломник: Савин Н. И. Руководитель: Шаповал А. И.
Цели • Провести обзор: o Существующих подходов к решению проблемы многопоточного взаимодействия • Разработать: o o Структуры данных с дисциплиной доступа один пишет – много читают для многопоточного взаимодействия Алгоритмы для взаимодействия внешних программных модулей с разработанными альтернативными вариантами структур данных • Провести сравнительное тестирование: o Разработанных структур данных и алгоритмов взаимодействия по временным характеристикам 2
Подходы к решению проблемы многопоточного взаимодействия • Блокирующая синхронизация: o Механизм блокировок • Неблокирующая синхронизация: o o Узлы неизменяемого типа Подмена указателей Атомарные операции Специальные методы управления памятью: § Метод использования специальных тэгов § Метод неблокирующего подсчёта ссылок § Метод использования агрегатных счётчиков ссылок § Метод опасных указателей 3
Компоненты разработанной структуры Неблокирующий массив Список выбывших узлов Список опасных указателей (необходим только для метода опасных указателей) 4
Алгоритмы взаимодействия разработанной структуры с внешней программой Метод неблокируюшего подсчёта ссылок Метод опасных указателей 1. Алгоритм записи 2. Алгоритм чтения 3. Алгоритм освобождения памяти 4. Алгоритм добавления опасных указателей 5. Алгоритм удаления опасных указателей 5
Особенности программной реализации o Квалификатор типа volatile o Семейство функций Interlocked 6
Ошибочные ситуации при многопоточном взаимодействии 1) Некорректность данных 2) Обращение к данным, из-под которых уже освобождена память 3) Утечка памяти 7
Тестирование Распределение потоков по ядрам Проблема Ситуация Ядро 1 Ядро 2 1) 1) Пишущий поток без Читающий поток 2) освобождения памяти Два читающих потока 3) 2) Три читающих потоков 4) Пишущий поток без освобождения памяти 5) Пишущий поток 3) Читающий поток 6) Два читающих потока Пишущий поток Три читающих потоков 8
Результаты сравнительного тестирования График зависимости времени выполнения одной операции чтения от количества читающих потоков max value LC 600 Время, ns 700 mean value LC max value HP 500 mean value HP 400 LC – метод неблокирующего подсчёта ссылок 300 200 100 HP – метод опасных указателей 0 0 1 2 3 4 Потоки 5 6 7 9
Заключение 1. Проведен аналитический обзор подходов к решению проблемы многопоточного взаимодействия. 2. Разработаны два варианта структуры данных с дисциплиной доступа один пишет – много читают для многопоточного взаимодействия. 3. Проведено автономное комплексное тестирование разработанных алгоритмов взаимодействия 4. Проведено тестирование реализующих структуры взаимодействия. программных данных и модулей, алгоритмы 5. Проведено сравнение разработанных структур данных и алгоритмов взаимодействия по временным характеристикам. 10
Diplom Savin N.I. - на проектор (сероватая).pptx