Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PP_KR22.doc
Скачиваний:
5
Добавлен:
10.12.2018
Размер:
377.86 Кб
Скачать
  1. Задача предотвращения тупиков. Алгоритм упорядоченных классов.

Пример: SR система – тупиковая ситуация (особенно плохо в системах реального времени и системах упраления).

Причем, процесс Р1 не освобождает Р2, пока не получит Р1; аналогично с Р2. Попав в такую ситуацию, процесс уже не может выйти из неё.

Тупиковое состояние:

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

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

Меры борьбы с тупиками

- Статические (анализ текста программы).

- Динамические

  • Обнаружение с последовательным выходом из тупика

      • Ручной выход

      • Автоматический

        • Перехват ресурсов

        • Прекращение процессов (выход с мин. ценой)

  • Методы предотвращения

    • Метод упорядоченных классов

    • Алгоритм банкира

Методы предотвращения – используются в системах, где недопустимо возникновение тупиковых ситуаций. В настоящее время эти методы представлены в основном методом упорядочивания классов (требует предварительного распределения всех ресурсов системы по классам). Каждому такому классу ставится в соответствие вес от 1 до N и любой процесс может получить ресурс класса L, только если до этого он получит все ресурсы класса L-1. Недостатки: навязывание процессам жесткого порядка в использовании ресурсов, что снижает эффективность системы в целом. Используется в системах с достаточным количеством ресурсов, в которых допустимо плавное снижение эффективности.

  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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]