Concurrency: Models and Programming
Module aims• To introduce the basic concepts of concurrent programs, and demonstrate them in Java. • To provide an introduction to model-based program design and apply it to concurrent programs. • To teach the students how to translate concurrent models into executable Java applications. • Understand how to describe the structure of concurrent programs • Acquire modelling skills to construct working FSP models • Learn how to translate FSP models into executable Java code • Learn how to describe concurrent properties of the system and verify them using models.
Module syllabusProcesses and Threads • Finite State Processes • Labelled Transition Systems • Threads in Java Concurrent Execution • Interleaved actions • Synchronisation Shared Objects, Interference, and Condition Synchronization • Critical sections • Monitors • Entry queues • Condition variables • Wait and signal, alternative signalling mechanisms, reasoning about monitors • Condition Synchronization • Waiting sets in Java Safety and Liveness Properties • Deadlocks • Starvation • Progress Model-based Design • Full lifecycle from specification to implementation Format Three hours per week over nine weeks of combined lectures and tutorials. Optional Java surgery hour.
AssessmentsTwo coursework exercise. One written exam. *This is a level 7/M course
Upper Saddle River, NJ : Addison-Wesley
2nd ed., Chichester : Wiley