Learn More
A naming protocol assigns unique names (keys) to every process out of a set of communicating processes. We construct a randomized wait-free naming protocol using wait-free atomic read/write registers (shared variables) as process intercommunication primitives. Each process has its own private register and can read all others. The addresses/names each one(More)
A protocol which can tolerate any n umber of processors failing by ceasing operation for unbounded time and resuming operation (with or) without knowing that they were faulty is called wait-free if it also works correctly even when the starting state of the system is arbitrary, i t i s c a l l e d wait-free, self-stabilizing. This work is on the problem of(More)
A lock-free bag data structure supporting unordered buffering is presented in this paper. The algorithm supports multiple producers and multiple consumers, as well as dynamic collection sizes. To handle concurrency efficiently, the algorithm was designed to thrive for disjoint-access-parallelism for the supported semantics. Therefore, the algorithm exploits(More)
As distributed algorithms may involve a large amount of data describing local state information and complex interactions between elements, it is often very diicult to achieve an understanding of their control ow (and performance behaviour) only from a pseudo-code description or from data streams (e.g. execution traces). This paper is on our project which(More)
To avoid signal interference in mobile communication it is necessary that the frequencies used for communication within each cells are allocated so that no signal interference occurs with neighbouring cells. We model this channel allocation problem as a generalised list colouring problem and we show how to analytically measure and provide worst-case(More)
We present an efficient and practical lock-free method for semiautomatic (application-guided) memory reclamation based on reference counting, aimed for use with arbitrary lock-free dynamic data structures. The method guarantees the safety of local as well as global references, supports arbitrary memory reuse, uses atomic primitives that are available in(More)
The potential of multiprocessor systems is often not fully realized by their system services. Certain synchronization methods, such as lock-based ones, may limit the parallelism. It is significant to see the impact of wait/lock-free synchronization design in key services for multiprocessor systems, such as the memory allocation service. Efficient, scalable(More)
We present our work on building interactive continuous visualisations of distributed algorithms for educational purposes. The animations are comprised by a set of visualisation windows. The visualisation windows are designed so that they demonstrate i) the different behaviours of the algorithms while running in different systems, ii) the different(More)
Past research on fault tolerant distributed systems has focussed either on processor failures, ranging from benign crash failures to the malicious Byzantine failure types, or on transient memory errors, which can suddenly corrupt the state of the system. It is an interesting question whether one can device highly fault tolerant distributed protocols that(More)