[an error occurred while processing this directive] Software Engineering at Oxford | Concurrency and Distributed Systems ( CDS ) [an error occurred while processing this directive]

Concurrency and Distributed Systems

The language of Communicating Sequential Processes (CSP) is a powerful tool for understanding concurrent behaviour. It models parallel execution and inter-process communication, it supports a practical theory of correctness and refinement, and it is attractive and intuitive to use in specification.

Course dates

9th June 2025Oxford University Department of Computer Science - Held in the Department 0 places remaining.

Objectives

At the end of the course, students will have a deeper understanding of concurrency. They will be better equipped to design and develop distributed systems.

Contents

Events and processes:
models of concurrency; representing communication and interaction; components and interfaces; behavioural and state-based specification; levels of abstraction.
Interaction:
state machines; internal and external choice; nondeterminism; safety and liveness constraints; algebraic properties; traces and refusals; process refinement.
Concurrency:
parallel combination; specifying interfaces; static alphabets; refinement in context; dynamic process creation and mobile code.
Abstraction:
changing levels of abstraction; mechanisms: interleaving, renaming, and hiding; abstraction and nondeterminism; encapsulation and refinement.
Communication:
shared channels; synchronous and asynchronous communication; modelling values and state; input and output; indexing and replication; data independence.
Sequential composition:
distributed termination; sequential composition of parallel components; abstract data types; processes and state; polling, interrupts, and timeouts.
Applications:
case studies and exercises, including: communication protocols; critical systems; caching algorithms; objects, classes, and threads.

Requirements

There are no prerequisites for this course, although some familiarity with discrete mathematics would be useful: Software engineering mathematics would be an ideal preparation.


[an error occurred while processing this directive]