Professional Documents
Culture Documents
TOPIC 1:
INTRODUCTION
http://www.rtj.org
Concurrent Programming
The name given to programming notation and techniques
for expressing potential parallelism and solving the
resulting synchronization and communication problems
Why we need it
2
1
10
0
10
-1
10
-2
10
-3
10
-4
human
tape
floppy
CD
10
10
10
10
10
10
-5
-6
-7
-8
-9
memory
processor
I/O Device
Initiate I/O
Operation
Process I/O
Request
Signal Completion
Interrupt I/O
Routine
I/O Finished
Continue with
Outstanding Requests
Why we need it
To allow the expression of potential parallelism so that
Why we need it
To model the parallelism in the real world
Virtually all real-time systems are inherently concurrent
Why we need it
Alternative: use sequential programming techniques
The programmer must construct the system as the cyclic
Terminology
A concurrent program is a collection of autonomous
Multiprocessing
Distributed Processing
the correctness depends not only on the logical result but also
the time it was delivered
Terminology
Hard real-time systems where it is absolutely imperative
that responses occur within the required deadline. E.g. Flight
control systems.
A system may have all hard, soft and real real-time subsystems
Many systems may have a cost function associated with
missing each deadline
Input flow
reading
Flow meter
Processing
Output valve
angle
Time
Computer
Valve
A Grain-Roasting Plant
Bin
Furnace
Fuel Tank
grain
Pipe
fuel
Valve
Chemicals
and
Materials
Temperature
Transducer
PLANT
Stirrer
Finished
Products
Finished
Products
Parts
Machine Tools
Manipulators
Conveyor Belt
Terminals
Sensors/Actuators
Algorithms for
Digital Control
Interface
Engineering
System
Data Logging
Remote
Monitoring System
Data Retrieval
and Display
Display
Devices
Database
Operators
Console
Operator
Interface
Real-Time Computer
Characteristics of a RTS
Large and complex vary from a few hundred lines of
Characteristics of a RTS
Extreme reliability and safe embedded systems typically
Java Architecture
JBC
JBC
JBC
Hardware
JVM
Standalone
JVM
Real-time Operating
System
JVM
Summary I
The motivations for concurrent programming have been
presented:
Summary II
The basic characteristics of a real-time or embedded
computer system are:
Further Reading
Chapter 1 of Burns and Wellings, Real-Time Systems and
Programming Languages, 3rd Edition, 2001 (in library)