31V7 (Concurrent and Real-Time Systems), Autumn 1997
Lecturers
Prerequisites
-
31P5 (understanding of software engineering and system design principles,
formal specification)
-
31V6 (operating system concepts, microprocessor laboratory facilities,
knowledge of C)
Aims
To give an understanding of:
-
the concepts underlying concurrent systems
-
how to specify concurrent systems
-
how concurrent systems are supported by operating system features
Objectives
Students will be able to:
-
describe the main concepts of concurrency, their problems and solutions
-
describe the main features for concurrency in operating systems and major
programming languages
-
write simple client-server programs in C
-
describe the main approaches to specification of concurrency
-
specify simple concurrent systems in LOTOS
Transferable Skills
- understanding of systems that support multiple operations simultaneously
Contents
- Concurrency Concepts (12 Lectures)
-
Introduction: aims and structure of the unit, concurrency overview
-
Concurrency: precedence graphs, fork/join, cobegin/coend
-
Mutual Exclusion: semaphores (reprise), critical regions, monitors
-
Inter-Process Communication: message-passing, rendezvous, shared variables,
process naming
-
Deadlocks: conditions (reprise), resource allocation graphs, prevention,
avoidance, detection, recovery
-
Language Support: general issues in concurrent languages, Ada, occam
- Concurrency Specification (12 Lectures)
-
Models of Concurrency: true concurrency (Petri Nets), interleaved
concurrency (CSP, CCS, LOTOS)
-
Process Models: events, synchronisation, processes, behaviour
-
LOTOS Behaviour: operators for sequence, choice, enabling, disabling,
parallelism
-
Concurrency in LOTOS: use of parallelism, deadlock, unfolding of parallelism
-
LOTOS Tools: lola
-
Case Study: specification and analysis of a simple concurrent system
- Concurrency in Operating Systems (12 Lectures)
-
Operating System Support: inter-process communication and system
structuring, Unix processes
-
Lightweight Protocols: Sun LWP library as a case study
-
Inter-Process Communication: pipes in Unix, message passing, broadcast,
multicast, interrupts, sockets, scheduling, multi-threading
-
Distributed IPC: client-server models, distributed message passing, RPC,
naming
-
Examples: Unix, Mach, Chorus, ISO model
Assessment
-
assignment 1 (concurrency specification, 20%)
-
assignment 2 (distributed implementation, 20%)
-
examination (60%)
Textbooks
-
Concurrent Systems, J. Bacon, Addison-Wesley, 1993, ISBN
0-201-41677-8 (recommended)
-
Concurrent Programming, A. Burns and G. Davies, Addison-Wesley, 1993,
ISBN 0-201-54417-2 (additional)
-
Using Formal
Description Techniques, K. J. Turner, John Wiley, 1993, ISBN
0-471-93455-0 (additional)
-
Unix Distributed Programming, C. Brown, Prentice-Hall, 1994, ISBN
0-13-075896-5 (additional)
Up one level to 31V7 (Concurrent and Real-Time Systems)
Dr Carron Shankland
Email: ces@cs.stir.ac.uk
Last revision: 9th September 1997