Solving the Santa Claus Problem: a Comparison of Various Concurrent Programming Techniques

@inproceedings{Hurt2008SolvingTS,
  title={Solving the Santa Claus Problem: a Comparison of Various Concurrent Programming Techniques},
  author={J. Hurt and J. Pedersen},
  booktitle={CPA},
  year={2008}
}
The Santa Claus problem provides an excellent exercise in concurrent pro- gramming and can be used to show the simplicity or complexity of solving problems using a particular set of concurrency mechanisms and offers a comparison of these mechanisms. Shared-memory constructs, message passing constructs, and process ori- ented constructs will be used in various programming languages to solve the Santa Claus Problem. Various concurrency mechanisms available will be examined and an- alyzed as to… Expand
Refining Santa: An Exercise in Efficient Synchronization
TLDR
This paper outlines the refinement steps to develop a highly efficient implementation with concurrent objects, starting from a simple specification, and the efficiency of the implementation is compared to those in other languages. Expand
Santa Claus: Formal analysis of a process-oriented solution
TLDR
It is proposed that process-oriented design, based on Hoare's algebra of Communicating Sequential Processes (CSP), leads to solutions that are manageable by novice programmers; that is, they are easy to design and maintain, that they are scalable for complexity, obviously correct, and relatively easy to verify using formal reasoning and/or model checkers. Expand
Solving the Santa Claus Problem Over a Distributed Systeml
A working solution to the Santa Claus Problem is demonstrated that operates over a distributed system. It is designed and modelled using the client/server model to maintain a deadlock and livelockExpand

References

SHOWING 1-10 OF 43 REFERENCES
Jingle Bells: Solving the Santa Claus Problem in Polyphonic C
The Santa Claus problem is an interesting exercise in concurrent programming which has been used in a comparison of the concurrency mechanisms of Ada and Java. We present a simple solution to theExpand
How to solve the Santa Claus problem
TLDR
The Santa Claus problem demonstrates that semaphores, designed for low-level mutual exclusion, are not appropriate for solving difficult concurrent programming problems. Expand
How to solve the Santa Claus problem
  • M. Ben-Ari
  • Computer Science
  • Concurr. Pract. Exp.
  • 1998
TLDR
The Santa Claus problem demonstrates that semaphores, designed for low-level mutual exclusion, are not appropriate for solving difficult concurrent programming problems. Expand
Groovy Parallel! A Return to the Spirit of occam?
TLDR
Four constructs are proposed that support the writing of parallel systems using the JCSP package and conclusions are drawn relating to the use of the constructs, particularly in a teaching and learning environment. Expand
An ASM Specification of C# Threads and the .NET Memory Model
TLDR
A high-level ASM model of C# threads and the .NET memory model is presented, which provides a sound basis for the development of multi-threaded applications in C#. Expand
Model Checking Nonblocking MPI Programs
TLDR
A way to apply model checking techniques to parallel programs that use the nonblocking primitives of the Message Passing Interface (MPI) as an extension to the model checker Spin called Mpi-Spin. Expand
Process Oriented Design for Java: Concurrency for All
  • P. Welch
  • Computer Science
  • International Conference on Computational Science
  • 2002
TLDR
A process-oriented design pattern for concurrency is presented with a specific binding for Java, based on the algebra of Communicating Sequential Processes as captured by the JCSP library of Java classes. Expand
Modular verification of multithreaded programs
TLDR
Calvin is presented, a scalable and expressive static checker for multithreaded programs based on automatic theorem proving that can catch common defects in multith readed programs, such as synchronization errors and violations of data invariants. Expand
A new exercise in concurrency
This article presents an exercise to be assigned whenever undergraduates are introduced to the concepts of concurrency and semaphores. It also presents several possible strategies to solve saidExpand
Communicating sequential processes
This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. WhenExpand
...
1
2
3
4
5
...