Skip to content

Real-Time Systems Design and Analysis Tools for the Practitioner

Spend $50 to get a free DVD!

ISBN-10: 0470768649

ISBN-13: 9780470768648

Edition: 4th 2012

Authors: Phillip A. Laplante, Seppo J. Ovaska

List price: $114.00
Shipping box This item qualifies for FREE shipping.
Blue ribbon 30 day, 100% satisfaction guarantee!
Buy eBooks
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

An important resource, this book offers an introductory text and overview of real-time systems: systems where timeliness is a crucial part of the correctness of the system. The book contains a pragmatic overview of key topics (computer architecture and organization, operating systems, software engineering, programming languages, and compiler theory) from the perspective of the real-time systems designer. The book is organized into chapters that are essentially self-contained. Thus, the material can be rearranged or omitted depending on the background and interests of the audience or instructor. Each chapter contains both easy and more challenging exercises that stimulate the reader to…    
Customers also bought

Book details

List price: $114.00
Edition: 4th
Copyright year: 2012
Publisher: John Wiley & Sons, Limited
Publication date: 12/23/2011
Binding: Hardcover
Pages: 584
Size: 6.50" wide x 9.50" long x 1.25" tall
Weight: 2.310
Language: English

Preface
Acknowledgments
Fundamentals of Real-Time Systems
Concepts and Misconceptions
Definitions for Real-Time Systems
Usual Misconceptions
Multidisciplinary Design Challenges
Influencing Disciplines
Birth and Evolution of Real-Time Systems
Diversifying Applications
Advancements behind Modern Real-Time Systems
Summary
Exercises
References
Hardware for Real-Time Systems
Basic Processor Architecture
Von Neumann Architecture
Instruction Processing
Input/Output and Interrupt Considerations
Memory Technologies
Different Classes of Memory
Memory Access and Layout Issues
Hierarchical Memory Organization
Architectural Advancements
Pipelined Instruction Processing
Superscalar and Very Long Instruction Word Architectures
Multi-Core Processors
Complex Instruction Set versus Reduced Instruction Set
Peripheral Interfacing
Interrupt-Driven Input/Output
Direct Memory Access
Analog and Digital Input/Output
Microprocessor versus Microcontroller
Microprocessors
Standard Microcontrollers
Custom Microcontrollers
Distributed Real-Time Architectures
Fieldbus Networks
Time-Triggered Architectures
Summary
Exercises
References
Real-Time Operating Systems
From Pseudokernels to Operating Systems
Miscellaneous Pseudokernels
Interrupt-Only Systems
Preemptive Priority Systems
Hybrid Scheduling Systems
The Task Control Block Model
Theoretical Foundations of Scheduling
Scheduling Framework
Round-Robin Scheduling
Cyclic Code Scheduling
Fixed-Priority Scheduling: Rate-Monotonic Approach
Dynamic Priority Scheduling: Earliest Deadline First Approach
System Services for Application Programs
Linear Buffers
Ring Buffers
Mailboxes
Semaphores
Deadlock and Starvation Problems
Priority Inversion Problem
Timer and Clock Services
Application Study: A Real-Time Structure
Memory Management Issues
Stack and Task Control Block Management
Multiple-Stack Arrangement
Memory Management in the Task Control Block Model
Swapping, Overlaying, and Paging
Selecting Real-Time Operating Systems
Buying versus Building
Selection Criteria and a Metric for Commercial Real-Time Operating Systems
Case Study: Selecting a Commercial Real-Time Operating System
Supplementary Criteria for Multi-Core and Energy-Aware Support
Summary
Exercises
References
Programming Languages for Real-Time Systems
Coding of Real-Time Software
Fitness of a Programming Language for Real-Time Applications
Coding Standards for Real-Time Software
Assembly Language
Procedural Languages
Modularity and Typing Issues
Parameter Passing and Dynamic Memory Allocation
Exception Handling
Cardelli's Metrics and Procedural Languages
Object-Oriented Languages
Synchronizing Objects and Garbage Collection
Cardelli's Metrics and Object-Oriented Languages
Object-Oriented versus Procedural Languages
Overview of Programming Languages
Ada
C
C++
C#
Java
Real-Time Java
Special Real-Time Languages
Automatic Code Generation
Toward Production-Quality Code
Remaining Challenges
Compiler Optimizations of Code
Standard Optimization Techniques
Additional Optimization Considerations
Summary
Exercises
References
Requirements Engineering Methodologies
Requirements Engineering for Real-Time Systems
Requirements Engineering as a Process
Standard Requirement Classes
Specification of Real-Time Software
Formal Methods in System Specification
Limitations of Formal Methods
Finite State Machines
Statecharts
Petri Nets
Semiformal Methods in System Specification
Structured Analysis and Structured Design
Object-Oriented Analysis and the Unified Modeling Language
Recommendations on Specification Approach
The Requirements Document
Structuring and Composing Requirements
Requirements Validation
Summary
Exercises
Appendix 1: Case Study in Software Requirements Specification
Introduction
Overall Description
Specific Requirements
References
Software Design Approaches
Qualities of Real-Time Software
Eight Qualities from Reliability to Verifiability
Software Engineering Principles
Seven Principles from Rigor and Formality to Traceability
The Design Activity
Procedural Design Approach
Parnas Partitioning
Structured Design
Design in Procedural Form Using Finite State Machines
Object-Oriented Design Approach
Advantages of Object Orientation
Design Patterns
Design Using the Unified Modeling Language
Object-Oriented versus Procedural Approaches
Life Cycle Models
Waterfall Model
V-Model
Spiral Model
Agile Methodologies
Summary
Exercises
Appendix 1: Case Study in Designing Real-Time Software
Introduction
Overall Description
Design Decomposition
Requirements Traceability
References
Performance Analysis Techniques
Real-Time Performance Analysis
Theoretical Preliminaries
Arguments Related to Parallelization
Execution Time Estimation from Program Code
Analysis of Polled-Loop and Coroutine Systems
Analysis of Round-Robin Systems
Analysis of Fixed-Period Systems
Analysis of Nonperiodic Systems
Applications of Queuing Theory
Single-Server Queue Model
Arrival and Processing Rates
Buffer Size Calculation
Response Time Modeling
Other Results from Queuing Theory
Input/Output Performance
Buffer Size Calculation for Time-Invariant Bursts
Buffer Size Calculation for Time-Variant Bursts
Analysis of Memory Requirements
Memory Utilization Analysis
Optimizing Memory Usage
Summary
Exercises
References
Additional Considerations for the Practitioner
Metrics in Software Engineering
Lines of Source Code
Cyclomatic Complexity
Halstead's Metrics
Function Points
Feature Points
Metrics for Object-Oriented Software
Criticism against Software Metrics
Predictive Cost Modeling
Basic COCOMO 81
Intermediate and Detailed COCOMO 81
COCOMO II
Uncertainty in Real-Time Systems
The Three Dimensions of Uncertainty
Sources of Uncertainty
Identifying Uncertainty
Dealing with Uncertainty
Design for Fault Tolerance
Spatial Fault-Tolerance
Software Black Boxes
N-Version Programming
Built-in-Test Software
Spurious and Missed Interrupts
Software Testing and Systems Integration
Testing Techniques
Debugging Approaches
System-Level Testing
Systems Integration
Testing Patterns and Exploratory Testing
Performance Optimization Techniques
Scaled Numbers for Faster Execution
Look-Up Tables for Functions
Real-Time Device Drivers
Summary
Exercises
References
Future Visions on Real-Time Systems
Vision: Real-Time Hardware
Heterogeneous Soft Multi-Cores
Architectural Issues with Individual Soft Cores
More Advanced Fieldbus Networks and Simpler Distributed Nodes
Vision: Real-Time Operating Systems
One Coordinating System Task and Multiple Isolated Application Tasks
Small, Platform Independent Virtual Machines
Vision: Real-Time Programming Languages
The UML++ as a Future "Programming Language"
Vision: Real-Time Systems Engineering
Automatic Verification of Software
Conservative Requirements Engineering
Distance Collaboration in Software Projects
Drag-and-Drop Systems
Vision: Real-Time Applications
Local Networks of Collaborating Real-Time Systems
Wide Networks of Collaborating Real-Time Systems
Biometric Identification Device with Remote Access
Are There Any Threats behind High-Speed Wireless Communications?
Summary
Exercises
References
Glossary
About the Authors
Index