Module details
CO538 Concurrency Design and Practice (15 credits)
Syllabus
This module provides an introduction to concurrency and parallel programming
in general. The CSP model of concurrency is the core of this module, primarily
presented through the occam-pi multiprocessing language and additionally using
the JCSP library for Java.
- Parallel programming: processes, channels, alternation, barriers, CREW
principle, types, variables and computation.
- Building concurrent systems: components, layered networks and
modularity.
- Semantic aspects of concurrent programming: security-issues,
race-hazards, deadlock, livelock, starvation and non-determinism.
- Design methodologies for deadlock, livelock and starvation-free systems.
- Performance of concurrent systems (including the efficient exploitation
of multi-core processors).
- Applications of concurrency for: robotics, embedded-systems, networking,
complex system modelling, graphics and hardware design.
- Implementation of concurrent systems in natively sequential languages,
comparing the use of specialised concurrency models (e.g. CSP) with a
standard threads-and-locks model.
Note
This web page provides advance information about a module due
to run in the coming academic year. We believe the details are
accurate at the time of writing but they may be subject to
change.