Real-time Systems Page
Submitted by Andy Gavin on Sat, 2006-02-25 19:40
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.
- 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.
- Aperiodic and periodic scheduling
- Predictable
- Deterministic
- Dependable Parts: Software Errors. Failure semantics.
- Program Design:
- Coupling (a measure of independence) and Cohesion (a measure of module binding).
- Object Orientated Design
- Virtual machine abstraction.
- modularization
- Stepwise refinement
- 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
- Formal Methods: VDM, Z
- Scheduling: Cyclic, Time Slice, Task Queues
- Sharing resources (mutual exculusion): semaphore, monitor.
- Inter-task communication
- Methodologies: CORE, YSM, JSD, MASCOT, HOOD
- Distributed Systems: Fault-tolerance, Distributed Atomic Transactions.
- 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
- Real-time Ethernet
- Capture Effect
- Reducing Collisions
Old Reference Papers
- Concepts and Notations in Concurrent Programming
- Implementing Fault Tolerant Services Using the State Machine Approach
- Understanding Fault-Tolerant Distributed Systems
- Event Helix
Hardware