Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
51 слайд
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
1.85 MB
Просмотров:
71
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Параллельное программирование](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img0.jpg)
Содержание слайда: Параллельное программирование
Проблемы многопоточных приложений.
Примитивы синхронизации потоков.
№2 слайд![План лекции Проблемы](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img1.jpg)
Содержание слайда: План лекции
Проблемы многопоточных приложений
Введение
Задачи читателей и писателей
Задачи спящего парикмахера
Не DeadLock
Доступ к разделяемым данным
Atomicity-Violation Bugs
Order-Violation Bugs
DeadLock
Примеры MSSQL
Примитивы синхронизации
Критические секции
Мьютексы
Семафоры
События
Обработка таймаутов
№3 слайд![Простое различие](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img2.jpg)
Содержание слайда: Простое различие
Последовательная программа - программа, которая выполняет логическую операцию и когда она заканчивается, выполняет следующую логическую операцию.
Параллельная программа - это набор независимых последовательных операций, выполняющихся одновременно.
№4 слайд![Реализация параллельных](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img3.jpg)
Содержание слайда: Реализация параллельных вычислений
Многопоточная
Многопроцессная
Распределенная
№5 слайд![Parallelism vs Concurrency](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img4.jpg)
Содержание слайда: Parallelism vs Concurrency
№6 слайд![Parallelism vs Concurrency](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img5.jpg)
Содержание слайда: Parallelism vs Concurrency
Сходства
Более быстрое выполнение по сравнению с одной очередью
Последовательное выполнение в рамках одной очереди
Борьба за ресурсы
(теряется скорость паралеллизма)
№7 слайд![Parallelism vs Concurrency](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img6.jpg)
Содержание слайда: Parallelism vs Concurrency
Отличия
В случае Concurrency
необходима очередь
первый получает любой подарок
В случае Parallelism
очередь не нужна (выигрыш по скорости)
заранее известно кто какой подарок возьмет
№8 слайд![Parallelism vs Concurrency](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img7.jpg)
Содержание слайда: Parallelism vs Concurrency
Лабораторная работа №1
Concurrency ?
Parallelism?
№9 слайд![Проблемы Shared resources](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img8.jpg)
Содержание слайда: Проблемы
Shared resources
DeadLocks
ABA problem
№10 слайд![Проблемы и примеры](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img9.jpg)
Содержание слайда: Проблемы и примеры
SharedResources
Банковский счет (неверная запись переменной)
Слишком много молока (одновременное выполнение действия)
Проблема спящего парикмахера (неверное состояние системы)
DeadLocks
Проблема обедающих философов (взаимная блокировка, бездействие, простаивание)
ABA problem
№11 слайд![Проблемы и примеры](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img10.jpg)
Содержание слайда: Проблемы и примеры
SharedResources
№12 слайд![Гонки потоков. Банковский](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img11.jpg)
Содержание слайда: Гонки потоков.
Банковский счет.
№13 слайд![Гонки потоков. Терминал](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img12.jpg)
Содержание слайда: Гонки потоков.
Терминал оператора.
№14 слайд![Гонки потоков. Одновременное](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img13.jpg)
Содержание слайда: Гонки потоков.
Одновременное снятие.
№15 слайд![Гонки потоков. Длительные](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img14.jpg)
Содержание слайда: Гонки потоков.
Длительные операции.
№16 слайд![Гонки потоков. Длительные](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img15.jpg)
Содержание слайда: Гонки потоков.
Длительные операции.
Нужна блокировка двойного выполнения.
Варианты?
№17 слайд![Гонки потоков. Длительные](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img16.jpg)
Содержание слайда: Гонки потоков.
Длительные операции.
№18 слайд![Критическая секция Участок](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img17.jpg)
Содержание слайда: Критическая секция
Участок исполняемого кода программы, в котором производится доступ к общему ресурсу (данным или устройству), который не должен быть одновременно использован более чем одним потоком исполнения.
При нахождении в критической секции двух (или более) процессов возникает состояние «гонки» («состязания»).
№19 слайд![Гонки потоков. Одновременное](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img18.jpg)
Содержание слайда: Гонки потоков.
Одновременное снятие.
Эксклюзивный
доступ
№20 слайд![Гонки потоков. Двойное](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img19.jpg)
Содержание слайда: Гонки потоков.
Двойное списание.
№21 слайд![Гонки потоков. Невозможность](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img20.jpg)
Содержание слайда: Гонки потоков.
Невозможность снятия.
№22 слайд![Гонки потоков. Невозможность](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img21.jpg)
Содержание слайда: Гонки потоков.
Невозможность снятия.
№23 слайд![Гонки потоков. Подвисание](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img22.jpg)
Содержание слайда: Гонки потоков.
Подвисание интерфейса.
№24 слайд![Гонки потоков. Подвисание](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img23.jpg)
Содержание слайда: Гонки потоков.
Подвисание интерфейса.
№25 слайд![Гонки потоков. Трансфер денег.](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img24.jpg)
Содержание слайда: Гонки потоков.
Трансфер денег.
№26 слайд![SharedResources. Безопасная](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img25.jpg)
Содержание слайда: SharedResources.
Безопасная запись.
Доступ к ресурсу не изменяет ресурс – например операция чтения;
Изменение данных является идемпотентным – повторные запросы на изменение приводят к одинаковому результату;
Изменение данных выполняется только одним объектом – персональный доступ, критическая секция.
№27 слайд![Проблемы и примеры DeadLocks](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img26.jpg)
Содержание слайда: Проблемы и примеры
DeadLocks
№28 слайд![Гонки потоков. Взаимная](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img27.jpg)
Содержание слайда: Гонки потоков.
Взаимная блокировка.
№29 слайд![DeadLock](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img28.jpg)
Содержание слайда: DeadLock
№30 слайд![DeadLock](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img29.jpg)
Содержание слайда: DeadLock
№31 слайд![Проблема обедающих философов.](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img30.jpg)
Содержание слайда: Проблема обедающих философов.
Пять философов
Перед каждым тарелка спагетти.
Между парой философов вилка.
Либо есть двумя вилками
Либо размышлять
Может посмотреть и взять ближайшую вилку, если она доступна
Может положить вилку
№32 слайд![Проблема обедающих философов.](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img31.jpg)
Содержание слайда: Проблема обедающих философов.
Нужен алгоритм действия философов.
Варианты?
№33 слайд![Еще проблемы Livelock потоки](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img32.jpg)
Содержание слайда: Еще проблемы
Livelock – потоки работают, но ничего не делают, потому как не могут захватить все необходимые ресурсы.
Starvation (голодание) – потоку может совсем не доставаться ресурсов.
Lack of fairness – кому-то достается больше ресурсов, кому то меньше.
Shared Resources –
DeadLocks –
ABA - ??
№34 слайд![DeadLocks Соблюдать](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img33.jpg)
Содержание слайда: DeadLocks
Соблюдать последовательность входа и выхода в критические секции
Использовать библиотечные классы (std, boost)
Обрабатывать исключения
Использовать правильную стратегию синхронизации
№35 слайд![Примитивы синхронизации](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img34.jpg)
Содержание слайда: Примитивы синхронизации потоков.
Простые блокирующие методы
Блокирующие конструкции
Сигналы
Неблокирующие конструкции
№36 слайд![Примитивы синхронизации](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img35.jpg)
Содержание слайда: Примитивы синхронизации потоков.
Простые блокирующие методы
№37 слайд![Простые блокирующие методы](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img36.jpg)
Содержание слайда: Простые блокирующие методы
Wait
Sleep
Join
№38 слайд![Простые блокирующие методы](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img37.jpg)
Содержание слайда: Простые блокирующие методы
Ожидание может завершиться по следующим причинам:
Выполнилось условие ожидания
Закончилось время ожидания
Поток прерван функцией TerminateThread
№39 слайд![Простые блокирующие методы.](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img38.jpg)
Содержание слайда: Простые блокирующие методы.
Условие ожидания
Минусы:
Нагрузка на процессор
Простои
№40 слайд![Простые блокирующие методы.](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img39.jpg)
Содержание слайда: Простые блокирующие методы.
Таймаут
WaitForSingleObject(.. INFINITE)
WaitForMultipleObjects(.. INFINITE)
№41 слайд![Примитивы синхронизации](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img40.jpg)
Содержание слайда: Примитивы синхронизации потоков.
Блокирующие конструкции
№42 слайд![Блокирующие конструкции](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img41.jpg)
Содержание слайда: Блокирующие конструкции
Семафор — объект, ограничивающий количество потоков, которые могут войти в заданный участок кода.
Мьютекс – семафор, разрешающий вход только одному потоку.
№43 слайд![С Критическая секция](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img42.jpg)
Содержание слайда: С++ Критическая секция
Назначение: предоставление доступа ОДНОМУ потоку
Скорость: высокая
Область видимости: процесс
Пример:
CRITICAL_SECTION cs;
InitializeCriticalSection( &cs);
EnterCriticalSection( &cs);
// ?? Только один поток
LeaveCriticalSection( &cs);
DeleteCriticalSection( &cs);
№44 слайд![С Мьютекс Именованная](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img43.jpg)
Содержание слайда: С++ Мьютекс
Именованная критическая секция, доступная для использования в рамках операционной системы.
Назначение: предоставление доступа ОДНОМУ потоку
Скорость: медленнее
Область видимости: ОС
Пример:
HANDLE hMutex;
hMutex = CreateMutex( NULL, false, NULL);
WaitForSingleObject(hMutex, INFINITE);
// ?? Только один поток
ReleaseMutex( hMutex);
CloseHandle( &cs);
№45 слайд![С Семафор Назначение](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img44.jpg)
Содержание слайда: С++ Семафор
Назначение: предоставление доступа НЕСКОЛЬКИМ потокам
Скорость: медленнее
Область видимости: ОС
Пример:
HANDLE hSemaphore;
hSemaphore = CreateSemaphore(NULL, [CURRENT],[MAX], NULL);
WaitForSingleObject(hSemaphore, INFINITE);
// ?? Не более MAX потоков
ReleaseSemaphore(hSemaphore, 1, NULL);
№46 слайд![Примитивы синхронизации](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img45.jpg)
Содержание слайда: Примитивы синхронизации потоков.
Сигналы
№47 слайд![С Событие HANDLE hEvent](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img46.jpg)
Содержание слайда: С++ Событие
HANDLE hEvent;
hEvent = CreateEvent(NULL, false (autoreset event), false, NULL);
WaitForSingleObject(hEvent, INFINITE);
// ?? один поток за счет autoreset
CloseHandle(hEvent);
№48 слайд![Список литературы Википедия](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img47.jpg)
Содержание слайда: Список литературы
Википедия
Введение
https://habrahabr.ru/company/piter/blog/274569
Проблемы параллельного программирования
https://ru.wikipedia.org/wiki/Проблема_спящего_парикмахера
https://ru.wikipedia.org/wiki/Проблема_обедающих_философов
Threading in C#
http://www.albahari.com/threading
Best practices
https://msdn.microsoft.com/en-us/library/ff601929.aspx
https://msdn.microsoft.com/en-us/library/1c9txz50(v=vs.110).aspx
№49 слайд![Введение в параллельное](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img48.jpg)
Содержание слайда: Введение в параллельное программирование
№50 слайд![Знаменитый закон Мура I Закон](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img49.jpg)
Содержание слайда: Знаменитый закон Мура
I Закон Мура (1965): каждые 2 года количество транзисторов в интегральной микросхеме удваивается.
Следствие Хауса: производительность центрального процессора компьютера удваивается каждые 18 месяцев.
Мур, 2007: закономерности перестанут работать вследствие атомарной природы вещества и ограничения скорости света.
№51 слайд![Вопросы](/documents_6/90ac15eb3a65904f3d984d145b3433bb/img50.jpg)
Содержание слайда: Вопросы