24
Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Embed Size (px)

Citation preview

Page 1: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Real-Time Software Design

Yonsei University2nd Semester, 2014

Sanghyun Park

Page 2: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Topics Covered System design Real-time executives Monitoring and control systems Data acquisition systems

Page 3: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Real-Time Systems A real-time system is a software system where the correct

functioning of the system depends on the results produced by the system and the time at which these results are produced

Soft real-time system Hard real-time system

Time is critical.Real-time systems MUST respond within specified times

Page 4: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Stimulus/Response Systems One way of looking at a real-time system is as a stimulus /

response system Given a stimulus, the system must produce a response within

a specified time

Periodic stimuli Stimuli which occur at predictable time intervals

(A temperature sensor may be polled 10 times per second)

Aperiodic stimuli Stimuli which occur at unpredictable times

(A system power failure may trigger an interrupt which must be processed by the system)

Page 5: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Architectural Considerations A real-time system has to respond to stimuli that occur

at different times

Control should be transferred to the appropriate handler for that stimulus as soon as it is received

This is impractical in sequential programs

Real-time systems are usually designed as a set of concurrent, cooperating processes with a real-time executive controlling these processes

Page 6: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

A Real-Time System Model

Page 7: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Sensor/Actuator Control Processes

Page 8: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

System Elements Sensor control

Collect information from sensors.May buffer information collected from a sensor

Data processor Carry out processing of collected information and compute

the system response

Actuator control Manage actuator operation

Page 9: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Real-Time System Design Process

1. Identify stimuli and associated responses

2. Define the timing constraints associated with each stimulus and response

3. Aggregate the stimulus and response processing to concurrent processes

4. For each stimulus and response,design algorithms to carry out the required computations

5. Design a scheduling system which will ensure that processes are started in time to meet their deadlines

6. Integrate the system under the control of a real-time executive

Page 10: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Real-Time System Modeling The effect of a stimulus in a real-time system may trigger a

transition from one state to another

Finite state model is a good, language-independent wayof representing the design of a real-time system

The UML includes notations for defining state machine models

Page 11: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

State Machine ModelOf A Microwave Oven

Page 12: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Real-Time Programming Hard real-time systems may have to be programmed in

assembly language to ensure that deadlines are met

System-level languages such as C allow efficient programs to be written but do not have constructs to support concurrency or shared resource management

Ada as a language designed to support real-time system design includes a general purpose concurrency mechanism

Page 13: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Java As A Real-Time Language Java supports lightweight concurrency (threads and

synchronized methods) and can be used for some soft real-time systems

Java is not suitable for hard real-time programming or programming where precise control of timing is required

Not possible to specify thread execution time Uncontrollable garbage collection Not possible to discover queue sizes for shared resources Variable virtual machine implementation Not allow for detailed run-time space or processor analysis

Page 14: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Real-Time Executives Real-time executives are analogous to an operating system

in a general-purpose computer

Responsible for process management and resource (processor and memory) allocation

Components Real-time clock (timer) Interrupt handler: manages aperiodic requests for service Scheduler: chooses the next process to be run Resource manager: allocates memory and processor resources Dispatcher: starts process execution

Page 15: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

ComponentsOf A Real-Time Executives

Page 16: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Starting A Process

Page 17: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Stimuli Priority The executive has to be able to manage at least two

priority levels for the system processes

Interrupt level priority: highest priority which is allocated to processes requiring a very fast response

Clock level priority: allocated to periodic processes

Page 18: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

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(e.g., waiting for input)

Pre-emptive scheduling The execution of an executing process may be stopped

if a higher priority process requires service

Scheduling algorithms Round-robin Rate monotonic Shortest deadline

Page 19: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Monitoring and Control Systems

Important standard/generic real-time system class

Continuously check sensors and take actions depending on sensor values

Monitoring systems take an actionwhen some exceptional sensor value is detected

Control systems continuously control hardware actuators depending on the value of associated sensors

Page 20: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Burglar Alarm System A system is required to monitor sensors on doors and

windows to detect the presence of intruders in a building

When a sensor indicates a break-in, the system switches on lights around the area and calls police automatically

The system should include provision for operation without a main power supply

Page 21: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Control Systems The burglar alarm system is a monitoring system rather

than a control system as it does not include actuators which are directly affected by sensor values

Control systems are similar but, in response to sensor values, the system sends control signals to actuators

An example of a control system is a building heating control system which monitors temperatures and switches heaters on and off

Page 22: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Data Acquisition System Collect data from sensors for subsequent processing and

analysis

Data collection processes and processing processes may have different periods and deadlines

Data collection may be faster than processing

Circular or ring buffers are a mechanism for smoothing speed differences

Page 23: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

A Ring Buffer For Data Acquisition

Page 24: Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park

Mutual Exclusion Producer processes collect data and add it to the buffer.

Consumer processes take data from the buffer and make elements available

Producer and consumer processes must be mutually excluded from accessing the same element

The buffer must stop producer processes from adding information to a full buffer and consumer processes from trying to take information from an empty buffer