How to solve the Santa Claus problem

  title={How to solve the Santa Claus problem},
  author={Mordechai Ben-Ari},
  journal={Concurr. Pract. Exp.},
  • M. Ben-Ari
  • Published 1998
  • Computer Science
  • Concurr. Pract. Exp.
John Trono published a new exercise in concurrent programming—the Santa Claus problem—and provided a solution based on semaphores [12]. His solution is incorrect because it assumes that a process released from waiting on a semaphore will necessarily be scheduled for execution. We give a simple solution in Ada 95 using higher order synchronization primitives: protected objects and rendezvous. We then give solution in Java, though this solution is not as elegant as the Ada 95 solution because the… Expand
Solving the Santa Claus Problem: a Comparison of Various Concurrent Programming Techniques
Various concurrency mechanisms available will be examined and examined as to their respective strengths and weaknesses and offers a comparison of these mechanisms. Expand
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
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
Refining Santa: An Exercise in Efficient Synchronization
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
Compiling CSP
This paper presents an altern a use for CSP, namely the compilation of CSP systems to executable code, in providing a means to experiment with relatively large C SP systems, possibly consisting millions of concurrent processes. Expand
Modern concurrency abstractions for C#
The design and implementation of the Polyphonic C language is described and examples of its use in addressing a range of concurrent programming problems are given. Expand
Lightweight Linearly-typed Programming with Lenses and Monads
The encoding allows the vanilla OCaml typechecker to enforce linearity by using lenses and a parameterised monad, and an extension to pattern matching based on the syntax-extension mechanism of O Caml is proposed. Expand
Ada For Software Engineers
Ada for Software Engineers explains the language concepts and the terminology of the standards document, the Ada Reference Manual (ARM). Expand
Managing space for finite-state verification
This paper investigates applying two symbolic data structures, Binary Decision Diagrams and Zero-suppressed Binary Decision diagrams, in two FSV tools, LTSA and FLAVERS, and describes an experiment showing that these two symbolic approaches can improve the performance of both FSVtools and are more efficient than two other algorithms that store the state space explicitly. Expand
Serverless Data Analytics Platform D 4 . 2 Specification and partial support for degradable objects
This document describes in full details CRUCIAL, a complex distributed system to program efficient (both stateful and stateless) serverless applications.


Principles of concurrent and distributed programming
  • M. Ben-Ari
  • Computer Science
  • PHI Series in computer science
  • 1990
This chapter discusses the implementation of the Ada Emulations, a distributed version of Concurrent Programming, and the problem of the Mutal Exclusion Problem. Expand
Concurrency in ADA
The nature and uses of concurrent programming, object-oriented programming and tasking, and real-time programming in the Ada language are studied. 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
A Starvation-Free Solution to the Mutual Exclusion Problem
This paper refutes the conjecture that a starvation-free solution to the mutual exclusion problem for an unknown number of processes and under the constrain! of employing only a fixed number of weak semaphores has been conjectured not to exist by presenting an algorithm that solves the problem. Expand
Monitors: an operating system structuring concept
This paper develops Brinch-Hansen's concept of a monitor as a method of structuring an operating system. It introduces a form of synchronization, describes a possible method of implementation inExpand
Programming the Internet in Ada 95
  • S. Taft
  • Computer Science
  • Ada-Europe
  • 1996
The combination of the Ada 95 and Java technologies is found to be very natural and powerful, providing the best characteristics of both technologies, with essentially no loss in functionality. Expand
The Java Language Specification
The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language. Expand
Programming in Ada 95
This text introduces and highlights the important changes from ANSI 83 for the ADA 92 standard, including increased support for object-oriented programming, the introduction of a hierarchical libraryExpand
The search for simplicity - essays in parallel programming
What do you do to start reading the search for simplicity essays in parallel programming? Searching the book that you love to read first or find an interesting book that will make you want to read?Expand
Concurrent Programming In Java