Title:
An introduction to real-time systems : from design to multitasking with C/C++
Personal Author:
Publication Information:
Upper Saddle River, NJ. : Prentice-Hall, 1999
ISBN:
9780136060703
Added Author:
Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000003410002 | QA76.54 B83 1999 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Introduces the nature of real-time, concurrent, distributed systems, presenting a specific set of techniques for designing and implementing such systems. This text develops a systems way of thinking about software that is intended to serve readers throughout their careers.
Table of Contents
Preface | p. xi |
1 A System View of Real-Time Software | p. 1 |
1.1 Outline of the Approach | p. 2 |
1.2 Wiring Diagrams | p. 4 |
1.3 Path Diagrams | p. 9 |
1.4 Structurally Dynamic Systems | p. 11 |
1.5 "Real-Time" Versus "Fast" | p. 12 |
1.6 Other Notations | p. 13 |
1.7 Summary | p. 14 |
2 Programming with the Tempo Kernel: Concurrent Processes | p. 15 |
2.1 Tempo Processes--A First Example | p. 15 |
2.2 Programs with Multiple Processes | p. 22 |
2.3 Interprocess Communication Using Semaphores | p. 32 |
2.4 Packaging Components | p. 48 |
2.5 Summary | p. 53 |
3 Programming with the Tempo Kernel: Processing Real-Time Events | p. 55 |
3.1 A Real-Time Producer/Consumer Program | p. 55 |
3.2 Process Execution and Interrupts | p. 61 |
3.3 Summary | p. 67 |
4 Programming with the Tempo Kernel: Advanced IPC | p. 69 |
4.1 Event Queues and Process Synchronization | p. 69 |
4.2 Event Queues and Message Passing | p. 72 |
4.3 Selectively Receiving Signals and Messages | p. 81 |
4.4 Timeouts | p. 85 |
4.5 Summary | p. 87 |
5 Basic Design Notations | p. 89 |
5.1 Components | p. 91 |
5.2 Collaboration Graphs (CGS) | p. 101 |
5.3 Use Case Maps (UCMS) | p. 120 |
5.4 Summary | p. 133 |
6 Design Case Study: Message Transfer Utility (MTU) | p. 135 |
6.1 The Problem | p. 135 |
6.2 Let the Paths Tell You About the Processes | p. 138 |
6.3 Let the Maps Guide You to the Wiring | p. 143 |
6.4 Summary | p. 155 |
7 Design Case Study: Refining the MTU | p. 157 |
7.1 Failure and Recovery | p. 157 |
7.2 Maps as Design Patterns | p. 163 |
7.3 Performance and Complexity Issues | p. 172 |
7.4 Summary | p. 174 |
8 Implementation Case Study: Programming the MTU | p. 175 |
8.1 Finishing the High-Level Design for the MTU | p. 175 |
8.2 Mapping the MTU Collaboration Graph to Code | p. 188 |
8.3 Building the MTU in Stages | p. 219 |
8.4 Summary | p. 222 |
9 Structurally Dynamic Systems | p. 223 |
9.1 The Approach in a Nutshell | p. 223 |
9.2 Full Structural Dynamics | p. 225 |
9.3 Partial Structural Dynamics | p. 234 |
9.4 Summary | p. 238 |
10 A Look Inside the Tempo Kernel | p. 239 |
10.1 Tempo Viewed in Terms of Components | p. 240 |
10.2 Visualizing Tempo's Behavior | p. 243 |
10.3 Mapping Tempo Components to C++ | p. 252 |
10.4 Using Full C++ with Tempo | p. 266 |
10.5 Summary | p. 274 |
11 Perspectives on Issues | p. 275 |
11.1 What a Student Can Take to the Real World | p. 276 |
11.2 What a Student will Find in the Real World | p. 277 |
11.3 Design: The Process versus the Product | p. 281 |
11.4 Summary | p. 282 |
Appendix A Tempo Reference Manual | p. 283 |
Appendix B Collaboration Graph Reference Manual | p. 301 |
Appendix C Programming Interrupt Controllers and UARTs | p. 325 |
Appendix D Reading List and Bibliography | p. 343 |
Index | p. 347 |