Применение алгоритмов шифрования Политики безопасности Протокол аутентификации Безопасность IP (IPSec) Использование сертификатов для обеспечения безопасности

Многопроцессорные вычислительные системы

Системы телеобработки. Уже первоначальное применение СОД для управления производством, транспортом и материально-техническим снабжением показало, что эффективность систем можно значительно повысить, если обеспечить ввод данных в систему непосредственно с мест их появления и выдачу результатов обработки к местам их использования.

Основы вычислительных систем

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

Ниже в качестве примеров ЯПП мы рассмотрим некоторые модельные языки, заложенные идеи в которых используют в большинстве современных языков параллельного программирования.

P-язык

Пожалуй, одним из первых ЯПП был матричный P-язык, разработанный в ИМ с ВЦ СО АН СССР. Программа, записанная на этом языке, представляет собой матрицу, элементами которой являются операторы, среди которых имеются операторы настройки, производящие изменение коммутаторов элементарных машин (ЭМ) либо параметров, управляющих структурой ЭМ; операторы обмена информацией между ЭМ и "пустые" операторы, пропускающие выполнение одного шага вычислений. Каждый столбец матрицы включает независимые операторы, которые можно выполнять параллельно. Процесс выполнения программы сводится к последовательному прохождению всех столбцов матрицы.

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

Более удобным в этом плане является язык ярусно-параллельных форм (ЯПФ) Д.А. Поспелова. Программа на ЯПФ представляет собой мультиграф, задаваемый, например, в матричной форме. Вершинами мультиграфа являются операторы, мультиграф не имеет контуров. Дуги данного мультиграфа бывают двух типов: информационные и управляющие. При выполнении программы на ЯПФ первоначально выделяется нулевой ярус (множество операторов, не имеющих непосредственных предшественников по информационным дугам) (рис. 6.1) и инициируется выполнение операторов из этого
множества. После их выполнения убираются все информационные дуги, выходящие из нулевого яруса, и в оставшемся графе таким же образом выделяется первый ярус.

 


Рис. 6.1. ЯПФ-представление алгоритма

 

Процесс продолжается от яруса к ярусу. После выполнения управляющего оператора, из которого выходят управляющие дуги, происходит выбор одного из операторов, в которые заходят эти дуги. Процесс обработки ЯПФ-программы завершается, когда выполнены все операторы из яруса с наибольшим номером.

Однако представление программы в ЯПФ требует "развертки" циклических участков программы, что не позволяет использовать ее как язык практического параллельного программирования.

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