Технологические сети Кана

редактировать

Процесс Кан сети (KPN или технологические сети) - это распределенная модель вычислений, в которой группа детерминированных последовательных процессов взаимодействует через неограниченный FIFO каналов. Результирующая технологическая сеть демонстрирует детерминированное поведение, которое не зависит от различных задержек вычислений или связи. Модель была первоначально разработана для моделирования распределенных систем, но доказала свое удобство для моделирования систем обработки сигналов. Таким образом, KPN нашли множество приложений для моделирования встроенных систем, систем высокопроизводительных вычислений и других вычислительных задач. KPN были впервые введены Жилем Каном.

Технологическая сеть Кана из трех процессов без обратной связи. Ребра A, B и C - каналы связи. Один из процессов называется процессом P.
Содержание
  • 1 Модель выполнения
    • 1.1 Примечания к процессам
    • 1.2 Семантика запуска процесса в виде сетей Петри
    • 1.3 Процесс как конечный автомат
  • 2 Свойства
    • 2.1 Ограниченность каналов
    • 2.2 Закрытые и открытые системы
    • 2.3 Детерминизм
    • 2.4 Монотонность
  • 3 Приложения
  • 4 См. Также
  • 5 Ссылки
  • 6 Дополнительная литература
Модель выполнения

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

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

Примечания к процессам

  • Процессу не нужно читать какие-либо входные данные или иметь какие-либо входные каналы, поскольку он может действовать как чистый источник данных
  • Процесс не должен записывать какие-либо выходные данные или иметь какие-либо выходные данные каналы
  • Тестирование входных каналов на пустоту (или неблокирующее чтение) может быть разрешено в целях оптимизации, но это не должно влиять на выходы. Это может быть полезно и / или возможно сделать что-то заранее, а не ждать канала. Например, предположим, что было два чтения из разных каналов. Если первое чтение остановилось (ожидание токена), но второе чтение могло быть прочитано токеном напрямую, было бы полезно сначала прочитать вторую, чтобы сэкономить время, потому что само чтение часто занимает некоторое время (например, время для памяти

Семантика запуска процесса как сети Петри

Семантика запуска процесса P, смоделированного с помощью сети Петри, отображенной на изображении выше

Предполагая, что процесс P в KPN выше построен так что сначала он считывает данные из канала A, затем из канала B, что-то вычисляет, а затем записывает данные в канал C, модель выполнения процесса может быть смоделирована с помощью сети Петри, показанной справа. Единый токен в месте ресурса PE запрещает одновременное выполнение процесса для разных входных данных. Когда данные поступают в канал A или B, токены помещаются в места FIFO A и FIFO B соответственно. Переходы сети Петри связаны с соответствующими операциями ввода-вывода и вычислениями. Когда данные были записаны в канал C, ресурс PE снова заполняется своей начальной маркировкой, позволяя читать новые данные.

Процесс как конечный автомат

Конечный автомат процесса

Процесс можно смоделировать как конечный автомат, находящийся в одном из двух состояний:

  • Активный; процесс вычисляет или записывает данные
  • Подождите; процесс заблокирован (ожидает) данных

Предполагая, что конечный автомат считывает программные элементы, связанные с процессом, он может читать три вида токенов, а именно «вычислить», «прочитать» и «записать токен». Кроме того, в состоянии ожидания он может вернуться в активное состояние только путем чтения специального «токена получения», который означает, что канал связи, связанный с ожиданием, содержит читаемые данные.

Свойства

Ограниченность каналов

Канал строго ограничен b {\ displaystyle b}b , если он имеет не более b {\ displaystyle b}b неиспользованные токены для любого возможного выполнения. KPN строго ограничен b {\ displaystyle b}b , если все каналы строго ограничены b {\ displaystyle b}b .

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

В реальном приложении не может быть неограниченных FIFO, и поэтому планирование и максимальная емкость FIFO должны быть реализованы на практике. Максимальная емкость FIFO может быть обработана несколькими способами:

  • Границы FIFO могут быть получены математически при разработке, чтобы избежать переполнения FIFO. Однако это возможно не для всех KPN. Невозможно решить, является ли KPN строго ограниченным b {\ displaystyle b}b . Более того, в практических ситуациях граница может зависеть от данных.
  • Границы FIFO могут быть увеличены по запросу.
  • Можно использовать блокирующие записи, чтобы процесс блокировался, если FIFO заполнен. К сожалению, такой подход может привести к искусственному тупику, если разработчик должным образом не выведет безопасные границы для FIFO (Parks, 1995). Для обеспечения правильного вывода может потребоваться локальное искусственное обнаружение во время выполнения.

Закрытые и открытые системы

Закрытая KPN не имеет внешних входных или выходных каналов. Процессы, у которых нет входных каналов, действуют как источники данных, а процессы, у которых нет выходных каналов, действуют как приемники данных. В открытом KPN каждый процесс имеет как минимум один входной и выходной канал.

Детерминизм

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

  • процессы
  • сеть
  • начальные токены

Следовательно, синхронизация процессов не влияют на выходы системы.

Монотонность

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

Приложения

Благодаря высокой выразительности и лаконичности, KPN в качестве основы модели вычислений применяются в нескольких инструментах академического моделирования для представления потоковых приложений, которые имеют определенные свойства (например, ориентированные на поток данных, потоковое).

Фреймворк Daedalus с открытым исходным кодом, поддерживаемый Leiden Embedded Research Center в Лейденском университете, принимает последовательные программы, написанные на C, и генерирует соответствующий KPN. Этот KPN может, например, использоваться для систематического сопоставления KPN с платформой на основе FPGA.

Ambric Am2045 массив массивно-параллельных процессоров - это KPN, реализованная в реальных кристаллах. Его 336 32-разрядных процессоров соединены программируемым межсоединением выделенных FIFO. Таким образом, его каналы строго ограничены блокирующей записью.

См. Также
Ссылки
Дополнительная литература
  • Lee, E.A.; Паркс, Т. (1995). «Технологические сети потока данных» (PDF). Труды IEEE. 83 (5): 773–801. DOI : 10.1109 / 5.381846. ISSN 0018-9219. Проверено 13 февраля 2019 г.
  • Джозефс, Марк Б. (2005). "Модели для последовательных процессов потока данных". В Али Э. Абдаллахе; Клифф Б. Джонс; Джефф В. Сандерс (ред.). Связь последовательных процессов. Первые 25 лет: Симпозиум по случаю 25-летия CSP, Лондон, Великобритания, 7-8 июля 2004 г. Пересмотренные приглашенные доклады. Конспект лекций по информатике. 3525 . Берлин, Гейдельберг: Springer Berlin Heidelberg. С. 85–97. CiteSeerX 10.1.1.60.5694. doi : 10.1007 / 11423348_6. ISBN 978-3-540-32265-8.
Последняя правка сделана 2021-05-25 09:53:03
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте