did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780470768648

Real-Time Systems Design and Analysis Tools for the Practitioner

by ;
  • ISBN13:

    9780470768648

  • ISBN10:

    0470768649

  • Edition: 4th
  • Format: Hardcover
  • Copyright: 2011-11-22
  • Publisher: Wiley-IEEE Press

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $174.88 Save up to $75.20
  • Rent Book $99.68
    Add to Cart Free Shipping Icon Free Shipping

    TERM
    PRICE
    DUE
    USUALLY SHIPS IN 24-48 HOURS
    *This item is part of an exclusive publisher rental program and requires an additional convenience fee. This fee will be reflected in the shopping cart.

Supplemental Materials

What is included with this book?

Summary

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 confront actual problems.

Author Biography

Phillip A. Laplante, PhD, PE, is Professor of Software Engineering at Penn State, where he specializes in software and systems engineering, project management, and software testing and security. Dr. Laplante spent several years as a software engineer and project manager working on avionics, computer-aided design, and software test systems. He has authored of edited twenty-seven books and has published more than 200 scholarly articles. Seppo J. Ovaska, DSc, is Professor of Industrial Electronics at Aalto University, Finland. He has served as a visiting scholar at Utah State University, Virginia Tech, and the University of Passau, Germany, and has published more than 100 articles in peer-reviewed journals. Prior to his academic career, Dr. Ovaska developed control systems for high-rise elevators; those contributions led to nine international patents.

Table of Contents

