EMBEDDED SOFTWARE Team victorious Team Victorious.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13Slide 1 Chapter 13 Real-time Software Design.
Advertisements

© Alan Burns and Andy Wellings, 2001 Real-Time Systems and Programming Languages n Buy Real-Time Systems: Ada 95, Real-Time Java and Real-Time POSIX by.
Real-time software Sommerville, Hfst. 13. Sommerville, Ch. 132 Real-time systems A real-time system is a software system where the correct functioning.
Chapter 20- Embedded Systems
Chapter 2 Real-time software design
Chapter 20- Embedded Systems Lecture 1. Topics covered  Embedded systems design  Architectural patterns  Timing analysis  Real-time operating systems.
Lecture 11: Operating System Services. What is an Operating System? An operating system is an event driven program which acts as an interface between.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 2.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Real-Time Systems and Programming Languages
Establishing the overall structure of a software system
Chapter 11 Operating Systems
CprE 458/558: Real-Time Systems
Chapter 1 Embedded And Real-Time System Department of Computer Science Hsu Hao Chen Professor Hsung-Pin Chang.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
1 Embedded Systems Development. 2 Topics covered  Embedded systems design  Architectural patterns  Timing analysis  Real-time operating systems.
Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
 Dr. Syed Noman Hasany 1.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 2Slide 1 Chapter 2 Computer-Based System Engineering As modified by Randy Smith.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
1 소프트웨어공학 강좌 Chap 11. Real-time software Design - Designing embedded software systems whose behaviour is subject to time constraints -
CS4730 Real-Time Systems and Modeling Fall 2010 José M. Garrido Department of Computer Science & Information Systems Kennesaw State University.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
EEL Software development for real-time engineering systems.
Real-Time Operating Systems for Embedded Computing 李姿宜 R ,06,10.
Multiprocessor and Real-Time Scheduling Chapter 10.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Reference: Ian Sommerville, Chap 15  Systems which monitor and control their environment.  Sometimes associated with hardware devices ◦ Sensors: Collect.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Software Engineering CSC 342/Dr. Ghazy Assassa Chapter 10, Architectural Design “Sommerville +.. “ Slide 1 CSC 342 Semester II: H ( G)
Slide 1 Chapter 11 Real –time Software Designs. Slide 2 Real-time systems l Systems which monitor and control their environment l Inevitably associated.
Prepare by : Ihab shahtout.  Overview  To give an overview of fixed priority schedule  Scheduling and Fixed Priority Scheduling.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Real-time Software Design.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Real-time Software Design King Saud University College of Computer and Information Sciences Department of Computer Science Dr. S. HAMMAMI.
CS4730 Real-Time Systems and Modeling Fall 2010 José M. Garrido Department of Computer Science & Information Systems Kennesaw State University.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
O PERATING S YSTEM. What is an Operating System? An operating system is an event driven program which acts as an interface between a user of a computer,
Chapter 21– Real-time Software Engineering 04/12/2014Chapter 21. Real-time Software Engineering1.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
Real time scheduling G.Anuradha Ref:- Stallings. Real time computing Correctness of the system depends not only on the logical result of computation,
For a good summary, visit:
Embedded Computer - Definition When a microcomputer is part of a larger product, it is said to be an embedded computer. The embedded computer retrieves.
Software Engineering for Embedded Systems Lecture 12.
1.  System Characteristics  Features of Real-Time Systems  Implementing Real-Time Operating Systems  Real-Time CPU Scheduling  An Example: VxWorks5.x.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Software Design.
Real-time System Definition A real-time system is a software system where the correct functioning of the system depends on the results produced by the.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Embedded software / Real-time Software Engineering 1.
Real-time Software Design. Objectives l To explain the concept of a real-time system and why these systems are usually implemented as concurrent processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Real-time Software Design
Real-time Software Design
Real-time Software Design
Part 3 Design What does design mean in different fields?
Real-time Software Design
Real-time Software Design
CS 501: Software Engineering Fall 1999
Presentation transcript:

EMBEDDED SOFTWARE Team victorious Team Victorious

OBJECTIVE This presentation will introduce some of the characteristic features of embedded real-time system and software engineering. This presentation will also help you: Understand the concept of embedded software, which is used to control systems that must react to external events in their environment. Understand the design process for real-time systems, where the software systems are organized as a set of cooperating processes. Understand three architectural patterns that are commonly used in embedded real-time systems design; Understand the organization of real-time operating systems and the role that they play in an embedded, real-time system. Team victorious

What is an Embedded Software System? An embedded software system is part of a hardware/software system that reacts to events in its environment. The software is ‘embedded’ in the hardware. Embedded systems are normally real-time systems. Team victorious

Embedded software is very important economically because almost every electrical device now includes software. There are therefore many more embedded software systems than other types of software system. If you look around your house you may have three or four personal computers. But you probably have 20 or 30 embedded systems, such as systems in phones, cookers, microwaves, etc. Embedded systems can be thought of as reactive systems; that is, they must react to events in their environment at the speed of that environment (Berry, 1989). Team victorious

Team victorious

REAL-TIME SOFTWARE SYSYTEM This is a system whose correct operation depends on both the results produced by the system and the time at which these results are produced. The software system has a deadline for responding to external events. If this deadline is missed, then the overall hardware–software system will not operate correctly. Team victorious

Examples of an Embedded Software System The insulin pump software. The wilderness weather station software. Burglar alarm software Note: explain a little Team victorious

Difference Between Embedded Software Systems and Other Software Systems The paramount difference between embedded systems and other software systems such as information systems, web-based systems whose main purpose is data processing is the responsiveness in real time. Other differences exists which are: Embedded systems generally run continuously and do not terminate. The real-time system may include update mechanisms that support dynamic reconfiguration so that the system can be updated while it is in service. Team victorious

