Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРВ complete edition епта.docx
Скачиваний:
17
Добавлен:
24.09.2019
Размер:
488.03 Кб
Скачать

180. Для чего служат примитив синхронизации Барьер?

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

На практике барьеры используются для сбора результатов выполнения некоторой распараллеленной задачи. В качестве примера можно рассмотреть задачу умножения матриц. При распараллеливании данной задачи каждому потоку будет поручено умножения определенных строк на определенные столбцы. В точке синхронизации же полученные результаты собираются из всех потоков, и строится результирующая матрица.

Барьер предназначен для ожидания условия несколькими заданными потоками точки синхронизации, достигнув этой точки, потоки освобождаются "одновременно", и с этой точки продолжают своё независимое развитие.

181. Какие средства синхронизации, предоставляемые qnx Neutrino,вам известны?

Блокировки взаимного исключения (mutex). Наследование приоритетов и

инверсия приоритетов. Условные переменные (condvar). Барьеры. Ждущие

блокировки. Блокировки по чтению/записи. Семафоры (semaphores).

Синхронизация с помощью алгоритма планирования и атомарных операций.

182. Какие средства обмена данными между потоками в пределах одного процесса и разных процессов вам известны?

Набор средств межпроцессного обмена данными в большинстве современных ОС выглядит следующим образом:

  •  конвейеры (pipes); rj именованные конвейеры (named pipes);

  •   очереди сообщений (message queues); 

  •  разделяемая память (shared memory).

183. С помощью каких событий периодический posix-таймер может уведомлять заинтересованный поток о срабатывании?

- Извещение сигналом

- Извещение импульсом

- Извещение с помощью прерывания

- Извещение путем разблокирования

Все POSIX функции, связанные с отработкой заданных интер-

валов времени, используют семантику “не раньше, чем”. Это значит,

что таймер гарантированно выдержит задержку не менее заданного

интервала. Никаких требований на верхнюю границу фактической

длительности отрабатываемой таймером задержки POSIX не устанав-

ливает.

TimerAlarm() B QNX6 нс + + + + -

Периодически посылает вызы-

вающему потоку SIGALRM .

Задаётся базис часов.

timer_settime() A

POSIX 1003.1

(Realtime ext.)

нс + + + + +

TimerSettime() B QNX6 нс + + + + +

При срабатывании доставляют

импульсы и др. события процес-

су или потоку

setitimer() C Standard Unix мкс + + + + -

При срабатывании таймера дос-

тавляется сигнал SIGALRM

184. Какие требования накладывает стандарт posix на интервал срабатывания однократного таймера?

Значения

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

вального таймера, если заданное время срабатывания требует более мелкой дискретизации, чем поддерживает конкретная реализация, действительное значение времени срабатывания должно быть округлено до ближайшего большего поддерживаемого значения