В вычислительной технике поток данных — это широкое понятие, которое имеет различные значения в зависимости от приложения и контекста. В контексте архитектуры программного обеспечения поток данных относится к потоковой обработке или реактивному программированию .
Поток данных — это парадигма программного обеспечения, основанная на идее представления вычислений в виде направленного графа , где узлы — это вычисления, а поток данных — по ребрам. [1] Поток данных также можно назвать потоковой обработкой или реактивным программированием . [2]
Существует множество языков обработки потоков данных/потоков различных форм (см. Обработка потоков ). Аппаратное обеспечение потока данных (см. Архитектура потока данных ) является альтернативой классической архитектуре фон Неймана . Наиболее очевидным примером программирования потока данных является подмножество, известное как реактивное программирование с электронными таблицами. Когда пользователь вводит новые значения, они мгновенно передаются следующему логическому «актору» или формуле для расчета.
Распределенные потоки данных также были предложены как абстракция программирования, которая охватывает динамику распределенных многопротокольных приложений. Центрированная на данных перспектива, характерная для программирования потоков данных, способствует высокоуровневым функциональным спецификациям и упрощает формальные рассуждения о компонентах системы.
Аппаратные архитектуры для потока данных были основной темой в исследованиях компьютерной архитектуры в 1970-х и начале 1980-х годов. Джек Деннис из Массачусетского технологического института (MIT) был пионером в области статических архитектур потоков данных. Конструкции, которые используют обычные адреса памяти в качестве тегов зависимости данных, называются статическими машинами потока данных. Эти машины не позволяли выполнять несколько экземпляров одних и тех же процедур одновременно, поскольку простые теги не могли различать их. Конструкции, которые используют адресуемую по содержимому память , Арвинд называет динамическими машинами потока данных . Они используют теги в памяти для обеспечения параллелизма. Данные циркулируют по компьютеру через его компоненты. Они поступают с устройств ввода и могут выходить через устройства вывода (принтер и т. д.).
Сеть потоков данных — это сеть одновременно выполняемых процессов или автоматов, которые могут взаимодействовать путем отправки данных по каналам (см. передача сообщений ).
В сетях процессов Кана , названных в честь Жиля Кана , процессы являются детерминированными . Это подразумевает, что каждый детерминированный процесс вычисляет непрерывную функцию от входных потоков до выходных потоков, и что сеть детерминированных процессов сама по себе является детерминированной, таким образом вычисляя непрерывную функцию. Это подразумевает, что поведение таких сетей может быть описано набором рекурсивных уравнений, которые могут быть решены с помощью теории неподвижной точки . Движение и преобразование данных представлено серией фигур и линий.
Поток данных может также означать:
Словарное определение потока данных в Викисловаре