CS452 - Real-Time Programming - Fall 2010
Lecture 1 - Introduction
Pubilc Service Annoucements
- Due date for assignment 0
- Combination to trains lab
- How to compile and run your first program
Practical Details: pdf
What is real-time programming?
Actually real-world programming, which means
- World is measured in seconds, metres, etc.
- Programs manipulate bits, bytes, words, which must be translated into
into real-world measures.
For example,
- formatted output: translate from int, which computers manipulate,
to decimal, which humans read
- out in the open: i2a( ), printf( )
- hidden: print, cout
- Banking: int translates into, e.g., number of cents
- program says dispense( 10000 ), which means `put five twemties
into the hopper'.
- microcontrollers start
- activating motors
- sensing forces
- reading digitized video
- etc.
- Train control: contents of messages map into change speed, switch
turn-out, sensor triggered
What is important for real-time?
- Throughput
- e.g., number of frames per second in a game
- e.g., frequency of sensor sampling in process control
- no solution except
- getting better hardware
- getting better algorithms
- restructuring the task
- Response time
In cs452 we take guaranteed response time as the defining quality of
real-time computation.
Embedded Systems
Most of the mediation between the internal representations and the
real-world is done by embedded systems
- invisible computing
- sense and control
- billions and billions sold
Development Model
Two box model
- develop on one box
- execute on a different box.
Development cycle
- edit & compile on one box
- download to second box
- execute
Problem one
- raw code that owns the hardware itself
- hardware-specific libraries provide access to hardware
- microcontroller/hopper example
Problem two
- OS-like abstraction of hardware
- looks like a bunch of libraries, plus a little more.
Return to: