Введение

инженерия программного обеспечения

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

Архитектура программного обеспечения

Вычисления с потоком данных — это парадигма программирования, основанная на представлении вычислений в виде ориентированного графа, где узлы представляют собой вычисления, а данные передаются по рёбрам. Поток данных также называют потоковой обработкой или реактивным программированием. Существовало множество языков потоковой обработки и потока данных различных форм (см. Потоковая обработка). Аппаратное обеспечение потока данных (см. Архитектура потока данных) является альтернативой классической архитектуре фон Неймана. Наиболее наглядным примером программирования с потоком данных является подмножество, известное как реактивное программирование в электронных таблицах. При вводе пользователем новых значений они мгновенно передаются следующему логическому "агенту" или формуле для вычисления. Распределённые потоки данных также предлагались как абстракция программирования, отражающая динамику распределённых многопротокольных систем. Ориентированный на данные подход, характерный для программирования с потоком данных, способствует созданию высокоуровневых функциональных спецификаций и упрощает формальное обоснование компонентов системы.

Архитектура аппаратного обеспечения

Аппаратные архитектуры для потока данных были важной темой исследований в области компьютерной архитектуры в 1970-х и начале 1980-х годов. Джек Деннис из Массачусетского технологического института (MIT) был пионером в области статических архитектур потока данных. Конструкции, использующие обычные адреса памяти в качестве меток зависимостей данных, называются статическими машинами потока данных. Эти машины не позволяли одновременно выполнять несколько экземпляров одной и той же подпрограммы, поскольку простые метки не могли их различать. Конструкции, использующие ассоциативную память, были названы динамическими машинами потока данных Арвиндом. Они используют метки в памяти для обеспечения параллелизма. Поток данных циркулирует по компьютеру через его компоненты. Данные поступают с устройств ввода и могут выводиться через устройства вывода (например, принтер).

Конкуренция

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