🗊 Презентация Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков

Нажмите для полного просмотра!
Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №1 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №2 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №3 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №4 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №5 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №6 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №7 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №8 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №9 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №10 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №11 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №12 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №13 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №14 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №15 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №16 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №17 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №18 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №19 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №20 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №21 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №22 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №23 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №24 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №25 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №26 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №27 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №28 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №29 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №30 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №31 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №32 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №33 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №34 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №35 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №36 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №37 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №38 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №39 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №40 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №41 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №42 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №43 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №44 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №45 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №46 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №47 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №48 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №49 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №50 Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков, слайд №51

Содержание

Вы можете ознакомиться и скачать презентацию на тему Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков. Доклад-сообщение содержит 51 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Параллельное программирование Проблемы многопоточных приложений. Примитивы синхронизации потоков.
Описание слайда:
Параллельное программирование Проблемы многопоточных приложений. Примитивы синхронизации потоков.

Слайд 2


План лекции Проблемы многопоточных приложений Введение Задачи читателей и писателей Задачи спящего парикмахера Не DeadLock Доступ к разделяемым...
Описание слайда:
План лекции Проблемы многопоточных приложений Введение Задачи читателей и писателей Задачи спящего парикмахера Не DeadLock Доступ к разделяемым данным Atomicity-Violation Bugs Order-Violation Bugs DeadLock Примеры MSSQL Примитивы синхронизации Критические секции Мьютексы Семафоры События Обработка таймаутов

Слайд 3


Простое различие Последовательная программа - программа, которая выполняет логическую операцию и когда она заканчивается, выполняет следующую...
Описание слайда:
Простое различие Последовательная программа - программа, которая выполняет логическую операцию и когда она заканчивается, выполняет следующую логическую операцию. Параллельная программа - это набор независимых последовательных операций, выполняющихся одновременно.

Слайд 4


Реализация параллельных вычислений Многопоточная Многопроцессная Распределенная
Описание слайда:
Реализация параллельных вычислений Многопоточная Многопроцессная Распределенная

Слайд 5


Parallelism vs Concurrency
Описание слайда:
Parallelism vs Concurrency

Слайд 6


Parallelism vs Concurrency Сходства Более быстрое выполнение по сравнению с одной очередью Последовательное выполнение в рамках одной очереди Борьба...
Описание слайда:
Parallelism vs Concurrency Сходства Более быстрое выполнение по сравнению с одной очередью Последовательное выполнение в рамках одной очереди Борьба за ресурсы (теряется скорость паралеллизма)

Слайд 7


Parallelism vs Concurrency Отличия В случае Concurrency необходима очередь первый получает любой подарок В случае Parallelism очередь не нужна...
Описание слайда:
Parallelism vs Concurrency Отличия В случае Concurrency необходима очередь первый получает любой подарок В случае Parallelism очередь не нужна (выигрыш по скорости) заранее известно кто какой подарок возьмет

Слайд 8


Parallelism vs Concurrency Лабораторная работа №1 Concurrency ? Parallelism?
Описание слайда:
Parallelism vs Concurrency Лабораторная работа №1 Concurrency ? Parallelism?

Слайд 9


Проблемы Shared resources DeadLocks ABA problem
Описание слайда:
Проблемы Shared resources DeadLocks ABA problem

Слайд 10


Проблемы и примеры SharedResources Банковский счет (неверная запись переменной) Слишком много молока (одновременное выполнение действия) Проблема...
Описание слайда:
Проблемы и примеры SharedResources Банковский счет (неверная запись переменной) Слишком много молока (одновременное выполнение действия) Проблема спящего парикмахера (неверное состояние системы) DeadLocks Проблема обедающих философов (взаимная блокировка, бездействие, простаивание) ABA problem

Слайд 11


Проблемы и примеры SharedResources
Описание слайда:
Проблемы и примеры SharedResources

Слайд 12


Гонки потоков. Банковский счет.
Описание слайда:
Гонки потоков. Банковский счет.

Слайд 13


Гонки потоков. Терминал оператора.
Описание слайда:
Гонки потоков. Терминал оператора.

Слайд 14


Гонки потоков. Одновременное снятие.
Описание слайда:
Гонки потоков. Одновременное снятие.

Слайд 15


Гонки потоков. Длительные операции.
Описание слайда:
Гонки потоков. Длительные операции.

Слайд 16


Гонки потоков. Длительные операции. Нужна блокировка двойного выполнения. Варианты?
Описание слайда:
Гонки потоков. Длительные операции. Нужна блокировка двойного выполнения. Варианты?

Слайд 17


