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

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков абсолютно бесплатно. Урок-презентация на эту тему содержит всего 51 слайд. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Параллельное программирование. Проблемы многопоточных приложений. Примитивы синхронизации потоков



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    51 слайд
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    1.85 MB
  • Просмотров:
    71
  • Скачиваний:
    0
  • Автор:
    неизвестен



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

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

№2 слайд
План лекции Проблемы
Содержание слайда: План лекции Проблемы многопоточных приложений Введение Задачи читателей и писателей Задачи спящего парикмахера Не 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
Содержание слайда: Parallelism vs Concurrency Отличия В случае Concurrency необходима очередь первый получает любой подарок В случае Parallelism очередь не нужна (выигрыш по скорости) заранее известно кто какой подарок возьмет

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

№9 слайд
Проблемы Shared resources
Содержание слайда: Проблемы Shared resources DeadLocks ABA problem

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

№11 слайд
Проблемы и примеры
Содержание слайда: Проблемы и примеры 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 потоки
Содержание слайда: Еще проблемы Livelock – потоки работают, но ничего не делают, потому как не могут захватить все необходимые ресурсы. Starvation (голодание) – потоку может совсем не доставаться ресурсов. Lack of fairness – кому-то достается больше ресурсов, кому то меньше. Shared Resources – DeadLocks – ABA - ??

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

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

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

№37 слайд
Простые блокирующие методы
Содержание слайда: Простые блокирующие методы Wait Sleep Join

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

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

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

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

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

№43 слайд
С Критическая секция
Содержание слайда: С++ Критическая секция Назначение: предоставление доступа ОДНОМУ потоку Скорость: высокая Область видимости: процесс Пример: 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 = CreateSemaphore(NULL, [CURRENT],[MAX], NULL); WaitForSingleObject(hSemaphore, INFINITE); // ?? Не более MAX потоков ReleaseSemaphore(hSemaphore, 1, NULL);

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

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

№48 слайд
Список литературы Википедия
Содержание слайда: Список литературы Википедия Введение 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 слайд
Введение в параллельное
Содержание слайда: Введение в параллельное программирование

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

№51 слайд
Вопросы
Содержание слайда: Вопросы

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