Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Многопоточное программирование

Содержание

Процессы и потокиПроцессАдресное пространствоГлобальные данныеКучаПотокиСтекСтекКодМного документации по программированию и т.п.http://linux.yaroslavl.ru/docs/http://www.rushelp.com/http://www.helloworld.ru/Есть кой-чего про ассемблер,архитектуруhttp://www.kolasc.net.ru/cdo/index.htmlЭнциклопедия по всему подряд, включая общую информацию о микропроцессорахhttp://www.campusprogram.com/reference/en/wikipedia/x/x8/x86.htmlКниги по математикеhttp://www.mccme.ru/free-books/Неготовый сайт по ASM 386 - P4http://sasm.narod.ru/Форум по процессорам AMD-INTEL 32-64 http://num-meth.srcc.msu.ru/Кодhttp://num-meth.srcc.msu.ru/Parallel Programming Systems:
Многопоточное программированиеКиреев С.Отдел МО ВВС ИВМиМГ Процессы и потокиПроцессАдресное пространствоГлобальные данныеКучаПотокиСтекСтекКодМного документации по программированию и т.п.http://linux.yaroslavl.ru/docs/http://www.rushelp.com/http://www.helloworld.ru/Есть кой-чего про Процессы и потокиПреимущества потоков:Быстрое переключение между потокамиПростая организация взаимодействия – общая памятьНедостатки Разработка многопоточной программыПотоки:Решают задачу над общими даннымиВзаимодействуют через общую памятьУпорядочивают взаимодействие путем Средства создания многопоточных программБиблиотеки потоковPosix ThreadsWindows Threads…OpenMPРаспараллеливающие компиляторы Разработка многопоточной программы(WinAPI, Pthreads)Все потоки описываются в виде отдельных функцийПервичный поток выполняет Управление потокамиСоздание потокаЗавершение потокаПриостановка потокаВозобновление потокаПереключение между потокамиНе завершайте поток вручную, пусть завершится функция потока. Способы передачи данных между потокамиПередача числа через параметр функции потокаПередача указателя на Синхронизация потоковНеобходима при:Совместном использовании ресурса (атомарные операции)Уведомлении потоков о некотором событии Средства синхронизации потоков Средства синхронизации потоков в WindowsВ пользовательском режиме:Interlocked-функцииКритические секцииС использованием объектов ядра:Процессы, потокиСобытияСемафорыМьютексыТаймеры Interlocked-функцииФункции атомарного доступа к переменным:Присваивание целого числаПрисваивание указателяУсловное присваивание целого числаУсловное присваивание Критические секцииИспользуются для взаимоисключающего доступа к ресурсуОбеспечивают атомарное исполнение участка кодаОперации:Вход в Объекты ядраОбъект может быть «занят» или «свободен»Операции:Создание объекта ядраПолучение доступа к существующему объекту ядраУдаление объекта ядра… Синхронизация с помощью объектов ядраСинхронизация осуществляется с помощью wait-функций, ожидающих освобождения одного или нескольких объектов:WaitForSingleObjectWaitForMultipleObjects… СобытияИспользуются для уведомления потоков о некотором событииОперацииПеревести в свободное состояниеПеревести в занятое СемафорыИспользуются для учета некоторого числа ресурсовСодержат счетчик доступных ресурсов (i=0…max)ОперацииЗанять ресурс: i=i-1 (wait-функция)Освободить ресурс: i=i+1 МьютексыИспользуются для взаимоисключающего доступа к ресурсуОперации:Занять мьютекс (wait-функция)Освободить мьютекс ТаймерыИспользуются для уведомления о наступлении определенного времениОперацииУстановить таймерЖдать срабатывания таймераСбросить таймер
Слайды презентации

Слайд 2
Процессы и потоки
Процесс
Адресное пространство
Глобальные данные
Куча
Потоки

Стек

Стек
Код
Много документации по программированию

Процессы и потокиПроцессАдресное пространствоГлобальные данныеКучаПотокиСтекСтекКодМного документации по программированию и т.п.http://linux.yaroslavl.ru/docs/http://www.rushelp.com/http://www.helloworld.ru/Есть кой-чего

и т.п.
http://linux.yaroslavl.ru/docs/
http://www.rushelp.com/
http://www.helloworld.ru/
Есть кой-чего про ассемблер,архитектуру
http://www.kolasc.net.ru/cdo/index.html
Энциклопедия по всему подряд, включая

общую информацию о микропроцессорах
http://www.campusprogram.com/reference/en/wikipedia/x/x8/x86.html
Книги по математике
http://www.mccme.ru/free-books/
Неготовый сайт по ASM 386 - P4
http://sasm.narod.ru/
Форум по процессорам AMD-INTEL 32-64 http://num-meth.srcc.msu.ru/

Код
http://num-meth.srcc.msu.ru/
Parallel Programming Systems: COPS, Enterprise, ...
http://www.cs.ualberta.ca/~systems/
Fortran reference
http://h18009.www1.hp.com/fortran/docs/lrm/dflrm.htm#book-toc
Compaq C Compiler Programmer's Guide
ftp://ftp.compaq.com/pub/products/C-CXX/linux/compaq_c/docs/ccc/Programmers_Guide/TITLE.HTM
Вообще по Альфе много чего:
ftp://ftp.compaq.com/pub/products
Научная литература в Интернет
http://www.scintific.narod.ru/literature.htm
http://psi-logic.narod.ru
http://www.lowlevel.ru/


CPU


CPU


Память


CPU


Память

1
2
1
3
2
1
3

3
3
2
2
1
3
2

1
2
3
2
1
3
2


Слайд 3 Процессы и потоки
Преимущества потоков:
Быстрое переключение между потоками
Простая организация

