TASK Quarterly (Apr 2021)
DESIGNING MULTITHREADED SOFTWARE BASED ON CONCURRENCY IN THE PROBLEM DOMAIN
Abstract
Event-sequence modeling is a thread-architectural style for event-driven software. It bases the set of threads in a multithreaded program on an event-sequence model of the problem domain. Each event sequence is a time-ordered set of event occurrences in the domain. (It is often defined by a state machine.) An event-sequence model is a set of event sequences that together cover all relevant event occurrences in the domain. Occurrences in one event sequence are generally concurrent with those in other sequences. The event-sequence modeling approach leads to architectures consisting of threads, each based on an event sequence, and shared objects. The threads can run concurrently on different cores/processors except when they must have exclusive access to some shared object. This paper defines these concepts and illustrates them with examples.
Keywords