![](/user_photo/2706_HbeT2.jpg)
- •Алгоритм выхода из тупиковой ситуации с минимальной ценой
- •Алгоритмы защиты от взаимных блокировок. Классификация алгоритмов защиты.
- •Асинхронные параллельные процессы. Проблема «производитель-потребитель».
- •Асинхронные параллельные процессы. Проблемы синхронизации параллельных процессов.
- •Высокопроизводительный Фортран 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. Язык оккам. Общая характеристика. Операторы языка оккам.
-
Задача предотвращения тупиков. Алгоритм упорядоченных классов.
Пример: SR система – тупиковая ситуация (особенно плохо в системах реального времени и системах упраления).
Причем,
процесс Р1 не освобождает Р2, пока не
получит Р1; аналогично с Р2. Попав в такую
ситуацию, процесс уже не может выйти из
неё.
Тупиковое состояние:
1. Некоторые процессы бесконечно ожидают освобождения требуемых ресурсов, не производя никакой полезной работы
2. Процессы удерживают некоторые ресурсы не выполняя никакой полезной работы, и система без внешнего воздействия не может выйти из этого состояния.
Меры борьбы с тупиками
- Статические (анализ текста программы).
- Динамические
-
Обнаружение с последовательным выходом из тупика
-
Ручной выход
-
Автоматический
-
Перехват ресурсов
-
Прекращение процессов (выход с мин. ценой)
-
-
-
Методы предотвращения
-
Метод упорядоченных классов
-
Алгоритм банкира
-
Методы предотвращения – используются в системах, где недопустимо возникновение тупиковых ситуаций. В настоящее время эти методы представлены в основном методом упорядочивания классов (требует предварительного распределения всех ресурсов системы по классам). Каждому такому классу ставится в соответствие вес от 1 до N и любой процесс может получить ресурс класса L, только если до этого он получит все ресурсы класса L-1. Недостатки: навязывание процессам жесткого порядка в использовании ресурсов, что снижает эффективность системы в целом. Используется в системах с достаточным количеством ресурсов, в которых допустимо плавное снижение эффективности.
-
Конструктор массивов в языке Фортран 90.
В языке вводятся понятия:
Ранг массива – размерность в диапазоне от 1 до 7. Ранг скаляра считается равным нулю.
Конфигурация массива – это одномерный массив целого типа, размер которого равен рангу исходного массива, а значения элементов равны размерам по каждому направлению исходного массива.
Массивы одинаковой конфигурации называются согласованными. В согласованных массивах элементы, занимающие одинаковое положение относительно первого элемента, называются соответствующими. Скаляр считается, согласованным с массивом любой размерности.
Все операции над массивами требуют согласованности операндов.
Конструктор массивов дает возможность построить одномерный массив (вектор), имеющий следующий формат: (/С1, С2, … Сn/) , где Ci – элемент конструктора.
В свою очередь элемент конструктора может иметь один из следующих форматов:
-
скалярное выражение,
-
векторное выражение
-
неявный цикл.
Пример 1 |
(/2, 1, 1, 3, 1/)
|
скалярное выражение |
Пример 2 |
(/A1+A2/)
|
векторное выражение |
Пример 3 |
(/(2.9, С(N), N=1,3), 8.2/) что эквивалентно: (/2.9, С(1), 2.9, С(2), 2.9, С(3), 8.9/)
|
неявный цикл |
Тип конструктора определяется типом входящего в него выражения.
Конструктор можно использовать в качестве:
-
операнда в выражении в качестве
-
фактического параметра процедуры
-
элемента списка вывода.
Конструктор не может стоять в левой части оператора присваивания.
В языке имеется возможность преобразовывать массив в массив другой размерности. Например:
INTEGER MAT (3,2)
INTEGER VEC (G)
VEC = (/1,10,100,1000,10000,100000/)
MAT = RESHARE (SHARE=(3,2), SOURCE = VEC)
В этом примере функция RESHARE преобразует исходный вектор VEC в двумерный массив MAT.