Процессы и потокиПреимущества потоков:Быстрое переключение между потокамиПростая организация взаимодействия – общая

взаимодействия – общая память
Недостатки потоков:
Некорректное использование данных одним потоком

отражается на всех других
Необходимость в синхронизации при доступе к общим данным
Используемые библиотеки должны поддерживать многопоточность


Слайд 4 Разработка многопоточной программы
Потоки:
Решают задачу над общими данными
Взаимодействуют через

Разработка многопоточной программыПотоки:Решают задачу над общими даннымиВзаимодействуют через общую памятьУпорядочивают взаимодействие

общую память
Упорядочивают взаимодействие путем синхронизации

Ключ к созданию корректной параллельной

программы – правильная синхронизация процессов и потоков.

Слайд 5 Средства создания многопоточных программ
Библиотеки потоков
Posix Threads
Windows Threads

OpenMP
Распараллеливающие компиляторы

Средства создания многопоточных программБиблиотеки потоковPosix ThreadsWindows Threads…OpenMPРаспараллеливающие компиляторы

Слайд 6 Разработка многопоточной программы
(WinAPI, Pthreads)

Все потоки описываются в виде

Разработка многопоточной программы(WinAPI, Pthreads)Все потоки описываются в виде отдельных функцийПервичный поток

отдельных функций
Первичный поток выполняет функцию main
Новые потоки могут запускаться

выполняющимися потоками

Слайд 7 Управление потоками
Создание потока
Завершение потока
Приостановка потока
Возобновление потока
Переключение между потоками

Не

Управление потокамиСоздание потокаЗавершение потокаПриостановка потокаВозобновление потокаПереключение между потокамиНе завершайте поток вручную, пусть завершится функция потока.

завершайте поток вручную, пусть завершится функция потока.


Слайд 8 Способы передачи данных между потоками
Передача числа через параметр

Способы передачи данных между потокамиПередача числа через параметр функции потокаПередача указателя

функции потока
Передача указателя на объект через параметр функции потока
Работа

с глобальными переменными

Слайд 9 Синхронизация потоков
Необходима при:
Совместном использовании ресурса (атомарные операции)
Уведомлении потоков

Синхронизация потоковНеобходима при:Совместном использовании ресурса (атомарные операции)Уведомлении потоков о некотором событии

о некотором событии


Слайд 10 Средства синхронизации потоков

Средства синхронизации потоков

Слайд 11 Средства синхронизации потоков в Windows
В пользовательском режиме:
Interlocked-функции
Критические секции
С

Средства синхронизации потоков в WindowsВ пользовательском режиме:Interlocked-функцииКритические секцииС использованием объектов ядра:Процессы, потокиСобытияСемафорыМьютексыТаймеры

использованием объектов ядра:
Процессы, потоки
События
Семафоры
Мьютексы
Таймеры


Слайд 12 Interlocked-функции
Функции атомарного доступа к переменным:
Присваивание целого числа
Присваивание указателя
Условное

Interlocked-функцииФункции атомарного доступа к переменным:Присваивание целого числаПрисваивание указателяУсловное присваивание целого числаУсловное

присваивание целого числа
Условное присваивание указателя
Прибавление целого числа
Инкремент целого числа
Декремент

целого числа

Слайд 13 Критические секции
Используются для взаимоисключающего доступа к ресурсу
Обеспечивают атомарное

Критические секцииИспользуются для взаимоисключающего доступа к ресурсуОбеспечивают атомарное исполнение участка кодаОперации:Вход

исполнение участка кода
Операции:
Вход в критическую секцию (ожидание)
Выход из критической

секции
В начале ожидания используют спин-блокировку
При длительном ожидании используют мьютекс


Слайд 14 Объекты ядра
Объект может быть «занят» или «свободен»
Операции:
Создание объекта

Объекты ядраОбъект может быть «занят» или «свободен»Операции:Создание объекта ядраПолучение доступа к существующему объекту ядраУдаление объекта ядра…

ядра
Получение доступа к существующему объекту ядра
Удаление объекта ядра


Слайд 15 Синхронизация с помощью объектов ядра
Синхронизация осуществляется с помощью

Синхронизация с помощью объектов ядраСинхронизация осуществляется с помощью wait-функций, ожидающих освобождения одного или нескольких объектов:WaitForSingleObjectWaitForMultipleObjects…

wait-функций, ожидающих освобождения одного или нескольких объектов:
WaitForSingleObject
WaitForMultipleObjects


Слайд 16 События
Используются для уведомления потоков о некотором событии
Операции
Перевести в

СобытияИспользуются для уведомления потоков о некотором событииОперацииПеревести в свободное состояниеПеревести в

свободное состояние
Перевести в занятое состояние
Ждать освобождения (wait-функция)
Типы событий
С автосбросом:

просыпается 1 ожидающий поток
Со сбросом вручную: просыпаются все ожидающие потоки

Слайд 17 Семафоры
Используются для учета некоторого числа ресурсов
Содержат счетчик доступных

СемафорыИспользуются для учета некоторого числа ресурсовСодержат счетчик доступных ресурсов (i=0…max)ОперацииЗанять ресурс: i=i-1 (wait-функция)Освободить ресурс: i=i+1

ресурсов (i=0…max)
Операции
Занять ресурс: i=i-1 (wait-функция)
Освободить ресурс: i=i+1


Слайд 18 Мьютексы
Используются для взаимоисключающего доступа к ресурсу
Операции:
Занять мьютекс (wait-функция)
Освободить

МьютексыИспользуются для взаимоисключающего доступа к ресурсуОперации:Занять мьютекс (wait-функция)Освободить мьютекс

мьютекс


  • Имя файла: mnogopotochnoe-programmirovanie.pptx
  • Количество просмотров: 142
  • Количество скачиваний: 0