- •Алгоритм выхода из тупиковой ситуации с минимальной ценой
- •Алгоритмы защиты от взаимных блокировок. Классификация алгоритмов защиты.
- •Асинхронные параллельные процессы. Проблема «производитель-потребитель».
- •Асинхронные параллельные процессы. Проблемы синхронизации параллельных процессов.
- •Высокопроизводительный Фортран hpf. Общая характеристика.
- •Задача предотвращения тупиков. Алгоритм банкира.
- •1. Некоторые процессы бесконечно ожидают освобождения требуемых ресурсов, не производя никакой полезной работы
- •2. Процессы удерживают некоторые ресурсы не выполняя никакой полезной работы, и система без внешнего воздействия не может выйти из этого состояния.
- •Задача предотвращения тупиков. Алгоритм упорядоченных классов.
- •1. Некоторые процессы бесконечно ожидают освобождения требуемых ресурсов, не производя никакой полезной работы
- •2. Процессы удерживают некоторые ресурсы не выполняя никакой полезной работы, и система без внешнего воздействия не может выйти из этого состояния.
- •Конструктор массивов в языке Фортран 90.
- •Непроцедурный язык Норма. Понятие сетки. Понятие области.
- •Оператор полагать в языке норма.
- •Операторы языка Фортран 90
- •Операции над массивами в языке Фортран 90.
- •Организация ввода и вывода в языке норма.
- •Понятия критического ресурса и критической секции.
- •Проблема «Производитель-потребитель». Общие семафоры.
- •Проблема взаимных блокировок (тупиков).
- •Программирование пространственно-временных структур на языке оккам.
- •Секции массивов в языке фортран 90.
- •19. Система программирования pvm (Parallel Virtual Machine).
- •20. Система параллельного программирования dvm(Distributed Virtual Machine).
- •21. Система параллельного программирования mpi.
- •22. Структура программы на языке норма. Оператор итерация.
- •23. Условные области в языке норма.
- •24. Язык фортран 90. Общая характеристика.
- •25,26. Язык оккам. Общая характеристика. Операторы языка оккам.
-
Организация ввода и вывода в языке норма.
В программе на языке НОРМА все величины, значения которых задаются из вне, должны быть описаны как входные, а величины, являющиеся результатами работы программы должны быть описаны как выходные. (записываются на внешний носитель)
Пример:
ВХОДНЫЕ x,y,U
ВЫХОДНЫЕ давление, плотность ПО треугольнику
В этом примере описываются входные величины x,y,U как СКАЛЯРНЫЕ. Выходные величины давление и плотность определены по треугольнику.
Так как язык НОРМА является непроцедурным, в программе явно не описываются порядок вычислений, который будет установлен транслятором на основе анализа соотношений между входными и выходными величинами, следовательно в программе на языке НОРМА невозможен потокоориентированный ввод и вывод. И все данные (входные и выходные) на внешнем носителе должны быть представлены в виде <идентификатор> = <значение>.
-
Понятия критического ресурса и критической секции.
Асинхронные параллельные процессы возникают в алгоритмах, обрабатывающих данные нерегулярной структуры. Такие алгоритмы распараллеливаются на длинные автономные параллельные ветви.
Асинхронные процессы не требуют одинаковой скорости работы процессоров и жесткой потактовой синхронизации между ними.
Асинхронные параллельные процессы, реализующие единый алгоритм решения некоторой задачи, неизбежно вступают во взаимодействие при разделении общих ресурсов. (реализ. как правило на многопроцессорных ВС с автономным управление для каждого процессорного элемента.
Такие ресурсы
- различные устройства
- общая память
- общие структуры данных и процедуры.
Взаимодействие параллельных процессов основано на решении трех проблем:
1. Синхронизация 2-х и более процессов
2. Проблема «производитель - потребитель»
3. Проблема взаимных блокировок
Синхронизация параллельных процессов.
Проблема синхронизации возникает при использовании параллельными процессами общих ресурсов:
- аппаратные ресурсы
- программные ресурсы (структуры данных и процедуры)
- информационные ресурсы
Режимы использования:
- монопольное (ресурсом владеет только один процесс)
- разделяемое (ресурсом владеет любое число процессов)
Ресурс монопольного использования – ресурс, на который одновременно могут быть заявки от более чем одного процесса – называется критическим, а соответствующий участок программы – критическая секция. Т.е. в критической секции по данному критическому ресурсу может находиться только 1 параллельный процесс. Все остальные процессы развиваются или вне критической секции или ожидают освобождения критического ресурса.
Задача синхронизации – обеспечить вхождение в свою критическую секцию только одного процесса. Могут использоваться как программные, так и аппаратные средства.
Средства синхронизации:
- высокого уровня
- низкого уровня (двоичные семафоры)
-
Проблема «Производитель-потребитель». Общие семафоры.
Взаимодействие параллельных процессов основано на решении трех проблем:
1. Синхронизация 2-х и более процессов
2. Проблема «производитель - потребитель»
3. Проблема взаимных блокировок
Проблема «производитель - потребитель» возникает при взаимодействии асинхронных параллельных процессов, использующих потребляемые («расходуемые») ресурсы.
Все ресурсы вычислительной системы делятся на 2 типа:
-
SR – повторно используемые (все аппаратный ресурсы (устройства, каналы сязи, память), преоперабельные процедуры, неизменяемые ресурсы структуры данных - после использования возвращаются в систему в неизменном виде).
-
CR – потребляемые (изменяемые структуры данных и процедуры, а также все сообщения и сигналы, информационные ресурсы, программные, т.е. не могут возвратиться с систему в неизменном виде).
SR ресурсы: после освобождения процессом возвращаются в систему в неизменном виде для дальнейшего использования.
СR ресурсы: не возвращаются в систему или возвращаются в изменённом виде
Некоторые процессы в системе генерируют потребляемые ресурсы определенного типа, другие их потребляют. Необходима синхронизация процессов производителя и потребителя по каждому из ресурсов CR-типа. Это решается с помощью общих семафоров.
Данная проблема решается с помощью общих семафоров.
Общий семафор – целочисленная переменная, принимающая значения 0 ≤ x ≤ n.
Операции определенные над семафорами.
P(x) |
x-1, если x > 0 |
0, если x = 0 – перевод процесса в режим ожидания (уменьш. на 1) |
|
V(x) |
x+1, если x < n (увелич. на 1) |
x, если x = n |
Процесс-производитель перед генерацией CR-ресурса выполняет над общим семафором V операцию, а процесс-потребитель – P операцию. Т.о. осуществляется их синхронизация. Если семафор закрыт, то процесс производитель приходит в состояние ожидания. Общий семафор имеет физический смысл: