Book contents
- Frontmatter
- Dedication
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- Part I Overview
- Part II Real-Time Software Design Method
- 4 Overview of Real-Time Software Design Method for Embedded Systems
- 5 Structural Modeling for Real-Time Embedded Systems with SysML and UML
- 6 Use Case Modeling for Real-Time Embedded Systems
- 7 State Machines for Real-Time Embedded Systems
- 8 Object and Class Structuring for Real-Time Embedded Software
- 9 Dynamic Interaction Modeling for Real-Time Embedded Software
- 10 Software Architectures for Real-Time Embedded Systems
- 11 Software Architectural Patterns for Real-Time Embedded Systems
- 12 Component-Based Software Architectures for Real-Time Embedded Systems
- 13 Concurrent Real-Time Software Task Design
- 14 Detailed Real-Time Software Design
- 15 Designing Real-Time Software Product Line Architectures
- Part III Analysis of Real-Time Software Designs
- Part IV Real-Time Software Design Case Studies for Embedded Systems
- Appendix A Conventions Used in This Textbook
- Appendix B Catalog of Software Architectural Patterns
- Appendix C Pseudocode Templates for Concurrent Tasks
- Appendix D Teaching Considerations
- Glossary
- Bibliography
- Index
13 - Concurrent Real-Time Software Task Design
from Part II - Real-Time Software Design Method
Published online by Cambridge University Press: 05 March 2016
- Frontmatter
- Dedication
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- Part I Overview
- Part II Real-Time Software Design Method
- 4 Overview of Real-Time Software Design Method for Embedded Systems
- 5 Structural Modeling for Real-Time Embedded Systems with SysML and UML
- 6 Use Case Modeling for Real-Time Embedded Systems
- 7 State Machines for Real-Time Embedded Systems
- 8 Object and Class Structuring for Real-Time Embedded Software
- 9 Dynamic Interaction Modeling for Real-Time Embedded Software
- 10 Software Architectures for Real-Time Embedded Systems
- 11 Software Architectural Patterns for Real-Time Embedded Systems
- 12 Component-Based Software Architectures for Real-Time Embedded Systems
- 13 Concurrent Real-Time Software Task Design
- 14 Detailed Real-Time Software Design
- 15 Designing Real-Time Software Product Line Architectures
- Part III Analysis of Real-Time Software Designs
- Part IV Real-Time Software Design Case Studies for Embedded Systems
- Appendix A Conventions Used in This Textbook
- Appendix B Catalog of Software Architectural Patterns
- Appendix C Pseudocode Templates for Concurrent Tasks
- Appendix D Teaching Considerations
- Glossary
- Bibliography
- Index
Summary
For a real-time embedded system, an important consideration in system or subsystem design is the design of the concurrent tasks it contains as well as the communication and synchronization between these tasks, as described in this chapter. A task type is an active class and a task is an active object with its own thread of control. A passive object is an instance of a passive class and has no thread of control.
During concurrent task design, a task architecture is developed in which the system is structured into concurrent tasks and the task interfaces and interconnections are designed. To help determine the concurrent tasks, task structuring criteria are provided to assist in mapping an object-oriented analysis model of the system to a concurrent tasking architecture. These criteria are a set of heuristics, also referred to as guidelines, which capture expert designer knowledge in the software design of concurrent real-time systems. Task structuring decisions are depicted using stereotypes. This chapter uses MARTE stereotypes (Selic 2014) to depict concurrent tasks, as introduced in Chapter 3. After task structuring, the task interfaces and interconnections are designed by applying the architectural communication patterns described in Chapter 11.
Real-time software architectures can also be distributed; for this reason they can be considered a special case of component-based software architectures. In this context, a simple component is either designed as one task or as a component that contains multiple active objects (tasks) and passive objects, as described in Chapter 12.
This chapter is organized as follows: Section 13.1 describes concurrent task structuring issues. Section 13.2 describes categorizing concurrent tasks using task structuring criteria. Section 13.3 describes I/O task structuring criteria, while Section 13.4 describes internal task structuring criteria. Section 13.6 describes task clustering structuring criteria. Section 13.7 describes design restructuring using task inversion. Section 13.8 describes the steps in developing the concurrent task architecture. Section 13.9 describes designing the task interfaces using task communication and synchronization. Section 13.10 describes documenting task interface and behavior specifications.
CONCURRENT TASK STRUCTURING ISSUES
A concurrent task is an active object, also referred to as a concurrent object, process or thread. In this chapter, the term concurrent task is used to refer to an active object with one thread of control.
- Type
- Chapter
- Information
- Real-Time Software Design for Embedded Systems , pp. 233 - 265Publisher: Cambridge University PressPrint publication year: 2016