A lightweight introduction to concurrent systems
April 28th 2012 - 9.00-13.00
Aula Magna Matematica, Palazzo delle Scienze - Cagliari
University of Leicester (UK)
Abstract. Designing and implementing a concurrent system or application requires great care and remains one of the challenging tasks of software architects and programmers. Also, to make the scenario even worst, errors in concurrent systems are hard to find and sometimes arise in very unexpected ways. For instance, consider the following quote from Eckel's book 'Thinking in Java':
"Some examples were developed on a dual-processor Win2K machine which would immediately show collisions. However, the same example run on single-processor machines might run for extended periods without demonstrating a collision — this is the kind of scary behavior that makes multithreading difficult."
So why the heck one should bother to design and implement such applications?
The reason is that concurrency is becoming a pervasive feature of modern systems and applications which are more and more distributed and communication-centred.
In these lectures we'll consider basic concepts about concurrency and learn how to use them in the specification of concurrent systems. The course will cover the following topics:
The slides of the talk available here.