Гонки потоков. Длительные операции.
Описание слайда:
Гонки потоков. Длительные операции.

Слайд 18


Критическая секция Участок исполняемого кода программы, в котором производится доступ к общему ресурсу (данным или устройству), который не должен...
Описание слайда:
Критическая секция Участок исполняемого кода программы, в котором производится доступ к общему ресурсу (данным или устройству), который не должен быть одновременно использован более чем одним потоком исполнения. При нахождении в критической секции двух (или более) процессов возникает состояние «гонки» («состязания»).

Слайд 19


Гонки потоков. Одновременное снятие. Эксклюзивный доступ
Описание слайда:
Гонки потоков. Одновременное снятие. Эксклюзивный доступ

Слайд 20


Гонки потоков. Двойное списание.
Описание слайда:
Гонки потоков. Двойное списание.

Слайд 21


Гонки потоков. Невозможность снятия.
Описание слайда:
Гонки потоков. Невозможность снятия.

Слайд 22


Гонки потоков. Невозможность снятия.
Описание слайда:
Гонки потоков. Невозможность снятия.

Слайд 23


Гонки потоков. Подвисание интерфейса.
Описание слайда:
Гонки потоков. Подвисание интерфейса.

Слайд 24


Гонки потоков. Подвисание интерфейса.
Описание слайда:
Гонки потоков. Подвисание интерфейса.

Слайд 25


Гонки потоков. Трансфер денег.
Описание слайда:
Гонки потоков. Трансфер денег.

Слайд 26


SharedResources. Безопасная запись. Доступ к ресурсу не изменяет ресурс – например операция чтения; Изменение данных является идемпотентным –...
Описание слайда:
SharedResources. Безопасная запись. Доступ к ресурсу не изменяет ресурс – например операция чтения; Изменение данных является идемпотентным – повторные запросы на изменение приводят к одинаковому результату; Изменение данных выполняется только одним объектом – персональный доступ, критическая секция.

Слайд 27


Проблемы и примеры DeadLocks
Описание слайда:
Проблемы и примеры DeadLocks

Слайд 28


Гонки потоков. Взаимная блокировка.
Описание слайда:
Гонки потоков. Взаимная блокировка.

Слайд 29


DeadLock
Описание слайда:
DeadLock

Слайд 30


DeadLock
Описание слайда:
DeadLock

Слайд 31


Проблема обедающих философов. Пять философов Перед каждым тарелка спагетти. Между парой философов вилка. Либо есть двумя вилками Либо размышлять...
Описание слайда:
Проблема обедающих философов. Пять философов Перед каждым тарелка спагетти. Между парой философов вилка. Либо есть двумя вилками Либо размышлять Может посмотреть и взять ближайшую вилку, если она доступна Может положить вилку

Слайд 32


Проблема обедающих философов. Нужен алгоритм действия философов. Варианты?
Описание слайда:
Проблема обедающих философов. Нужен алгоритм действия философов. Варианты?

Слайд 33


Еще проблемы Livelock – потоки работают, но ничего не делают, потому как не могут захватить все необходимые ресурсы. Starvation (голодание) – потоку...
Описание слайда:
Еще проблемы Livelock – потоки работают, но ничего не делают, потому как не могут захватить все необходимые ресурсы. Starvation (голодание) – потоку может совсем не доставаться ресурсов. Lack of fairness – кому-то достается больше ресурсов, кому то меньше. Shared Resources – DeadLocks – ABA - ??

Слайд 34


DeadLocks Соблюдать последовательность входа и выхода в критические секции Использовать библиотечные классы (std, boost) Обрабатывать исключения...
Описание слайда:
DeadLocks Соблюдать последовательность входа и выхода в критические секции Использовать библиотечные классы (std, boost) Обрабатывать исключения Использовать правильную стратегию синхронизации

Слайд 35


Примитивы синхронизации потоков. Простые блокирующие методы Блокирующие конструкции Сигналы Неблокирующие конструкции
Описание слайда:
Примитивы синхронизации потоков. Простые блокирующие методы Блокирующие конструкции Сигналы Неблокирующие конструкции

Слайд 36


Примитивы синхронизации потоков. Простые блокирующие методы
Описание слайда:
Примитивы синхронизации потоков. Простые блокирующие методы

Слайд 37


Простые блокирующие методы Wait Sleep Join
Описание слайда:
Простые блокирующие методы Wait Sleep Join

Слайд 38


Простые блокирующие методы Ожидание может завершиться по следующим причинам: Выполнилось условие ожидания Закончилось время ожидания Поток прерван...
Описание слайда:
Простые блокирующие методы Ожидание может завершиться по следующим причинам: Выполнилось условие ожидания Закончилось время ожидания Поток прерван функцией TerminateThread

