Towards Verifying Cooperatively-Scheduled Runtimes using CSP

Jan Bækgaard Pedersen, Kevin Chalmers

Research output: Contribution to journalArticlepeer-review

Abstract

In this paper we present the novel verification of synchronous channel communication and channel alternation (choice) by considering the environment within which our primitives are executing. Our work is in exploring development of a multi-threaded scheduler for a cooperatively scheduled process-oriented language, ProcessJ. We use CSP to produce formal specifications for the implementation of the various parts of the language runtime (scheduler, runtime components, and generated code). We use established CSP specifications that model channel communication and choice as well as the formal verification tool FDR to formally prove that the implementations are correct and behave as expected, when executed by our scheduler (the execution environment). Our approach is novel and not seen in similar research, because we consider the behaviour of the systems we examine under the restrictions imposed by an execution environment (e.g., a runtime system, a scheduler, an operating system, etc.) and show that even with such restrictions the channel communication and alternation work. More specifically, we show correctness when a system is executed by the ProcessJ cooperative scheduler. The main contributions of this work are in the models defined and method undertaken to verify cooperatively channel communication and choice.
Original languageEnglish
JournalFormal Aspects of Computing
Early online date12 Jul 2023
Publication statusPublished - 12 Jul 2023

Keywords

  • Theoretical Computer Science
  • Software

Cite this