Current generation of processors provides increased parallelism through shared memory rather than increased clock speed. The programming of shared memory machines, as well as the development of applications to run on top of them is nowadays highly desirable but it is a notoriously difficult task. The design of efficient shared objects that can be accessed simultaneously by many processes is a way to overcome this problem.
Since distributed objects enable the communication between processes of a distributed system, they simplify the task of programming such systems and for this reason they usually lie at the heart of most distributed algorithms. The design of shared objects that are efficient enough to be practical is therefore an important research direction in distributed computing.
This presentation focuses on recent research results on the design and analysis of fundamental shared atomic objects and distributed data structures. A collection of algorithms and lower bounds on the complexity of implementing such objects will be discussed.