Prefacep. xv
Acknowledgmentsp. xxi
Fundamentals of Real-Time Systemsp. 1
Concepts and Misconceptionsp. 2
Definitions for Real-Time Systemsp. 2
Usual Misconceptionsp. 14
Multidisciplinary Design Challengesp. 15
Influencing Disciplinesp. 16
Birth and Evolution of Real-Time Systemsp. 16
Diversifying Applicationsp. 17
Advancements behind Modern Real-Time Systemsp. 19
Summaryp. 21
Exercisesp. 24
Referencesp. 25
Hardware for Real-Time Systemsp. 27
Basic Processor Architecturep. 28
Von Neumann Architecturep. 29
Instruction Processingp. 30
Input/Output and Interrupt Considerationsp. 33
Memory Technologiesp. 36
Different Classes of Memoryp. 36
Memory Access and Layout Issuesp. 38
Hierarchical Memory Organizationp. 41
Architectural Advancementsp. 43
Pipelined Instruction Processingp. 45
Superscalar and Very Long Instruction Word Architecturesp. 46
Multi-Core Processorsp. 48
Complex Instruction Set versus Reduced Instruction Setp. 50
Peripheral Interfacingp. 52
Interrupt-Driven Input/Outputp. 53
Direct Memory Accessp. 56
Analog and Digital Input/Outputp. 58
Microprocessor versus Microcontrollerp. 62
Microprocessorsp. 62
Standard Microcontrollersp. 64
Custom Microcontrollersp. 66
Distributed Real-Time Architecturesp. 68
Fieldbus Networksp. 68
Time-Triggered Architecturesp. 71
Summaryp. 73
Exercisesp. 74
Referencesp. 76
Real-Time Operating Systemsp. 79
From Pseudokernels to Operating Systemsp. 80
Miscellaneous Pseudokernelsp. 82
Interrupt-Only Systemsp. 87
Preemptive Priority Systemsp. 90
Hybrid Scheduling Systemsp. 90
The Task Control Block Modelp. 95
Theoretical Foundations of Schedulingp. 97
Scheduling Frameworkp. 98
Round-Robin Schedulingp. 99
Cyclic Code Schedulingp. 100
Fixed-Priority Scheduling: Rate-Monotonic Approachp. 102
Dynamic Priority Scheduling: Earliest Deadline First Approachp. 104
System Services for Application Programsp. 106
Linear Buffersp. 107
Ring Buffersp. 109
Mailboxesp. 110
Semaphoresp. 112
Deadlock and Starvation Problemsp. 114
Priority Inversion Problemp. 118
Timer and Clock Servicesp. 122
Application Study: A Real-Time Structurep. 123
Memory Management Issuesp. 127
Stack and Task Control Block Managementp. 127
Multiple-Stack Arrangementp. 128
Memory Management in the Task Control Block Modelp. 129
Swapping, Overlaying, and Pagingp. 130
Selecting Real-Time Operating Systemsp. 133
Buying versus Buildingp. 134
Selection Criteria and a Metric for Commercial Real-Time Operating Systemsp. 135
Case Study: Selecting a Commercial Real-Time Operating Systemp. 138
Supplementary Criteria for Multi-Core and Energy-Aware Supportp. 140
Summaryp. 142
Exercisesp. 143
Referencesp. 146
Programming Languages for Real-Time Systemsp. 149
Coding of Real-Time Softwarep. 150
Fitness of a Programming Language for Real-Time Applicationsp. 151
Coding Standards for Real-Time Softwarep. 152
Assembly Languagep. 154
Procedural Languagesp. 156
Modularity and Typing Issuesp. 156
Parameter Passing and Dynamic Memory Allocationp. 157
Exception Handlingp. 159
Cardelli's Metrics and Procedural Languagesp. 161
Object-Oriented Languagesp. 162
Synchronizing Objects and Garbage Collectionp. 162
Cardelli's Metrics and Object-Oriented Languagesp. 164
Object-Oriented versus Procedural Languagesp. 165
Overview of Programming Languagesp. 167
Adap. 167
Cp. 169
C++p. 170
C#p. 171
Javap. 172
Real-Time Javap. 174
Special Real-Time Languagesp. 177
Automatic Code Generationp. 178
Toward Production-Quality Codep. 178
Remaining Challengesp. 180
Compiler Optimizations of Codep. 181
Standard Optimization Techniquesp. 182
Additional Optimization Considerationsp. 188
Summaryp. 192
Exercisesp. 193
Referencesp. 195
Requirements Engineering Methodologiesp. 197
Requirements Engineering for Real-Time Systemsp. 198
Requirements Engineering as a Processp. 198
Standard Requirement Classesp. 199
Specification of Real-Time Softwarep. 201
Formal Methods in System Specificationp. 202
Limitations of Formal Methodsp. 205
Finite State Machinesp. 205
Statechartsp. 210
Petri Netsp. 213
Semiformal Methods in System Specificationp. 217
Structured Analysis and Structured Designp. 218
Object-Oriented Analysis and the Unified Modeling Languagep. 221
Recommendations on Specification Approachp. 224
The Requirements Documentp. 225
Structuring and Composing Requirementsp. 226
Requirements Validationp. 228
Summaryp. 232
Exercisesp. 233
Appendix 1: Case Study in Software Requirements Specificationp. 235
Introductionp. 235
Overall Descriptionp. 238
Specific Requirementsp. 245
Referencesp. 265
Software Design Approachesp. 267
Qualities of Real-Time Softwarep. 268
Eight Qualities from Reliability to Verifiabilityp. 269
Software Engineering Principlesp. 275
Seven Principles from Rigor and Formality to Traceabilityp. 275
The Design Activityp. 281
Procedural Design Approachp. 284
Parnas Partitioningp. 284
Structured Designp. 286
Design in Procedural Form Using Finite State Machinesp. 292
Object-Oriented Design Approachp. 293
Advantages of Object Orientationp. 293
Design Patternsp. 295
Design Using the Unified Modeling Languagep. 298
Object-Oriented versus Procedural Approachesp. 301
Life Cycle Modelsp. 302
Waterfall Modelp. 303
V-Modelp. 305
Spiral Modelp. 306
Agile Methodologiesp. 307
Summaryp. 311
Exercisesp. 312
Appendix 1: Case Study in Designing Real-Time Softwarep. 314
Introductionp. 314
Overall Descriptionp. 315
Design Decompositionp. 316
Requirements Traceabilityp. 371
Referencesp. 375
Performance Analysis Techniquesp. 379
Real-Time Performance Analysisp. 380
Theoretical Preliminariesp. 380
Arguments Related to Parallelizationp. 382
Execution Time Estimation from Program Codep. 385
Analysis of Polled-Loop and Coroutine Systemsp. 391
Analysis of Round-Robin Systemsp. 392
Analysis of Fixed-Period Systemsp. 394
Analysis of Nonperiodic Systemsp. 396
Applications of Queuing Theoryp. 398
Single-Server Queue Modelp. 398
Arrival and Processing Ratesp. 400
Buffer Size Calculationp. 401
Response Time Modelingp. 402
Other Results from Queuing Theoryp. 403
Input/Output Performancep. 405
Buffer Size Calculation for Time-Invariant Burstsp. 405
Buffer Size Calculation for Time-Variant Burstsp. 406
Analysis of Memory Requirementsp. 408
Memory Utilization Analysisp. 408
Optimizing Memory Usagep. 410
Summaryp. 411
Exercisesp. 413
Referencesp. 415
Additional Considerations for the Practitionerp. 417
Metrics in Software Engineeringp. 418
Lines of Source Codep. 419
Cyclomatic Complexityp. 420
Halstead's Metricsp. 421
Function Pointsp. 423
Feature Pointsp. 427
Metrics for Object-Oriented Softwarep. 428
Criticism against Software Metricsp. 428
Predictive Cost Modelingp. 429
Basic COCOMO 81p. 429
Intermediate and Detailed COCOMO 81p. 431
COCOMO IIp. 433
Uncertainty in Real-Time Systemsp. 433
The Three Dimensions of Uncertaintyp. 434
Sources of Uncertaintyp. 435
Identifying Uncertaintyp. 437
Dealing with Uncertaintyp. 438
Design for Fault Tolerancep. 438
Spatial Fault-Tolerancep. 440
Software Black Boxesp. 443
N-Version Programmingp. 443
Built-in-Test Softwarep. 444
Spurious and Missed Interruptsp. 447
Software Testing and Systems Integrationp. 447
Testing Techniquesp. 448
Debugging Approachesp. 454
System-Level Testingp. 456
Systems Integrationp. 458
Testing Patterns and Exploratory Testingp. 462
Performance Optimization Techniquesp. 465
Scaled Numbers for Faster Executionp. 465
Look-Up Tables for Functionsp. 467
Real-Time Device Driversp. 468
Summaryp. 470
Exercisesp. 471
Referencesp. 473
Future Visions on Real-Time Systemsp. 477
Vision: Real-Time Hardwarep. 479
Heterogeneous Soft Multi-Coresp. 481
Architectural Issues with Individual Soft Coresp. 483
More Advanced Fieldbus Networks and Simpler Distributed Nodesp. 484
Vision: Real-Time Operating Systemsp. 485
One Coordinating System Task and Multiple Isolated Application Tasksp. 486
Small, Platform Independent Virtual Machinesp. 487
Vision: Real-Time Programming Languagesp. 488
The UML++ as a Future "Programming Language"p. 489
Vision: Real-Time Systems Engineeringp. 491
Automatic Verification of Softwarep. 491
Conservative Requirements Engineeringp. 492
Distance Collaboration in Software Projectsp. 492
Drag-and-Drop Systemsp. 493
Vision: Real-Time Applicationsp. 493
Local Networks of Collaborating Real-Time Systemsp. 494
Wide Networks of Collaborating Real-Time Systemsp. 495
Biometric Identification Device with Remote Accessp. 495
Are There Any Threats behind High-Speed Wireless Communications?p. 497
Summaryp. 497
Exercisesp. 499
Referencesp. 500
Glossaryp. 503
About the Authorsp. 535
Indexp. 537
Table of Contents provided by Ingram. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program