🗊 Презентация Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP

Нажмите для полного просмотра!
Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №1 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №2 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №3 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №4 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №5 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №6 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №7 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №8 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №9 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №10 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №11 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №12 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №13 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №14 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №15 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №16 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №17 Операционные системы. Межпроцессное взаимодействие. Реализация блокировок и синхронизация потоков в OpenMP, слайд №18

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

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


Слайд 1


Операционные системы Межпроцессное взаимодействие
Описание слайда:
Операционные системы Межпроцессное взаимодействие

Слайд 2


Межпроцессное взаимодействие Реализация блокировок и синхронизация потоков в OpenMP
Описание слайда:
Межпроцессное взаимодействие Реализация блокировок и синхронизация потоков в OpenMP

Слайд 3


Блокировки (замки) (1) OpenMP включает набор функций, предназначенные для синхронизации кода с использованием блокировок. OpenMP два типа блокировок:...
Описание слайда:
Блокировки (замки) (1) OpenMP включает набор функций, предназначенные для синхронизации кода с использованием блокировок. OpenMP два типа блокировок: простые блокировки; рекурсивные (nestable) блокировки. Блокировки обоих типов могут находиться в одном из трех состояний: неинициализированном; заблокированном; разблокированном.

Слайд 4


Блокировки (замки) (2) Простые блокировки (omp_lock_t) не могут быть установлены более одного раза, даже тем же потоком. Рекурсивные блокировки...
Описание слайда:
Блокировки (замки) (2) Простые блокировки (omp_lock_t) не могут быть установлены более одного раза, даже тем же потоком. Рекурсивные блокировки (omp_nest_lock_t) идентичны простым с тем исключением, что, когда поток пытается установить уже принадлежащую ему рекурсивную блокировку, он не блокируется. Кроме того, OpenMP ведет учет ссылок на рекурсивные блокировки и следит за тем, сколько раз они были установлены. OpenMP предоставляет подпрограммы, выполняющие операции над этими блокировками. Каждая такая функция имеет два варианта: для простых и для рекурсивных блокировок.

Слайд 5


Функции для работы с блокировками в OpenMP и Win32 Вы можете выполнить над блокировкой пять действий: инициализировать ее, уничтожить , установить...
Описание слайда:
Функции для работы с блокировками в OpenMP и Win32 Вы можете выполнить над блокировкой пять действий: инициализировать ее, уничтожить , установить (захватить), освободить, проверить.

Слайд 6


Пример использования блокировок omp_lock_t lck; omp_init_lock(&lck); … omp_set_lock(&lck); … omp_unset_lock(&lck);
Описание слайда:
Пример использования блокировок omp_lock_t lck; omp_init_lock(&lck); … omp_set_lock(&lck); … omp_unset_lock(&lck);

Слайд 7


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

Слайд 8


Неявная барьерная синхронизация Неявная барьерная синхронизация выполняется также в конце каждого блока #pragma omp for, #pragma omp single и #pragma...
Описание слайда:
Неявная барьерная синхронизация Неявная барьерная синхронизация выполняется также в конце каждого блока #pragma omp for, #pragma omp single и #pragma omp sections. Чтобы отключить неявную барьерную синхронизацию в каком-либо из этих трех блоков разделения работы, укажите раздел nowait.

Слайд 9


Типы явной синхронизации atomic critical barrier master ordered flush
Описание слайда:
Типы явной синхронизации atomic critical barrier master ordered flush

Слайд 10


Атомарные операции Директива atomic может быть применена только для простых выражений, но является наиболее эффективным средством организации...
Описание слайда:
Атомарные операции Директива atomic может быть применена только для простых выражений, но является наиболее эффективным средством организации взаимоисключения. Позволяет выполнить операцию в атомарном режиме (неделимая операция). В этом случае происходит предотвращение прерывания доступа, чтения и записи данных, находящихся в общей памяти, со стороны других потоков. #pragma omp atomic

Слайд 11


Критические секции Для создания критических секций в OpenMP применяется директива #pragma omp critical [имя]. Она имеет такую же семантику, что и...
Описание слайда:
Критические секции Для создания критических секций в OpenMP применяется директива #pragma omp critical [имя]. Она имеет такую же семантику, что и критическая секция Win32. Вы можете использовать именованную критическую секцию, и тогда доступ к блоку кода является взаимоисключающим только для других критических секций с тем же именем (это справедливо для всего процесса). Если имя не указано, директива ставится в соответствие некоему имени, выбираемому системой. Доступ ко всем неименованным критическим секциям является взаимоисключающим. #pragma omp critical [ name ]

Слайд 12


Явная барьерная синхронизация Для включения в код явной барьерной синхронизации используйте директиву barrier. #pragma omp barrier
Описание слайда:
Явная барьерная синхронизация Для включения в код явной барьерной синхронизации используйте директиву barrier. #pragma omp barrier

Слайд 13


Директива master В ряде случаев требуется, чтобы блок кода был выполнен основным потоком. В этом случае применяется директива #pragma omp master. В...
Описание слайда:
Директива master В ряде случаев требуется, чтобы блок кода был выполнен основным потоком. В этом случае применяется директива #pragma omp master. В отличие от директивы single при входе в блок master и выходе из него нет никакого неявного барьера.

Слайд 14


Упорядочивание итерация с помощью ordered Директивы ordered определяют блок внутри тела цикла, который должен выполняться в том порядке, в котором...
Описание слайда:
Упорядочивание итерация с помощью ordered Директивы ordered определяют блок внутри тела цикла, который должен выполняться в том порядке, в котором итерации идут в последовательном цикле. #pragma omp ordered

Слайд 15


Применение ordered Неправильно: #pragma omp parallel for ordered for (int i = 0; i
Описание слайда:
Применение ordered Неправильно: #pragma omp parallel for ordered for (int i = 0; i

Слайд 16


Явный барьер памяти В OpenMP реализована слабая модель памяти. Директива flush позволяет определить точку синхронизации, в которой системой должно...
Описание слайда:
Явный барьер памяти В OpenMP реализована слабая модель памяти. Директива flush позволяет определить точку синхронизации, в которой системой должно быть обеспечено единое для всех потоков состояние памяти (т.е. если потоком какое-либо значение извлекалось из памяти для модификации, измененное значение обязательно должно быть записано в общую память). #pragma omp flush [(list)] Директива содержит список list с перечнем переменных, для которых выполняется синхронизация. При отсутствии списка синхронизация выполняется для всех переменных потока.

Слайд 17


Неявный барьер памяти В директиве barrier. При входе и выходе из параллельной секции директив parallel, critical, ordered. При выходе из параллельной...
Описание слайда:
Неявный барьер памяти В директиве barrier. При входе и выходе из параллельной секции директив parallel, critical, ordered. При выходе из параллельной секции директив for, sections, single. При входе и выходе из параллельной секции директив parallel for, parallel sections.

Слайд 18


Отказ от неявного барьера памяти При входе в параллельную секцию директивы for. При входе и выходе из секции директивы master. При входе в...
Описание слайда:
Отказ от неявного барьера памяти При входе в параллельную секцию директивы for. При входе и выходе из секции директивы master. При входе в параллельную секцию директивы sections. При входе в секцию директивы single. При выходе из секции директив for, single или sections, если к директиве применено выражение nowait.



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