Petri Nets for Concurrent Programming

08/04/2022
by   Marshall Rawson, et al.
0

Concurrent programming is used in all large and complex computer systems. However, concurrency errors and system failures (ex: crashes and deadlocks) are common. We find that Petri nets can be used to model concurrent systems and find and remove errors ahead of time. We introduce a generalization of Petri nets with nondeterministic transition nodes to match real systems. These allow for a compact way to construct, optimize, and prove computer programs at the concurrency level. Petri net programs can also be optimized by automatically solving for maximal concurrency, where the maximum number of valid threads is determined by the structure of the Petri net prior to execution. We provide pseudocode to compute the state graph of a given Petri net start state pair. There is an open source repository of code1 which aims to implement this theory as a general purpose concurrency focused middle-ware.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/30/2021

Decidability of Two Truly Concurrent Equivalences for Finite Bounded Petri Nets

We prove that (strong) fully-concurrent bisimilarity and causal-net bisi...
research
01/22/2022

Strong Sleptsov Net is Turing-Complete

It is known that a Sleptsov net, with multiple firing a transition at a ...
research
06/04/2021

How to Bake Quantum into Your Pet Petri Nets and Have Your Net Theory Too

Petri nets have found widespread use among many application domains, not...
research
11/16/2021

A Maude Implementation of Rewritable Petri Nets: a Feasible Model for Dynamically Reconfigurable Systems

Petri Nets (PN) are a central, theoretically sound model for concurrent ...
research
07/14/2021

Asynchronous games on Petri nets and ATL

We define a game on distributed Petri nets, where several players intera...
research
02/09/2018

The Monadic Second Order Theory of Grid-Free 1-Safe Petri Nets is Decidable

Finite 1-safe Petri nets, also called net systems, are natural models of...
research
12/06/2022

Automatically Transform Rust Source to Petri Nets for Checking Deadlocks

This paper presents a method of automatically converting source codes (R...

Please sign up or login with your details

Forgot password? Click here to reset