Real-time Systems Page

This page is for organising my notes on Real-Time Systems. If you see this page in a feed you should re-subscribe to the RSS feed on the blog page (or the one contained on the front page.

  1. What are Real-Time Systems: Categorising Systems. Athough it would be useful to categorise a system as real-time or a better model is a graduation from batch, through online to realtime. Along the axis the system becomes more and more time dependant.
    1. Aperiodic and periodic scheduling
    2. Predictable
    3. Deterministic
  2. Dependable Parts: Software Errors. Failure semantics.
  3. Program Design:
    • Coupling (a measure of independence) and Cohesion (a measure of module binding).
    • Object Orientated Design
    • Virtual machine abstraction.
    • modularization
    • Stepwise refinement
  4. Diagrams
    • Context and Entity Relationship
    • Data-flow diagrams
    • Process structure diagrams: Grafcet.
    • Program structure diagrams: jackson, yourdon
      (top-to-bottom) Warnier-Orr, action diagrams (left-right), Nassi-Shneiderman, Design Structure Diagram (Flowchart)

    • Event Dependent: State Transition Diagrams, Petri-Nets
    • Data-Structure Diagrams
  5. Formal Methods: VDM, Z
  6. Scheduling: Cyclic, Time Slice, Task Queues
  7. Sharing resources (mutual exculusion): semaphore, monitor.
  8. Inter-task communication
  9. Methodologies: CORE, YSM, JSD, MASCOT, HOOD
  10. Distributed Systems: Fault-tolerance, Distributed Atomic Transactions.
  11. Hardware: RAID.

The production of a kludge (a Philosophy of Design, Lee Harrisberger 1966)

  • Don't Plan
  • Don't introduce structure or order into the code.
  • Begin coding straight away.
  • Be clever.
  • Be Obscure.
  • Don't use standard methods--- invent new ones.
  • Insist the source is sufficient to document the software--- and use cryptic and meaningless comments and names.
  • Never revise the design.
  • Make software unportable.
  • Sacrifice all code to efficency.

Realtime ethernet

Old Reference Papers

  1. Concepts and Notations in Concurrent Programming
  2. Implementing Fault Tolerant Services Using the State Machine Approach
  3. Understanding Fault-Tolerant Distributed Systems
  4. Event Helix

Hardware

  1. Coloxia