SEU/IS/19/MIT/056 Management and Information Technology Faculty of Management and Commerce South Eastern University of Sri Lanka

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

MIT31043

REAL TIME SOFTWARE ENGINEERING

Summary Report

SEU/IS/19/MIT/056
SANTHAKUMAR PRIYA
MANAGEMENT AND INFORMATION TECHNOLOGY
FACULTY OF MANAGEMENT AND COMMERCE
SOUTH EASTERN UNIVERSITY OF SRI LANKA
Real-time Software Engineering
Embedded system design
Architectural patterns for real-time software
Timing analysis
Real-time operating systems

1.EMBEDDED SYSTEM DESIGN


used to control a wide range of systems from simple domestic machines, through games controllers, to
entire manufacturing plants.
Their software must react to events generated by the hardware and, often, issue control signals in response
to these events.
The software in these systems is embedded in system hardware, often in read-only memory, and usually
responds, in real time, to events from the system’s environment.
Embedded system design
The design process for embedded systems is a systems engineering process that has to consider, in detail,
the design and performance of the system hardware.
Part of the design process may involve deciding which system capabilities are to be implemented in
software and which in hardware.
Low-level decisions on hardware, support software and system timing must be considered early in the
process.
These may mean that additional software functionality, such as battery and power management, has to be
included in the system.
Architectural considerations
timing demands made by different stimuli/responses, the system architecture must allow for fast switching
between stimulus handlers.
Timing demands of different stimuli are different so a simple sequential loop is not usually adequate.
System elements
Sensor control processes
Data processor
Actuator control processes

Design process activities


Platform selection
Stimuli/response identification
Timing analysis
Process design
Algorithm designData design
Process scheduling
Real-time system modelling
real-time system may trigger a transition from one state to another.
State models are therefore often used to describe embedded real-time systems.
Real-time programming
real-time systems development have to include facilities to access system hardware, and it should be
possible to predict the timing of particular operations in these languages.
Systems-level languages, such as C, which allow efficient code to be generated are widely used in
preference to languages such as Java.

2.ARCHITECTURAL PATTERNS FOR REAL-TIME SOFTWARE

Characteristic system architectures for embedded systems


▪ Observe and React This pattern is used when a set of sensors are routinely monitored and displayed.
▪ Environmental Control This pattern is used when a system includes sensors, which provide information
about the environment and actuators that can change the environment
▪ Process Pipeline This pattern is used when data has to be transformed from one representation to another
before it can be processed.

3.TIMING ANALYSIS
timing analysis, you calculate how often each process in the system must be executed to ensure that all
inputs are processed and all system responses produced in a timely way.
The results of the timing analysis are used to decide how frequently each process should execute and how
these processes should be scheduled by the real-time operating system.
Power failure timings
It takes 50 milliseconds for the supplied voltage to drop to a level where the equipment may be damaged.
The battery backup must therefore be activated and in operation within 50ms.
It takes 16ms from starting the backup power supply to the supply being fully operational.
There is a checking process that is scheduled to run 250 times per second every 4ms.

4.REAL-TIME OPERATING SYSTEMS


Real-time operating systems are specialised operating systems which manage the processes in the RTS.
Responsible for process management and resource (processor and memory) allocation.
May be based on a standard kernel which
is used unchanged or modified for a particular application.
Do not normally include facilities such as file management.
Operating system components
Real-time clock
Interrupt handler
Scheduler
Resource manager

Non-stop system components


1.Configuration manager
Hardware modules may be replaced and software upgraded without stopping the systems.
2.Fault manager
Responsible for detecting software and hardware faults and taking appropriate actions to ensure that the
system continues in operation.
Process management
Concerned with managing the set of concurrent processes.
Periodic processes are executed at pre-specified time intervals.
The processing of some types of stimuli must sometimes take priority.
Interrupt level priority. Highest priority which is allocated to processes requiring a very fast response.
Interrupt servicing
Control is transferred automatically to a pre-determined memory location.
This location contains an instruction to jump to an interrupt service routine.
Further interrupts are disabled, the interrupt serviced and control returned to the interrupted process.
Interrupt service routines MUST be short, simple and fast.
Process switching
The scheduler chooses the next process to be executed by the processor. This depends on a scheduling
strategy which may take the process priority into account.
The resource manager allocates memory and a processor for the process to be executed.
The dispatcher takes the process from ready list, loads it onto a processor and starts execution.
Scheduling strategies
Non pre-emptive scheduling
▪ Once a process has been scheduled for execution, it runs to completion or until it is blocked for some
reason
Pre-emptive scheduling
▪ The execution of an executing processes may be stopped if a higher priority process requires service.
Scheduling algorithms
▪ Round-robin;
▪ Rate monotonic;
▪ Shortest deadline first.

You might also like