CS452 - Real-Time Programming - Spring 2009

Lecture 28 - History : Controllers

1. Deadlock

2. Livelock (Deadly Embrace)

3. Critical Races

4. Performance

Priority

The hardest thing to get right

Problems with priority

  1. Priority inversion
  2. One resource, many clients
  3. Tasks try to do too much

Congestion

  1. Too many tasks
  2. Not enough tasks

Layered abstraction are costly

e.g. Notifier -> SerialServer -> InputAccumulater -> Parser -> TrackServer

Hardware

  1. Turn on optimization, but be careful
  2. Turn on caches
  3. Size & align calibration tables by size & alignment of cache lines
  4. Slowing and stopping

Hardware for Real-Time

First Generation

  1. Big mainframe computers
  2. Finite state machine controllers

Second Generation

  1. Big mainframe computers
  2. Mini-computers
  3. Other tools, such as state charts

Third Generation

  1. Multi-CPU servers
  2. Micro-computers
  3. Micro-controllers

Fourth Generation

  1. Multi-(multi-core CPUs) called servers
  2. Multi-core microprocessors
  3. Stream processors

Return to: