CSE 5324: Software Engineering I

(Analysis, Design, Creation)

 

Fall 1997

 

Real-Time Systems:

 

What are they?

 

When (where) are they used?

 

How are they different? (From non-RT)

 

 

 

Many (most) real-time systems are embedded

 

Where are they seen:

where real-world events are time critical:

navigation (air, space)

medical

telecomm, network

games

 

Often classified into:

Soft (RT)

Hard (RT)

 

Usually both (and non-RT requirements also)

 

Degraded operation versus Incorrect results

 

 

 

Often viewed as stimulus - response system

 

Stimuli:

Periodic (predictable time intervals)

Aperiodic (irregular)

 

Response:

Actuator

 

Classification:

Monitoring systems

Data Acquisition

Command and Control

etc.

 

 

 

Usually hardware and software done in parallel

(and tradeoffs are made)

 

Establish system requirements

 

Partition Requirements

Software Reqs Hardware Reqs

 

Software Design Hardware Design

 

 

Steps:

 

Identify Stimuli (to process) and associated response

 

For each stimuli and response identify timing constraints

 

Group stimuli and response into concurrent processes

 

For each, design algorithms (usually early in design

process, may make tradeoffs)

 

Design scheduling system to ensure processes started

on time

 

Integrate with a real-time executive (OS)

 

 

 

Implementation overhead is critical:

 

Design tools and methodolgies

 

Programming language:

 

Is C appropriate?

(NO)

 

C++?

(Even worse)

 

Ada

Ada 83 was not (design errors) but Ada 95 is

What is needed:

HLL synchronization

OS interface constructs: mutual exclusion, IPC, start

process by time, scheduler changes, etc.

Interrupt handling

 

OS:

 

(Not Unix!)


Real time clock

Interrupt handler

Scheduler

Resource manager

Dispatcher

May include:

Configuration manger

Static or dynamic

Fault manager

Hardware and software

 

 

 

Some Issues:

 

Is OO a good idea for RT?

 

Timing: how to make estimates:

Counting instructions (pipelines, etc.)

Compiler helping

Analysis

 

Simulate

 

Use good tools: