REAL-TIME SYSTEMS
DESIGN AND ANALYSIS
www.it-ebooks.info
IEEE Press
445 Hoes Lane
Piscataway, NJ 08854
IEEE Press Editorial Board
Lajos Hanzo, Editor in Chief
R. Abhari M. El-Hawary O. P. Malik
J. Anderson B-M. Haemmerli S. Nahavandi
G. W. Arnold M. Lanzerotti T. Samad
F. Canavero D. Jacobson G. Zobrist
Kenneth Moore, Director of IEEE Book and Information Services (BIS)
Technical Reviewers
Larry Bernstein, Stevens Institute of Technology
Bernard Sick, University of Kassel
Olli Vainio, Tampere University of Technology
www.it-ebooks.info
REAL-TIME SYSTEMS
DESIGN AND ANALYSIS
Tools for the Practitioner
Fourth Edition
PHILLIP A. LAPLANTE
SEPPO J. OVASKA
IEEE PRESS
A JOHN WILEY & SONS, INC., PUBLICATION
www.it-ebooks.info
Cover photo courtesy of NASA.
Copyright © 2012 by the Institute of Electrical and Electronics Engineers, Inc.
Published by John Wiley & Sons, Inc., Hoboken, New Jersey. All rights reserved.
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system, or transmitted in
any form or by any means, electronic, mechanical, photocopying, recording, scanning, or
otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright
Act, without either the prior written permission of the Publisher, or authorization through
payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222
Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4470, or on the web at
www.copyright.com. Requests to the Publisher for permission should be addressed to the
Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030,
(201) 748-6011, fax (201) 748-6008, or online at />Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best
efforts in preparing this book, they make no representations or warranties with respect to the
accuracy or completeness of the contents of this book and specifi cally disclaim any implied
warranties of merchantability or fi tness for a particular purpose. No warranty may be created
or extended by sales representatives or written sales materials. The advice and strategies
contained herein may not be suitable for your situation. You should consult with a professional
where appropriate. Neither the publisher nor author shall be liable for any loss of profi t or any
other commercial damages, including but not limited to special, incidental, consequential, or
other damages.
For general information on our other products and services or for technical support, please
contact our Customer Care Department within the United States at (800) 762-2974, outside the
United States at (317) 572-3993 or fax (317) 572-4002.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in
print may not be available in electronic formats. For more information about Wiley products,
visit our web site at www.wiley.com.
Library of Congress Cataloging-in-Publication Data:
Laplante, Phillip A.
Real-time systems design and analysis : tools for the practitioner / Phillip A. Laplante, Seppo
J. Ovaska.—4th ed.
p. cm.
ISBN 978-0-470-76864-8 (hardback)
1. Real-time data processing. 2. System design. I. Ovaska, Seppo J., 1956- II. Title.
QA76.54.L37 2012
004'.33–dc23
2011021433
Printed in the United States of America
oBook ISBN: 9781118136607
ePDF ISBN: 9781118136577
ePub ISBN: 9781118136591
eMobi ISBN: 9781118136584
10 9 8 7 6 5 4 3 2 1
www.it-ebooks.info
Phil:
To Nancy, Chris and Charlotte, with all my love
Seppo:
To Helena, Sami and Samu — my everything
www.it-ebooks.info
vii
CONTENTS
Preface xv
Acknowledgments xxi
1 Fundamentals of Real-Time Systems 1
1.1 Concepts and Misconceptions, 2
1.1.1 Defi nitions for Real-Time Systems, 2
1.1.2 Usual Misconceptions, 14
1.2 Multidisciplinary Design Challenges, 15
1.2.1 Infl uencing Disciplines, 16
1.3 Birth and Evolution of Real-Time Systems, 16
1.3.1 Diversifying Applications, 17
1.3.2 Advancements behind Modern Real-Time Systems, 19
1.4 Summary, 21
1.5 Exercises, 24
References, 25
2 Hardware for Real-Time Systems 27
2.1 Basic Processor Architecture, 28
2.1.1 Von Neumann Architecture, 29
2.1.2 Instruction Processing, 30
2.1.3 Input/Output and Interrupt Considerations, 33
2.2 Memory Technologies, 36
2.2.1 Different Classes of Memory, 36
2.2.2 Memory Access and Layout Issues, 38
2.2.3 Hierarchical Memory Organization, 41
www.it-ebooks.info
viii CONTENTS
2.3 Architectural Advancements, 43
2.3.1 Pipelined Instruction Processing, 45
2.3.2 Superscalar and Very Long Instruction
Word Architectures, 46
2.3.3 Multi-Core Processors, 48
2.3.4 Complex Instruction Set versus Reduced
Instruction Set, 50
2.4 Peripheral Interfacing, 52
2.4.1 Interrupt-Driven Input/Output, 53
2.4.2 Direct Memory Access, 56
2.4.3 Analog and Digital Input/Output, 58
2.5 Microprocessor versus Microcontroller, 62
2.5.1 Microprocessors, 62
2.5.2 Standard Microcontrollers, 64
2.5.3 Custom Microcontrollers, 66
2.6 Distributed Real-Time Architectures, 68
2.6.1 Fieldbus Networks, 68
2.6.2 Time-Triggered Architectures, 71
2.7 Summary, 73
2.8 Exercises, 74
References, 76
3 Real-Time Operating Systems 79
3.1 From Pseudokernels to Operating Systems, 80
3.1.1 Miscellaneous Pseudokernels, 82
3.1.2 Interrupt-Only Systems, 87
3.1.3 Preemptive Priority Systems, 90
3.1.4 Hybrid Scheduling Systems, 90
3.1.5 The Task Control Block Model, 95
3.2 Theoretical Foundations of Scheduling, 97
3.2.1 Scheduling Framework, 98
3.2.2 Round-Robin Scheduling, 99
3.2.3 Cyclic Code Scheduling, 100
3.2.4 Fixed-Priority Scheduling: Rate-Monotonic Approach, 102
3.2.5 Dynamic Priority Scheduling: Earliest Deadline
First Approach, 104
3.3 System Services for Application Programs, 106
3.3.1 Linear Buffers, 107
3.3.2 Ring Buffers, 109
3.3.3 Mailboxes, 110
3.3.4 Semaphores, 112
3.3.5 Deadlock and Starvation Problems, 114
3.3.6 Priority Inversion Problem, 118
www.it-ebooks.info
CONTENTS ix
3.3.7 Timer and Clock Services, 122
3.3.8 Application Study: A Real-Time Structure, 123
3.4 Memory Management Issues, 127
3.4.1 Stack and Task Control Block Management, 127
3.4.2 Multiple-Stack Arrangement, 128
3.4.3 Memory Management in the Task Control
Block Model, 129
3.4.4 Swapping, Overlaying, and Paging, 130
3.5 Selecting Real-Time Operating Systems, 133
3.5.1 Buying versus Building, 134
3.5.2 Selection Criteria and a Metric for Commercial Real-Time
Operating Systems, 135
3.5.3 Case Study: Selecting a Commercial Real-Time Operating
System, 138
3.5.4 Supplementary Criteria for Multi-Core and Energy-Aware
Support, 140
3.6 Summary, 142
3.7 Exercises, 143
References, 146
4 Programming Languages for Real-Time Systems 149
4.1 Coding of Real-Time Software, 150
4.1.1 Fitness of a Programming Language for Real-Time
Applications, 151
4.1.2 Coding Standards for Real-Time Software, 152
4.2 Assembly Language, 154
4.3 Procedural Languages, 156
4.3.1 Modularity and Typing Issues, 156
4.3.2 Parameter Passing and Dynamic
Memory Allocation, 157
4.3.3 Exception Handling, 159
4.3.4 Cardelli’s Metrics and Procedural Languages, 161
4.4 Object-Oriented Languages, 162
4.4.1 Synchronizing Objects and Garbage Collection, 162
4.4.2 Cardelli’s Metrics and Object-Oriented Languages, 164
4.4.3 Object-Oriented versus Procedural Languages, 165
4.5 Overview of Programming Languages, 167
4.5.1 Ada, 167
4.5.2 C, 169
4.5.3 C++, 170
4.5.4 C#, 171
4.5.5 Java, 172
4.5.6 Real-Time Java, 174
4.5.7 Special Real-Time Languages, 177
www.it-ebooks.info
x CONTENTS
4.6 Automatic Code Generation, 178
4.6.1 Toward Production-Quality Code, 178
4.6.2 Remaining Challenges, 180
4.7 Compiler Optimizations of Code, 181
4.7.1 Standard Optimization Techniques, 182
4.7.2 Additional Optimization Considerations, 188
4.8 Summary, 192
4.9 Exercises, 193
References, 195
5 Requirements Engineering Methodologies 197
5.1 Requirements Engineering for Real-Time Systems, 198
5.1.1 Requirements Engineering as a Process, 198
5.1.2 Standard Requirement Classes, 199
5.1.3 Specifi cation of Real-Time Software, 201
5.2 Formal Methods in System Specifi cation, 202
5.2.1 Limitations of Formal Methods, 205
5.2.2 Finite State Machines, 205
5.2.3 Statecharts, 210
5.2.4 Petri Nets, 213
5.3 Semiformal Methods in System Specifi cation, 217
5.3.1 Structured Analysis and Structured Design, 218
5.3.2 Object-Oriented Analysis and the Unifi ed
Modeling Language, 221
5.3.3 Recommendations on Specifi cation Approach, 224
5.4 The Requirements Document, 225
5.4.1 Structuring and Composing Requirements, 226
5.4.2 Requirements Validation, 228
5.5 Summary, 232
5.6 Exercises, 233
5.7 Appendix 1: Case Study in Software Requirements
Specifi cation, 235
5.7.1 Introduction, 235
5.7.2 Overall Description, 238
5.7.3 Specifi c Requirements, 245
References, 265
6 Software Design Approaches 267
6.1 Qualities of Real-Time Software, 268
6.1.1 Eight Qualities from Reliability to Verifi ability, 269
6.2 Software Engineering Principles, 275
6.2.1 Seven Principles from Rigor and Formality
to Traceability, 275
6.2.2 The Design Activity, 281
www.it-ebooks.info
CONTENTS xi
6.3 Procedural Design Approach, 284
6.3.1 Parnas Partitioning, 284
6.3.2 Structured Design, 286
6.3.3 Design in Procedural Form Using Finite
State Machines, 292
6.4 Object-Oriented Design Approach, 293
6.4.1 Advantages of Object Orientation, 293
6.4.2 Design Patterns, 295
6.4.3 Design Using the Unifi ed Modeling Language, 298
6.4.4 Object-Oriented versus Procedural Approaches, 301
6.5 Life Cycle Models, 302
6.5.1 Waterfall Model, 303
6.5.2 V-Model, 305
6.5.3 Spiral Model, 306
6.5.4 Agile Methodologies, 307
6.6 Summary, 311
6.7 Exercises, 312
6.8 Appendix 1: Case Study in Designing Real-Time
Software, 314
6.8.1 Introduction, 314
6.8.2 Overall Description, 315
6.8.3 Design Decomposition, 316
6.8.4 Requirements Traceability, 371
References, 375
7 Performance Analysis Techniques 379
7.1 Real-Time Performance Analysis, 380
7.1.1 Theoretical Preliminaries, 380
7.1.2 Arguments Related to Parallelization, 382
7.1.3 Execution Time Estimation from
Program Code, 385
7.1.4 Analysis of Polled-Loop and Coroutine Systems, 391
7.1.5 Analysis of Round-Robin Systems, 392
7.1.6 Analysis of Fixed-Period Systems, 394
7.1.7 Analysis of Nonperiodic Systems, 396
7.2 Applications of Queuing Theory, 398
7.2.1 Single-Server Queue Model, 398
7.2.2 Arrival and Processing Rates, 400
7.2.3 Buffer Size Calculation, 401
7.2.4 Response Time Modeling, 402
7.2.5 Other Results from Queuing Theory, 403
7.3 Input/Output Performance, 405
7.3.1 Buffer Size Calculation for Time-Invariant Bursts, 405
7.3.2 Buffer Size Calculation for Time-Variant Bursts, 406
www.it-ebooks.info
xii CONTENTS
7.4 Analysis of Memory Requirements, 408
7.4.1 Memory Utilization Analysis, 408
7.4.2 Optimizing Memory Usage, 410
7.5 Summary, 411
7.6 Exercises, 413
References, 415
8 Additional Considerations for the Practitioner 417
8.1 Metrics in Software Engineering, 418
8.1.1 Lines of Source Code, 419
8.1.2 Cyclomatic Complexity, 420
8.1.3 Halstead’s Metrics, 421
8.1.4 Function Points, 423
8.1.5 Feature Points, 427
8.1.6 Metrics for Object-Oriented Software, 428
8.1.7 Criticism against Software Metrics, 428
8.2 Predictive Cost Modeling, 429
8.2.1 Basic COCOMO 81, 429
8.2.2 Intermediate and Detailed COCOMO 81, 431
8.2.3 COCOMO II, 433
8.3 Uncertainty in Real-Time Systems, 433
8.3.1 The Three Dimensions of Uncertainty, 434
8.3.2 Sources of Uncertainty, 435
8.3.3 Identifying Uncertainty, 437
8.3.4 Dealing with Uncertainty, 438
8.4 Design for Fault Tolerance, 438
8.4.1 Spatial Fault-Tolerance, 440
8.4.2 Software Black Boxes, 443
8.4.3 N-Version Programming, 443
8.4.4 Built-in-Test Software, 444
8.4.5 Spurious and Missed Interrupts, 447
8.5 Software Testing and Systems Integration, 447
8.5.1 Testing Techniques, 448
8.5.2 Debugging Approaches, 454
8.5.3 System-Level Testing, 456
8.5.4 Systems Integration, 458
8.5.5 Testing Patterns and Exploratory Testing, 462
8.6 Performance Optimization Techniques, 465
8.6.1 Scaled Numbers for Faster Execution, 465
8.6.2 Look-Up Tables for Functions, 467
8.6.3 Real-Time Device Drivers, 468
8.7 Summary, 470
8.8 Exercises, 471
References, 473
www.it-ebooks.info
CONTENTS xiii
9 Future Visions on Real-Time Systems 477
9.1 Vision: Real-Time Hardware, 479
9.1.1 Heterogeneous Soft Multi-Cores, 481
9.1.2 Architectural Issues with Individual Soft Cores, 483
9.1.3 More Advanced Fieldbus Networks and Simpler
Distributed Nodes, 484
9.2 Vision: Real-Time Operating Systems, 485
9.2.1 One Coordinating System Task and Multiple Isolated
Application Tasks, 486
9.2.2 Small, Platform Independent Virtual Machines, 487
9.3 Vision: Real-Time Programming Languages, 488
9.3.1 The UML++ as a Future “Programming Language”, 489
9.4 Vision: Real-Time Systems Engineering, 491
9.4.1 Automatic Verifi cation of Software, 491
9.4.2 Conservative Requirements Engineering, 492
9.4.3 Distance Collaboration in Software Projects, 492
9.4.4 Drag-and-Drop Systems, 493
9.5 Vision: Real-Time Applications, 493
9.5.1 Local Networks of Collaborating Real-Time Systems, 494
9.5.2 Wide Networks of Collaborating Real-Time Systems, 495
9.5.3 Biometric Identifi cation Device with Remote Access, 495
9.5.4 Are There Any Threats behind High-Speed Wireless
Communications?, 497
9.6 Summary, 497
9.7 Exercises, 499
References, 500
Glossary 503
About the Authors 535
Index 537
www.it-ebooks.info
PREFACE
xv
This book is an introductory text about real - time systems — systems where
timeliness is a crucial part of the correctness of the system. Real - time software
designers must be familiar with computer architecture and organization, oper-
ating systems and related services, programming languages, systems and soft-
ware engineering, as well as performance analysis and optimization techniques.
The text provides a pragmatic discussion of these subjects from the perspective
of the real - time systems designer. Because this is a staggering task, depth is
occasionally sacrifi ced for breadth. Nevertheless, thoughtful suggestions for
additional literature are provided where depth has been sacrifi ced due to the
available page budget or other reasons.
This book is intended for junior – senior level and graduate computer science,
computer engineering and electrical engineering students, as well as practicing
software, systems and computer engineers. It can be used as a graduate level
text if it is supplemented with an advanced reader or a focused selection of
scholarly articles on a specifi c topic (which could be gathered from the up - to -
date bibliographies of this edition). Our book is especially useful in an indus-
trial setting for new real - time systems designers who need to get “ up to speed ”
very quickly. Earlier editions of this book have been used in this way to teach
short courses for several industrial clients. Finally, we intend for the book to
be a desk reference of long - lasting value, even for experienced real - time
systems designers and project managers.
The reader is assumed to have basic knowledge in programming in one of
the more popular languages, but other than this, the prerequisites for this text
are minimal. Some familiarity with discrete mathematics is helpful in under-
standing some of the formalizations, but it is not essential.
www.it-ebooks.info
xvi PREFACE
Since there are several preferred languages for real - time systems design,
such as Ada, C, C ++ , C#, and increasingly, Java, it would be unjust to focus this
book on one language, say C, when the theory and framework should be lan-
guage independent. However, for uniformity of discussion, certain points are
illustrated, as appropriate, in generic assembly language and C.
While the provided program codes are not intended to be ready - to - use, they
can be easily adapted with a little tweaking for use in a real system.
This book is organized into nine chapters that are largely self - contained.
Thus, the material can be rearranged or omitted depending on the background
and interests of the instructor or reader. It is advised, however, that Chapter
1 would be explored fi rst, because it contains an introduction to real - time
systems as well as the necessary terminology.
Each of the chapters contains both easy and more challenging exercises
that stimulate the reader to confront actual problems. The exercises, however,
cannot serve as a substitute for carefully planned laboratory work or practical
experience.
The fi rst chapter provides an overview of the nature of real - time systems.
Much of the basic vocabulary relating to real - time systems is developed along
with a discussion of the main challenges facing the real - time system designer.
Besides, a brief historical review is given. The purpose of this chapter is to
foreshadow the rest of the book as well as quickly acquaint the reader with
pertinent terminology.
The second chapter presents a detailed review of central computer archi-
tecture concepts from the perspective of the real - time systems designer.
Specifi cally, the impact of advanced architectural features on real - time perfor-
mance is discussed. The remainder of the chapter outlines different memory
technologies, input/output techniques, and peripheral support for embedded
systems. The intent here is to increase the reader ’ s awareness of the impact of
the computer architecture on various design considerations.
Chapter 3 provides the core of the text for those who are building practical
real - time systems. This comprehensive chapter describes the three principal
real - time kernel services: scheduling/dispatching, intertask communication/
synchronization, and memory management. It also covers special problems
inherent in these designs, such as deadlock and priority inversion.
Chapter 4 begins with a discussion of specifi c language features desirable
in good software engineering practice in general and real - time systems design
in particular. An evaluative review of several widely used programming lan-
guages in real - time systems design, with respect to these features, follows. Our
intent is to provide explicit criteria for rating a language ’ s ability to support
real - time systems and to alert the user to the possible drawbacks of using each
language in real - time applications.
In Chapter 5 , the nature of requirements engineering is fi rst discussed. Then
a collection of rigorous techniques in real - time system specifi cation is pre-
sented with illustrative examples. Such rigorous methods are particularly
useful when automatic design and code - generation approaches are to be used
www.it-ebooks.info
PREFACE xvii
later in the development life cycle. Next, structured and object - oriented meth-
odologies are discussed as alternative paradigms for requirements writing. At
the end of this chapter, an extensive case study is provided.
Chapter 6 surveys several commonly applied design specifi cation tech-
niques used in both structured and object - oriented design. An emphasis on
their applicability to real - time systems is made throughout. No single tech-
nique is a silver bullet, and the reader is encouraged to adopt his or her own
formulation of specifi cation techniques for the given application. A compre-
hensive design case study is also provided.
Chapter 7 discusses performance analysis techniques based on diverse esti-
mation approaches. The proposed toolset is fully usable even before it is pos-
sible to perform any direct measurements. Moreover, a pragmatic discussion
on the use of classical queuing theory for analyzing real - time systems is pro-
vided. Input/output performance issues are considered with an emphasis on
buffer - size calculation. Finally, a focused analysis of memory utilization in
real - time systems is presented.
Chapter 8 discusses additional software engineering considerations, includ-
ing the use of software metrics and techniques for improving the fault -
tolerance and overall reliability of real - time systems. Later in the chapter,
different techniques for improving reliability through rigorous testing are
discussed. Systems integration and performance optimization issues are also
considered.
In Chapter 9 , we look to the future of real - time systems hardware, software,
and applications. Much of this chapter is speculative, and we had great fun
imagining things yet to come and the way things ought to be with respect to
real - time systems technology. This chapter forms a fruitful basis for class dis-
cussions, debates, and student projects.
When our book is used in a university course, typically students are asked
to build a real - time multitasking system of their choice. Usually, it is a game
on a PC, but some students can be expected to build embedded hardware
controllers of moderate complexity. The authors ’ assignment to the reader
would be to build such a game or simulation, using at least the coroutine
model. The application should be useful or at least pleasing, so some sort of a
game is a good choice. The mini - project should take no more than 20 hours
and cover all phases of the software life cycle model discussed in the text.
Hence, those readers who have never built a real - time system will have the
benefi t of the instructive experience.
Real - time systems engineering is based on more than 50 years of experience
and global contributions by numerous individuals and organizations. Rather
than clutter the text with endless citations for the origin of each idea, the
authors chose to cite only the key ideas where the reader would want to seek
out the source for further reading. Some of the text is adapted from two other
books written by the fi rst author on software engineering and computer archi-
tecture, Laplante ( 2003 ) and Gilreath and Laplante ( 2003 ), respectively. Where
this has been done, it is so noted.
www.it-ebooks.info
xviii PREFACE
Many solid theoretical treatments of real - time systems exist, and where
applicable, they are noted. Nonetheless, these books or journal articles are
sometimes too theoretical for practicing software engineers and students who
are often impatient to wade through the derivations for the resultant payoff.
They want results that they can use now in the trenches, and they want to see
how they can be used, not just know that they exist. In this text, an attempt is
made to distill the most valuable of the theoretical results, combined with
practical experience and insight to provide a toolkit for the practitioner.
This book contains extensive bibliographies at the end of each chapter.
Where verbatim phrases were used, and where a fi gure came from another
source, the authors tried to cite it appropriately. However, if any were inad-
vertently overlooked, the authors wish to correct the unfortunate error. Please
notify the authors if you fi nd any errors of omission, commission, citation, and
so forth by e - mail, at or seppo.ovaska@aalto.fi , and they
will be corrected at the next possible opportunity.
Since 1992, thousands of copies of the fi rst three editions of this book have
been sold to the college text and professional markets throughout the world.
The only thing more gratifying than its adoption at such prestigious universi-
ties as Carnegie Mellon University, the University of Illinois at Urbana -
Champaign, Princeton University, the United States Air Force Academy,
Polytechnic University, and many others around the world, has been the enthu-
siastic feedback received from numerous individuals thankful for the infl uence
that the book has had on them. The continuing international success of the
fi rst three editions along with recent technological advancements demanded
that a fourth edition be produced.
The most fundamental change in the fourth edition is a new co - author, Dr.
Seppo Ovaska, whose vast experience greatly complements that of the fi rst
author and adds a strong and timely international perspective.
The fourth edition addresses the important changes that have occurred in
the theory and practice in the construction of real - time systems since the
publishing of the third edition in 2004. Chapters 1 – 8 have been carefully
revised to incorporate new material, correction of errors, and elimination of
outdated material. Moreover, Chapter 9 is a brand - new chapter devoted to
future visions on real - time systems. Totally new or substantially revised discus-
sions include:
•
Multidisciplinary design challenges
•
Birth and evolution of real - time systems
•
Memory technologies
•
Architectural advancements
•
Peripheral interfacing
•
Distributed real - time architectures
•
System services for application programs
•
Supplementary criteria for multi - core and energy - aware support
www.it-ebooks.info
PREFACE xix
•
Automatic code generation
•
Life cycle models
•
Arguments related to parallelization
•
Uncertainty in real - time systems
•
Testing patterns and exploratory testing
•
Real - time device drivers
•
Future visions on real - time systems
While approximately 30% of previous material has been discarded, another
40% has been added, resulting in a unique and modern text. In addition,
several new examples have been included to illustrate various important
points. Hence, it is with pride and a sense of accomplishment that we are pre-
senting this timely and carefully composed book to students and practicing
engineers.
REFERENCES
W. F. Gilreath and P. A. Laplante , Computer Architecture: A Minimalist Approach .
Norwell, MA : Kluwer Academic Publishers , 2003 .
P. A. Laplante , Software Engineering for Image Processing . Boca Raton, FL : CRC Press ,
2003 .
P hillip A. Laplante
West Chester, Pennsylvania
Seppo J. Ovaska
Hyvink ä ä , Finland
August 2011
www.it-ebooks.info
ACKNOWLEDGMENTS
xxi
Phil Laplante wishes to thank his dear friend Dr. Seppo Ovaska for being the
perfect collaborator. Easy to work with, Seppo ’ s industriousness, experience,
insight, patience, and attention to detail perfectly complemented Phil ’ s
strengths and weaknesses. The vast majority of differences between the third
and fourth editions are due to Seppo ’ s hard work. As a result of Seppo ’ s con-
tributions, the fourth edition is far superior to any previous edition of this
book. And this book is now as much his vision and legacy, as the fi rst three
editions were mine.
Phil also wishes to thank his wife Nancy and his children Christopher and
Charlotte for putting up with the seemingly endless work on this manuscript
and too many other projects to mention over these many years.
Seppo: I am grateful to my wife Helena and my sons Sami and Samu for
everything we have experienced together. Although it is a tiny gesture com-
pared with all that you have given to me, I humbly dedicate this book to you.
And fi nally, Phil, it was a true pleasure to work with you in this exciting and
rewarding book project.
P.A.L.
S . J . O .
www.it-ebooks.info
1
FUNDAMENTALS OF
REAL- TIME SYSTEMS
1
Real-Time Systems Design and Analysis: Tools for the Practitioner, Fourth Edition.
Phillip A. Laplante and Seppo J. Ovaska.
© 2012 the Institute of Electrical and Electronics Engineers, Inc. Published 2012 by John Wiley
& Sons, Inc.
The term “ real time ” is used widely in many contexts, both technical and con-
ventional. Most people would probably understand “ in real time ” to mean “ at
once ” or “ instantaneously. ” The Random House Dictionary of the English
Language (2nd unabridged edition, 1987), however, defi nes “ realtime ” as per-
taining to applications in which the computer must respond as rapidly as
required by the user or necessitated by the process being controlled . These defi -
nitions, and others that are available, are quite different, and their differences
are often the cause of misunderstanding between computer, software and
systems engineers, and the users of real - time systems. On a more pedantic
level, there is the issue of the appropriate writing of the term “ real - time. ”
Across technical and pedestrian literature, various forms of the term, such as
real time , real - time , and realtime may appear. But to computer, software, and
systems engineers the preferred form is real - time , and this is the convention
that we will follow throughout this text.
Consider a computer system in which data need to be processed at a regular
rate. For example, an aircraft uses a sequence of accelerometer pulses to
determine its position. Systems other than avionic ones may also require a
rapid response to events that occur at nonregular rates, such as handling an
overtemperature failure in a nuclear power plant. Even without defi ning the
term “ real - time, ” it is probably understood that those events demand timely
or “ real - time ” processing.
www.it-ebooks.info
2 FUNDAMENTALS OF REAL-TIME SYSTEMS
Now consider a situation in which a passenger approaches an airline check -
in counter to pick up his boarding pass for a certain fl ight from New York to
Boston, which is leaving in fi ve minutes. The reservation clerk enters appropri-
ate information into the computer, and a few seconds later a boarding pass is
printed. Is this a real - time system?
Indeed, all three systems — aircraft, nuclear power plant, and airline
reservations — are real - time, because they must process information within a
specifi ed interval or risk system failure. Although these examples may provide
an intuitive defi nition of a real - time system, it is necessary to clearly compre-
hend when a system is real - time and when it is not.
To form a solid basis for the coming chapters, we fi rst defi ne a number of
central terms and correct common misunderstandings in Section 1.1 . These
defi nitions are targeted for practitioners, and thus they have a strong practical
point - of - view. Section 1.2 presents the multidisciplinary design challenges
related to real - time systems. It is shown that although real - time systems design
and analysis are subdisciplines of computer systems engineering, they have
essential connections to various other fi elds, such as computer science and
electrical engineering — even to applied statistics. It is rather straightforward
to present different approaches, methods, techniques, or tools for readers, but
much more diffi cult to convey the authors ’ insight on real - time systems to the
audience. Nevertheless, our intention is to provide some insight in parallel with
specifi c tools for the practitioner. Such insight is built on practical experiences
and adequate understanding of the key milestones in the fi eld. The birth of
real - time systems, in general, as well as a selective evolution path related to
relevant technological innovations, is discussed in Section 1.3 . Section 1.4 sum-
marizes the preceding sections on fundamentals of real - time systems. Finally,
Section 1.5 provides exercises that help the reader to gain basic understanding
on real - time systems and associated concepts.
1.1 CONCEPTS AND MISCONCEPTIONS
The fundamental defi nitions of real - time systems engineering can vary depend-
ing on the resource consulted. Our pragmatic defi nitions have been collected
and refi ned to the smallest common subset of agreement to form the vocabu-
lary of this particular text. These defi nitions are presented in a form that is
intended to be most useful to the practicing engineer, as opposed to the aca-
demic theorist.
1.1.1 Defi nitions for Real - Time Systems
The hardware of a computer solves problems by repeated execution of
machine - language instructions, collectively known as software. Software, on
the other hand, is traditionally divided into system programs and application
programs.
www.it-ebooks.info
CONCEPTS AND MISCONCEPTIONS 3
System programs consist of software that interfaces with the underlying
computer hardware, such as device drivers, interrupt handlers, task schedulers,
and various programs that act as tools for the development or analysis of
application programs. These software tools include compilers, which translate
high - level language programs into assembly code; assemblers, which convert
the assembly code into a special binary format called object or machine code;
and linkers/locators, which prepare the object code for execution in a specifi c
hardware environment. An operating system is a specialized collection of
system programs that manage the physical resources of the computer. As such,
a real - time operating system is a truly important system program (Anh and
Tan, 2009 ).
Application programs are programs written to solve specifi c problems, such
as optimal hall - call allocation of an elevator bank in a high - rise building, inertial
navigation of an aircraft, and payroll preparation for some industrial company.
Certain design considerations play a role in the design of system programs and
application software intended to run in real - time environments.
The notion of a “ system ” is central to software engineering, and indeed to
all engineering, and warrants formalization.
Figure 1.1. A general system with inputs and outputs.
System
Mapping Function
.
.
.
.
.
.
Inputs Outputs
Input Space
Output Space
Defi nition: System
A system is a mapping of a set of inputs into a set of outputs.
When the internal details of the system are not of particular interest, the
mapping function between input and output spaces can be considered as a
black box with one or more inputs entering and one or more outputs exiting
the system (see Fig. 1.1 ). Moreover, Vernon lists fi ve general properties that
belong to any “ system ” (Vernon, 1989 ):
1. A system is an assembly of components connected together in an orga-
nized way.
2. A system is fundamentally altered if a component joins or leaves it.
3. It has a purpose.
4. It has a degree of permanence.
5. It has been defi ned as being of particular interest.
www.it-ebooks.info
4 FUNDAMENTALS OF REAL-TIME SYSTEMS
Figure 1.2. A real - time control system including inputs from a camera and multiple
sensors, as well as outputs to a display and multiple actuators.
Real-Time
Control System
.
.
.
.
.
.
Camera Display
Sensors
Actuators
Figure 1.3. A classic representation of a real - time system as a sequence of schedulable
jobs.
Real-Time
System
.
.
.
Job 1
Schedule
Job 2
Job 3
Job 4
Job n
[Job 3, Job 1, Job n, ]
Every real - world entity, whether organic or synthetic, can be modeled as a
system. In computing systems, the inputs represent digital data from hardware
devices or other software systems. The inputs are often associated with sensors,
cameras, and other devices that provide analog inputs, which are converted to
digital data, or provide direct digital inputs. The digital outputs of computer
systems, on the other hand, can be converted to analog outputs to control
external hardware devices, such as actuators and displays, or used directly
without any conversion (Fig. 1.2 ).
Modeling a real - time (control) system, as in Figure 1.2 , is somewhat differ-
ent from the more traditional model of the real - time system as a sequence of
jobs to be scheduled and performance to be predicted, which is comparable
with that shown in Figure 1.3 . The latter view is simplistic in that it ignores the
usual fact that the input sources and hardware under control may be highly
complex. In addition, there are other, “ sweeping ” software engineering con-
siderations that are hidden by the model shown in Figure 1.3 .
Look again at the model of a real - time system shown in Figure 1.2 . In its
realization, there is some inherent delay between presentation of the inputs
(excitation) and appearance of the outputs (response). This fact can be formal-
ized as follows:
Defi nition: Response Time
The time between the presentation of a set of inputs to a system and the
realization of the required behavior, including the availability of all associ-
ated outputs, is called the response time of the system.
www.it-ebooks.info
CONCEPTS AND MISCONCEPTIONS 5
How fast and punctual the response time needs to be depends on the charac-
teristics and purpose of the specifi c system.
The previous defi nitions set the stage for a practical defi nition of a real - time
system.
Defi nition: Real - Time System ( II )
A real - time system is one whose logical correctness is based on both the
correctness of the outputs and their timeliness.
Defi nition: Failed System
A failed system is a system that cannot satisfy one or more of the require-
ments stipulated in the system requirements specifi cation.
Defi nition: Real - Time System ( I )
A real - time system is a computer system that must satisfy bounded response -
time constraints or risk severe consequences, including failure.
But what is a “ failed ” system? In the case of the space shuttle or a
nuclear power plant, for example, it is painfully obvious when a failure has
occurred. For other systems, such as an automatic bank teller machine, the
notion of failure is less obvious. For now, failure will be defi ned as the
“ inability of the system to perform according to system specifi cation, ” or,
more precisely:
Because of this defi nition of failure, rigorous specifi cation of the system oper-
ating criteria, including timing constraints, is necessary. This matter is discussed
later in Chapter 5 .
Various other defi nitions exist for “ real - time, ” depending on which source
is consulted. Nonetheless, the common theme among all defi nitions is that the
system must satisfy deadline constraints in order to be correct. For instance,
an alternative defi nition might be:
In any case, by making unnecessary the notion of timeliness, every system
becomes a real - time system.
Real - time systems are often reactive or embedded systems. Reactive
systems are those in which task scheduling is driven by ongoing interaction
with their environment; for example, a fi re - control system reacts to certain
buttons pressed by a pilot. Embedded systems can be defi ned informally as
follows:
www.it-ebooks.info
6 FUNDAMENTALS OF REAL-TIME SYSTEMS
For example, a modern automobile contains many embedded processors that
control airbag deployment, antilock braking, air conditioning, fuel injection,
and so forth. Today, numerous household items, such as microwave ovens, rice
cookers, stereos, televisions, washing machines, even toys, contain embedded
computers. It is obvious that sophisticated systems, such as aircraft, elevator
banks, and paper machines, do contain several embedded computer systems.
The three systems mentioned at the beginning of this chapter satisfy the
criteria for a real - time system. An aircraft must process accelerometer data
within a certain period that depends on the specifi cations of the aircraft; for
example, every 10 ms. Failure to do so could result in a false position or veloc-
ity indication and cause the aircraft to go off - course at best or crash at worst.
For a nuclear reactor thermal problem, failure to respond swiftly could result
in a meltdown. Finally, an airline reservation system must be able to handle a
surge of passenger requests within the passenger ’ s perception of a reasonable
time (or before the fl ights leave the gate). In short, a system does not have to
process data at once or instantaneously to be considered real - time; it must
simply have response times that are constrained appropriately.
When is a system real - time? It can be argued that all practical systems are
ultimately real - time systems. Even a batch - oriented system — for example,
grade processing at the end of a semester or a bimonthly payroll run — is real -
time. Although the system may have response times of days or even weeks
(e.g., the time that elapses between submitting the grade or payroll informa-
tion and issuance of the report card or paycheck), it must respond within a
certain time or there could be an academic or fi nancial disaster. Even a word -
processing program should respond to commands within a reasonable amount
of time or it will become torturous to use. Most of the literature refers to such
systems as soft real - time systems.
Defi nition: Hard Real - Time System
A hard real - time system is one in which failure to meet even a single dead-
line may lead to complete or catastrophic system failure.
Defi nition: Soft Real - Time System
A soft real - time system is one in which performance is degraded but not
destroyed by failure to meet response - time constraints.
Defi nition: Embedded System
An embedded system is a system containing one or more computers (or
processors) having a central role in the functionality of the system, but the
system is not explicitly called a computer.
Conversely, systems where failure to meet response - time constraints leads to
complete or catastrophic system failure are called hard real - time systems.
www.it-ebooks.info
CONCEPTS AND MISCONCEPTIONS 7
Firm real - time systems are those systems with hard deadlines where some
arbitrarily small number of missed deadlines can be tolerated.
TABLE 1.1. A Sampling of Hard, Firm, and Soft Real - Time Systems
System Real - Time
Classifi cation
Explanation
Avionics weapons delivery
system in which pressing
a button launches an
air - to - air missile
Hard Missing the deadline to launch the
missile within a specifi ed time
after pressing the button may
cause the target to be missed,
which will result in catastrophe
Navigation controller for
an autonomous weed -
killer robot
Firm Missing a few navigation deadlines
causes the robot to veer out from
a planned path and damage some
crops
Console hockey game Soft Missing even several deadlines will
only degrade performance
Defi nition: Firm Real - Time System
A fi rm real - time system is one in which a few missed deadlines will not lead
to total failure, but missing more than a few may lead to complete or cata-
strophic system failure.
As noted, all practical systems minimally represent soft real - time systems.
Table 1.1 gives an illustrative sampling of hard, fi rm, and soft real - time systems.
There is a great deal of latitude for interpretation of hard, fi rm, and soft
real - time systems. For example, in the automated teller machine, missing too
many deadlines will lead to signifi cant customer dissatisfaction and potentially
even enough loss of business to threaten the existence of the bank. This
extreme scenario represents the fact that every system can often be character-
ized any way — soft, fi rm, or hard — real - time by the construction of a support-
ing scenario. The careful defi nition of systems requirements (and, hence,
expectations) is the key to setting and meeting realistic deadline expectations.
In any case, it is a principal goal of real - time systems engineering to fi nd ways
to transform hard deadlines into fi rm ones, and fi rm ones into soft ones.
Since this text is mostly concerned with hard real - time systems, it will use
the term real - time system to mean embedded, hard real - time system, unless
otherwise noted.
It is typical, in studying real - time systems, to consider the nature of time,
because deadlines are instants in time. Nevertheless, the question arises,
“ Where do the deadlines come from? ” Generally speaking, deadlines are
based on the underlying physical phenomena of the system under control. For
www.it-ebooks.info