Difference Between Embedded Software Systems and Other Software Systems continue………. Interactions with the system’s environment are uncontrollable and unpredictable. Real-time embedded systems must be able to respond to unexpected events at any time. This leads to a design for real-time systems based on concurrency(time in computers), with several processes executing in parallel. Issues of safety and reliability may dominate the system design. Many embedded systems control devices whose failure may have high human or economic costs. Therefore, dependability is critical and the system design has to ensure safety-critical behavior at all times. Team victorious

Embedded systems design Given that embedded systems are reactive systems that react to events in their environment, the most general approach to embedded, real-time software design is based on a stimulus-response model. A STIMULUS is an event occurring in the software system’s environment that causes the system to react in some way; a Response is a signal or message that is sent by the software to its environment. Stimuli fall into two classes: Periodic stimuli : These occur at predictable time intervals. Aperiodic stimuli: These occur irregularly and unpredictably and are usually signaled using the computer’s interrupt mechanism. Team victorious

A general model diagram of an embedded system A general model diagram of an embedded system. Stimuli come from sensors in the system’s environment and responses are sent to actuators. The actuators themselves may also generate stimuli. The stimuli from actuators often indicate that some problem has occurred, which must be handled by the system. Team victorious

Activities that are expected to be included in a real-time software design process: Platform selection : you choose an execution platform for the system (i.e., the hardware and the real-time operating system to be used). Stimuli/response identification: This involves identifying the stimuli that the system must process and the associated response or responses for each stimulus. Timing analysis For each stimulus and associated response, you identify the timing constraints that apply to both stimulus and response processing. Process design At this stage, you aggregate the stimulus and response processing into a number of concurrent processes. Algorithm design For each stimulus and response, you design algorithms to carry out the required computations. Data design You specify the information that is exchanged by processes and the events that coordinate information exchange, an d design data structures to manage this information exchange. Process scheduling You design a scheduling system that will ensure that processes are started in time to meet their deadlines. Team victorious

Architectural patterns in Real Time Software System Observe and React: When the sensors show that some event has occurred (e.g. An incoming call on a cell phone), the system reacts by initiating a process to handle that event. Environmental Control: In response to environmental changes detected by the sensor, control signals are sent to the system actuators. Process Pipeline: This pattern is used when data has to be transformed from one representation to another before it can be processed. The transformation is implemented as a sequence of processing steps, which may be carried out concurrently. This allows for very fast data processing, because a separate core or processor can execute each transformation. Team victorious

Timing Requirements of Embedded System The correctness of a real-time system depends not just on the correctness of its outputs but also on the time at which these outputs were produced. This means that an important activity in the embedded, real-time software development process is timing analysis. When you are analyzing the timing requirements of embedded real-time systems and designing systems to meet these requirements, the following key factors have to be considered: 1. Deadlines 2. Frequency 3. Execution time Team victorious

Real-time operating systems(RTOS) A platform is always needed to execute an application system. A real-time operating system manages processes and resource allocation for a real-time system. It starts and stops processes so that stimuli can be handled and allocates memory and processor resources. Standard operating systems, such as Linux and Windows, are not normally used as the execution platform for real-time systems. Very simple embedded systems may be implemented as ‘bare metal’ systems. The systems themselves include system startup and shutdown, process and resource management, and process scheduling. More commonly, however, embedded applications are built on top of a real-time operating system (RTOS), which is an efficient operating system that offers the features needed by real-time systems. Examples of RTOS are Windows/CE, Vxworks, and RTLinux. Team victorious

COMPONENTS OF RTOS A real-time clock, which provides the information required to schedule processes periodically. An interrupt handler, which manages aperiodic requests for service. A scheduler, which is responsible for examining the processes that can be executed and choosing one of these for execution. A resource manager, which allocates appropriate memory and processor resources to processes that have been scheduled for execution. A dispatcher, which is responsible for starting the execution of processes. Team victorious

Team victorious

The actions taken by the operating system for periodic process management are shown in the figure in previous slide. The scheduler examines the list of periodic processes and selects a process to be executed. The choice depends on the process priority, the process periods, the expected execution times, and the deadlines of the ready processes. Team victorious

At any one time, there may be several processes, all with different priorities, that could be executed. The process scheduler implements system-scheduling policies that determine the order of process execution. There are two commonly used 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, such as waiting for input. Pre-emptive scheduling: The executing process may be stopped if a higher-priority process requires service. Team victorious

Advantages of Embedded Software Embedded systems are easier to maintain the supplied power is embedded in the system and does not require remote maintenance. Team victorious

Disadvantages of Embedded Software Embedded systems are difficult to service they are inside another machine, so a greater effort is made to carefully develop them. E.g Difficult to upgrade Team victorious

Summary An embedded software system is part of a hardware/software system that reacts to events in its environment. The software is ‘embedded’ in the hardware. Embedded systems are normally real-time systems. A real-time operating system is responsible for process and resource management. It always includes a scheduler, which is the component responsible for deciding which process should be scheduled for execution Real-time systems are usually implemented as a set of communicating processes that react to stimuli to produce responses. Team victorious

References Berry, G. (1989). ‘Real-time programming: Special-purpose or general-purpose languages’. In Information Processing. Ritter, G. (ed.). Amsterdam: Elsevier Science Publishers, 11–17. Software engineering 9 Summer Villi_www.titlecover.com http://www.ehow.com/facts_5526848_advantages-embedded-system.html#ixzz2kAsGXtMk Team victorious