- •Алгоритм выхода из тупиковой ситуации с минимальной ценой
- •Алгоритмы защиты от взаимных блокировок. Классификация алгоритмов защиты.
- •Асинхронные параллельные процессы. Проблема «производитель-потребитель».
- •Асинхронные параллельные процессы. Проблемы синхронизации параллельных процессов.
- •Высокопроизводительный Фортран hpf. Общая характеристика.
- •Задача предотвращения тупиков. Алгоритм банкира.
- •Задача предотвращения тупиков. Алгоритм упорядоченных классов.
- •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 параллельный процесс. Все остальные процессы развиваются или вне критической секции или ожидают освобождения критического ресурса.
Задача синхронизации – обеспечить вхождение в свою критическую секцию только одного процесса. Могут использоваться как программные, так и аппаратные средства.
Средства синхронизации:
- высокого уровня
- низкого уровня (двоичные семафоры)