CS452 - Real-Time Programming - Fall 2008
Lecture 25 - Programming Languages for Real-time Programs
Questions & Comments
Demos:
Tuesday afternoon, starting at 1.00
fifteen minutes long
only two groups in the lab at a time.
Hardware
First Generation
Big mainframe computers
transaction processing
try to be fast, but it's up to the human to wait
Finite state machine controllers
real-time
machines don't wait
primarily focussed on small scale control
washing machines
transmissions
artillery shells
usually represented as directed graphs with conditions
states are nodes
edges are transitions
simple translation of mechanical hardware to software
discrete components, SSI, with program designed into the circuit
run on a fixed clock
evaluate conditions
change state
real-time is put in by hand, painfully
could be extensively tested
Second Generation
Big mainframe computers
transaction processing
humans still wait
Mini-computers
real-time
primarily focussed on large scale control
chemical plamts
trains
telecommunications
always backed up by physical failsafes
extremely rudimentary single threaded operating systems, to support
polling loops
cyclic execution
interrupt controllers without operating system support
Multiple tasks, when required, were programmed ad hoc using more than one computer
communication managed by hand
no explicit support for real-time
Unix came into being on a minicomputer
as a response to the all-singing, all-dancing operating systems of mainframes
many Unix-like descendants
DEC was the leading manufacturer
RT11 (real-time for PDP11) was the operating system it supplied
MS-DOS was a rip-off of RT11
second generation via Gary Kildall
PDP11 used the first fully-integrated CPU.
Other tools, such as state charts
real-time
state machines with states that are Cartesian products
focussed on small scale control
digital watches
traffic lights
program was in ROM
called firmware
cyclic execution
Third Generation
Multi-CPU servers
more or less tightly coupled
dominated by RPC and its relatives
Micro-computers
many (most?) were used in real-time applications
point-of-sale systems
games
telephone switches
supported by DOS (still in use!)
much ad hoc intercommunication
as with mini-computers
Micro-controllers
including DSPs
Fourth Generation
Multi-(multi-core CPUs) called servers
communicate and synchronize using shared memory
using techniques from CS343
multi-core, cache, and shared memory don't play well together
performance limited by threading
explicit support for threading, e.g. register windows (Sun) increases performance hugely
communication still costly
Multi-core microprocessors
performance strongly hampered by lack of multi-threading
multi-core, cache, and shared memory don't play well together
Stream processors
good for SIMD
Return to:
Bill Cowan's Fall 2008 CS452 page
Bill Cowan's CS452 page
Bill Cowan's teaching page
Bill Cowan's home page