Download PDFOpen PDF in browser

Model Checking Mutual Inclusion and Mutual Exclusion Algorithms

10 pagesPublished: October 4, 2021


The concepts of mutual inclusion and mutual exclusion are critical for concurrency control in distributed systems. Mutual exclusion is a property which ensures that at most one process can execute in its critical section at any given time. For example, other processes are not allowed to enter their critical sections when a given process is updating a shared variable in its critical section. If up to k processes can enter their critical sections, this is called k-exclusion. In contrast, mutual inclusion imposes restrictions on processes from leaving their critical sections. For example, to ensure reliability in a server farm, a certain number of servers may need to be available to service requests. If at least m processes must be available, this is called m-inclusion. Model checking is essential to verify and validate correctness and safety properties of distributed algorithms. The paper presents token-based models that can be used to verify and validate k-mutual exclusion and m-mutual inclusion algorithms where k refers to the maximum number of processes in their critical sections and m is the minimum number that must remain in their critical sections. Verification criteria includes the maximum number of messages that must be exchanged to enter or leave a critical section, deadlock freedom, and timing parameters. In addition, a model that includes both k-exclusion and m-inclusion is presented to demonstrate the feasibility of evaluating both mutual exclusion and mutual inclusion in the same model. Models are developed in UPPAAL, an environment for modeling, validation, and verification of real-time systems represented using timed automata.

Keyphrases: ETL, mutual exclusion, mutual inclusion, Token based model checking, UPPAAL

In: Frederick C. Harris Jr, Rui Wu and Alexander Redei (editors). Proceedings of ISCA 30th International Conference on Software Engineering and Data Engineering, vol 77, pages 60--69

BibTeX entry
  author    = {Kai Zhao and Venkata Siva Kumar Margapuri and Mitchell Neilsen},
  title     = {Model Checking Mutual Inclusion and Mutual Exclusion Algorithms},
  booktitle = {Proceedings of ISCA 30th International Conference on Software Engineering and Data Engineering},
  editor    = {Frederick Harris and Rui Wu and Alex Redei},
  series    = {EPiC Series in Computing},
  volume    = {77},
  pages     = {60--69},
  year      = {2021},
  publisher = {EasyChair},
  bibsource = {EasyChair,},
  issn      = {2398-7340},
  url       = {},
  doi       = {10.29007/x31k}}
Download PDFOpen PDF in browser