Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы твп.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.26 Mб
Скачать

24) Моделирование пвп: метод процесс/канал.

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

2.  Процесс - это последовательная программа с локальными данными. Процесс имеет входные и выходные порты, которые служит интерфейсом к среде процесса.

3.  В дополнение к обычным операциям процесс может выполнять следующие действия: послать сообщение через выходной порт, получить сообщение из входного порта, создать новый процесс и завершить процесс. 4.  Посылающаяся операция асинхронная - она завершается сразу, не ожидая того, когда данные будут получены. Получающаяся операция синхронная: она блокирует процесс до момента поступления сообщения.

5.  Пары из входного и выходного портов соединяются очередями сообщений, называемыми каналами. Каналы можно создавать и удалять. Ссылки на каналы можно включать в сообщения, т.е связность изменяется динамически.

6. Процессы можно распределять по физическим процессорам произвольным способами, причем используемое отображение (распределение) не воздействует на семантику программы. В частности, множество процессов можно отобразить на одиночный процессор.

25)Моделирование пвп: метод обмена сообщениями.

  • Каждый процесс выполняет одну и ту же программу (параметризованную относительно идентификатора либо процесса, либо процессора), но работает с разными данными.

  • Каждый процесс идентифицируется уникальным именем.

  • Процессы взаимодействуют, обмениваясь сообщениями.

  • Нет ограничений на динамическое создание процессов, на выполнение нескольких процессов одним процессором, на использование разных программ для разных процессов.

  • Не позволяет создавать и разрушать процессы в течение работы программы.

26)Моделирование пвп: метод параллелизма данных.

  • Единственная программа задает распределение данных между всеми процессорами компьютера и операции над ними.

  • Распределяемые данные представляются массивами.

  • Компилятор отвечает за генерацию кода, осуществляющего распределение элементов массивов и вычислений между процессорами.

  • Параллелизм заключается в применении одной и той же операции к множеству элементов структур данных.

27)Моделирование пвп: метод использования общей памяти.

  • Все процессы совместно используют общее адресное пространство, к которому они асинхронно обращаются с запросами на чтение и запись.

  • Для управления доступом к общей памяти используются стандартные механизмы синхронизации - семафоры и блокировки процессов.

  • Понятие собственности данных (монопольного владения данными) отсутствует,т.е. не нужно явно задавать обмен данными между производителями и потребителями.

28) Семантическая теория программ. Метаязыки для описания синтаксиса.

Составляющие языка программирования

  • Алфавит – набор знаков, используемых для описания элементов (слов) языка.

Слово языка – последовательность знаков алфавита, построенная операцией конкатенации.

  • Синтаксис – правила построения слов и предложений (операторов) языка.

  • Семантика – смысловая нагрузка слов и операторов языка программирования.

Описание синтаксиса языка программирования

Метаязык Хомского

  • символ “®” отделяет левую часть правила от правой (читается как "порождает" и "это есть");

  • нетерминалы обозначаются буквой А с индексом, указывающим на его номер;

  • терминалы - это символы используемые в описываемом языке;

  • каждое правило определяет порождение одной новой цепочки, причем один и тот же нетерминал может встречаться в нескольких правилах слева.

Описание идентификатора:

Метаязык Хомского-Щутценберже

  • символ “=” отделяет левую часть правила от правой;

  • нетерминалы обозначаются буквой А с индексом, указывающим на его номер;

  • терминалы - это символы используемые в описываемом языке;

  • каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом “+”, что позволяет, при желании, использовать в левой части только разные нетерминалы.

Бэкуса-Наура формы (БНФ)

  • символ "::=" отделяет левую часть правила от правой;

  • нетерминалы обозначаются произвольной символьной строкой, заключенной в угловые скобки "<" и ">";

  • терминалы - это символы, используемые в описываемом языке;

  • каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом вертикальной черты "|".

Расширенные Бэкуса-Наура формы (РБНФ)

  • Квадратные скобки "[" и "]" означают, что заключенная в них синтаксическая конструкция может отсутствовать;

  • фигурные скобки "{" и "}" означают ее повторение (возможно, 0 раз);

  • круглые скобки "(" и ")" используются для ограничения альтернативных конструкций;

  • сочетание фигурных скобок и косой черты "{/" и "/}" используется для обозначения повторения один и более раз. Нетерминальные символы изображаются словами, выражающими их интуитивный смысл и написанными на русском языке.

  • Терминальные символы изображаются словами, написанными буквами латинского алфавита (зарезервированные слова) или цепочками знаков, заключенными в кавычки. Синтаксическим правилам предшествует знак "$" в начале строки. Каждое правило оканчивается знаком "." (точка).

  • Левая часть правила отделяется от правой знаком "=" (равно), а альтернативы - вертикальной чертой "|".

  • синтаксис идентификатора:

  • $ идентификатор = буква {буква | цифра}.