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

В программе на языке НОРМА все величины, значения которых задаются из вне, должны быть описаны как входные, а величины, являющиеся результатами работы программы должны быть описаны как выходные. Значения входных и выходных величин должны быть представлены на внешнем носителе.

Пример:

ВХОДНЫЕ x,y,U

ВЫХОДНЫЕ давление, плотность ПО треугольнику

(где <треугольник> - имя области)

В этом примере описываются входные величины x,y,U как СКАЛЯРНЫЕ. Выходные величины давление и плотность определены по треугольнику.

Особенность работы с входными и выходными величинами:

т.к. в языке НОРМА программист не описывает процедуру вычисления выходных величин, а составляет процедуру транслятор, то входные и выходные величины должны быть представлены в виде: <идентификатор> = <значение>.

Порядок расположения на носителе должен точно соответствовать порядку ввода

переменных. Так как язык НОРМА является непроцедурным, в программе явно не описываются порядок вычислений, который будет установлен транслятором на основе анализа соотношений между входными и выходными величинами, следовательно в программе на языке НОРМА невозможен потокоориентированный ввод и вывод – нужное значение ищется по идентификатору.

  1. Понятия критического ресурса и критической секции.

Асинхронные параллельные процессы возникают в алгоритмах, обрабатывающих данные нерегулярной структуры. Такие алгоритмы распараллеливаются на длинные автономные параллельные ветви.

Асинхронные процессы не требуют одинаковой скорости работы процессоров и жесткой потактовой синхронизации между ними.

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

Такие ресурсы

- различные устройства

- общая память

- общие структуры данных и процедуры.

Взаимодействие параллельных процессов основано на решении трех проблем:

1. Синхронизация 2-х и более процессов

2. Проблема «производитель - потребитель»

3. Проблема взаимных блокировок

Синхронизация параллельных процессов.

Проблема синхронизации возникает при использовании параллельными процессами общих ресурсов:

- аппаратные ресурсы

- программные ресурсы (структуры данных и процедуры)

- информационные ресурсы

Режимы использования:

- монопольное (ресурсом владеет только один процесс)

- разделяемое (ресурсом владеет любое число процессов)

Ресурс монопольного использования – ресурс, на который одновременно могут быть заявки от более чем одного процесса – называется критическим, а соответствующий участок программы – критическая секция. Т.е. в критической секции по данному критическому ресурсу может находиться только 1 параллельный процесс. Все остальные процессы развиваются или вне критической секции или ожидают освобождения критического ресурса.

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

Средства синхронизации:

- высокого уровня

- низкого уровня (двоичные семафоры)

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