Слайд 39


Простые блокирующие методы. Условие ожидания Минусы: Нагрузка на процессор Простои
Описание слайда:
Простые блокирующие методы. Условие ожидания Минусы: Нагрузка на процессор Простои

Слайд 40


Простые блокирующие методы. Таймаут WaitForSingleObject(.. INFINITE) WaitForMultipleObjects(.. INFINITE)
Описание слайда:
Простые блокирующие методы. Таймаут WaitForSingleObject(.. INFINITE) WaitForMultipleObjects(.. INFINITE)

Слайд 41


Примитивы синхронизации потоков. Блокирующие конструкции
Описание слайда:
Примитивы синхронизации потоков. Блокирующие конструкции

Слайд 42


Блокирующие конструкции Семафор — объект, ограничивающий количество потоков, которые могут войти в заданный участок кода. Мьютекс – семафор,...
Описание слайда:
Блокирующие конструкции Семафор — объект, ограничивающий количество потоков, которые могут войти в заданный участок кода. Мьютекс – семафор, разрешающий вход только одному потоку.

Слайд 43


С++ Критическая секция Назначение: предоставление доступа ОДНОМУ потоку Скорость: высокая Область видимости: процесс Пример: CRITICAL_SECTION cs;...
Описание слайда:
С++ Критическая секция Назначение: предоставление доступа ОДНОМУ потоку Скорость: высокая Область видимости: процесс Пример: CRITICAL_SECTION cs; InitializeCriticalSection( &cs); EnterCriticalSection( &cs); // ?? Только один поток LeaveCriticalSection( &cs); DeleteCriticalSection( &cs);

Слайд 44


С++ Мьютекс Именованная критическая секция, доступная для использования в рамках операционной системы. Назначение: предоставление доступа ОДНОМУ...
Описание слайда:
С++ Мьютекс Именованная критическая секция, доступная для использования в рамках операционной системы. Назначение: предоставление доступа ОДНОМУ потоку Скорость: медленнее Область видимости: ОС Пример: HANDLE hMutex; hMutex = CreateMutex( NULL, false, NULL); WaitForSingleObject(hMutex, INFINITE); // ?? Только один поток ReleaseMutex( hMutex); CloseHandle( &cs);

Слайд 45


С++ Семафор Назначение: предоставление доступа НЕСКОЛЬКИМ потокам Скорость: медленнее Область видимости: ОС Пример: HANDLE hSemaphore; hSemaphore =...
Описание слайда:
С++ Семафор Назначение: предоставление доступа НЕСКОЛЬКИМ потокам Скорость: медленнее Область видимости: ОС Пример: HANDLE hSemaphore; hSemaphore = CreateSemaphore(NULL, [CURRENT],[MAX], NULL); WaitForSingleObject(hSemaphore, INFINITE); // ?? Не более MAX потоков ReleaseSemaphore(hSemaphore, 1, NULL);

Слайд 46


Примитивы синхронизации потоков. Сигналы
Описание слайда:
Примитивы синхронизации потоков. Сигналы

Слайд 47


С++ Событие HANDLE hEvent; hEvent = CreateEvent(NULL, false (autoreset event), false, NULL); WaitForSingleObject(hEvent, INFINITE); // ?? один поток...
Описание слайда:
С++ Событие HANDLE hEvent; hEvent = CreateEvent(NULL, false (autoreset event), false, NULL); WaitForSingleObject(hEvent, INFINITE); // ?? один поток за счет autoreset CloseHandle(hEvent);

Слайд 48


Список литературы Википедия Введение Проблемы параллельного программирования Threading in C# Best practices
Описание слайда:
Список литературы Википедия Введение Проблемы параллельного программирования Threading in C# Best practices

Слайд 49


Введение в параллельное программирование
Описание слайда:
Введение в параллельное программирование

Слайд 50


Знаменитый закон Мура I Закон Мура (1965): каждые 2 года количество транзисторов в интегральной микросхеме удваивается. Следствие Хауса:...
Описание слайда:
Знаменитый закон Мура I Закон Мура (1965): каждые 2 года количество транзисторов в интегральной микросхеме удваивается. Следствие Хауса: производительность центрального процессора компьютера удваивается каждые 18 месяцев. Мур, 2007: закономерности перестанут работать вследствие атомарной природы вещества и ограничения скорости света.

Слайд 51


Вопросы
Описание слайда:
Вопросы



Похожие презентации
Mypresentation.ru
Загрузить презентацию