Барьеры

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


На рис. 2.18, а показаны четыре процесса, приближающихся к барьеру. Это означает, что они еще заняты вычислениями и не достигли завершения текущей фазы. Через некоторое время первый процесс заканчивает все вычисления, необходимые для завершения первой фазы работы. Он выполняет примитив barrier, вызывая обычно библиотечную процедуру. Затем этот процесс приостанавливается. Чуть позже первую фазу своей работы завершают второй и третий процессы, которые также выполняют примитив barrier. Эта ситуация показана на рис. 2.18, б. И наконец, как показано на рис. 2.18, в, когда последний процесс, C, достигает барьера, все процессы освобождаются.


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

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

Начиная с текущих значений, к матрице для получения ее следующей версии применяется преобразование, соответствующее, к примеру, законам термодинамики, чтобы посмотреть все температурные показания через время ДГ. Затем процесс повторяется снова и снова, представляя температурные значения в виде функции, зависящей от времени нагревания листа. Со временем алгоритм производит серию матриц, каждая из которых соответствует заданной отметке времени.

Теперь представим, что матрица имеет слишком большие размеры (скажем, миллион на миллион) и для ускорения ее вычисления требуется использование параллельных процессов (возможно, на многопроцессорной машине). Разные процессы работают над разными частями матрицы, вычисляя новые элементы матрицы на основе прежних
значений в соответствии с законами физики. Но ни один процесс не может приступить к итерации п + 1, пока не завершится итерация п, то есть пока все процессы не завершат текущую работу. Способ достижения этой цели — запрограммировать каждый процесс на выполнение операции barrier после того, как он завершит свою часть текущей итерации. Когда все процессы справятся со своей работой, новая матрица (предоставляющая входные данные для следующей итерации) будет завершена и все процессы будут освобождены для начала следующей итерации.

2.3.10.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Барьеры:

  1. БАРЬЕР ПСИХОЛОГИЧЕСКИЙ
  2. Преодоление психологических барьеров.
  3. Преодоление психологических барьеров.
  4. БАРЬЕР СМЫСЛОВОЙ
  5. Уничтожить барьеры
  6. 9.2. БАРЬЕРЫ ПАМЯТИ
  7. Руки в качестве барьеров (скрещивание рук).
  8. Часть II ПРЕОДОЛЕВАЯ БАРЬЕРЫ
  9. Унаследованный пессимизм, или Барьеры на пути к счастью
  10. И как только эта мысль прошла, судно врезалось в барьер.
  11. 16. Помогите ребенку преодолеть «физиологический барьер» – от сладкого сна к дневным заботам
  12. Почему с помощью Ключа можно снимать психологические барьеры и успешно осваивать различные виды деятельности?
  13. Талант многолик, потому что в каждом из нас — гармония. Почему с помощью Ключа можно снимать психологические барьеры и успешно осваивать различные виды деятельности?