Concurrency State Models and Java Progra
Concurrency State Models and Java Progra
Concurrency: introduction 1
©Magee/Kramer 2nd Edition
What is a Concurrent Program?
Concurrency: introduction 2
©Magee/Kramer 2nd Edition
Concurrent and Distributed Software?
Interacting,
concurrent software
components of a
system:
Communication
Network single machine ->
shared memory
interactions
multiple machines ->
network interactions
Concurrency: introduction 3
©Magee/Kramer 2nd Edition
Why Concurrent Programming?
♦ Mars Rover
Problems with interaction between concurrent tasks
caused periodic software resets reducing availability for
exploration.
Concurrency: introduction 5
©Magee/Kramer 2nd Edition
a Cruise Control System
When the car ignition is
switched on and the on
button is pressed, the
current speed is recorded
and the system is enabled:
it maintains the speed of
the car at the recorded
setting.
Pressing the brake,
accelerator or off button
disables the system.
buttons
Pressing resume re-enables
the system.
♦ Is the system safe?
♦ Would testing be sufficient to discover all errors?
Concurrency: introduction 6
©Magee/Kramer 2nd Edition
models
engineOn
0 1
speed
Concurrency: introduction 10
©Magee/Kramer 2nd Edition
Book
Concurrency:
State Models &
Java Programs,
2nd Edition
WILEY
1st
edition
Concurrency: introduction 11
©Magee/Kramer 2nd Edition
Course Outline
Advanced topics …
9. Dynamic systems 12. Timed Systems
10. Message Passing 13. Program Verification
11. Concurrent Software Architectures 14. Logical Properties
Concurrency: introduction 12
©Magee/Kramer 2nd Edition
Web based course material
http://www.wileyeurope.com/college/magee
Java examples and demonstration programs
State models for the examples
Labelled Transition System Analyser (LTSA) for
modeling concurrency, model animation and model
property checking.
Concurrency: introduction 13
©Magee/Kramer 2nd Edition
Summary
Concepts
z we adopt a model-based approach for the design and
construction of concurrent programs
Models
z we use finite state models to represent concurrent behavior.
Practice
z we use Java for constructing concurrent programs.