|
1 The Real-Time Environment |
|
|
1 | (1) |
|
1.1 When Is a Computer System Real-Time? |
|
|
2 | (1) |
|
1.2 Functional Requirements |
|
|
3 | (4) |
|
|
3 | (3) |
|
1.2.2 Direct Digital Control |
|
|
6 | (1) |
|
1.2.3 Man-Machine Interaction |
|
|
6 | (1) |
|
1.3 Temporal Requirements |
|
|
7 | (3) |
|
1.3.1 Where Do Temporal Requirements Come From? |
|
|
1 | (8) |
|
1.3.2 Minimal Latency Jitter |
|
|
9 | (1) |
|
1.3.3 Minimal Error-Detection Latency |
|
|
10 | (1) |
|
1.4 Dependability Requirements |
|
|
10 | (3) |
|
|
10 | (1) |
|
|
11 | (1) |
|
|
12 | (1) |
|
|
12 | (1) |
|
|
13 | (1) |
|
1.5 Classification of Real-Time Systems |
|
|
13 | (5) |
|
1.5.1 Hard Real-Time System Versus Soft Real-Time System |
|
|
14 | (2) |
|
1.5.2 Fail-Safe Versus Fail-Operational |
|
|
16 | (1) |
|
1.5.3 Guaranteed Response Versus Best Effort |
|
|
16 | (1) |
|
1.5.4 Resource-Adequate Versus Resource-Inadequate |
|
|
17 | (1) |
|
1.5.5 Event-Triggered Versus Time-Triggered |
|
|
17 | (1) |
|
1.6 The Real-Time System Market |
|
|
18 | (5) |
|
1.6.1 Embedded Real-Time Systems |
|
|
18 | (3) |
|
1.6.2 Plant Automation Systems |
|
|
21 | (1) |
|
|
22 | (1) |
|
1.7 Examples of Real-Time Systems |
|
|
23 | (4) |
|
1.7.1 Controlling the Flow in a Pipe |
|
|
23 | (1) |
|
|
24 | (1) |
|
|
25 | (2) |
|
|
27 | (1) |
|
Review Questions and Problems |
|
|
28 | (3) |
|
|
31 | (26) |
|
|
32 | (6) |
|
|
32 | (2) |
|
2.1.2 Definition of a Concept |
|
|
34 | (1) |
|
2.1.3 Cognitive Complexity |
|
|
35 | (2) |
|
2.1.4 Simplification Strategies |
|
|
37 | (1) |
|
2.2 The Conceptual Landscape |
|
|
38 | (5) |
|
|
38 | (2) |
|
2.2.2 Scientific Concepts |
|
|
40 | (1) |
|
2.2.3 The Concept of a Message |
|
|
41 | (1) |
|
2.2.4 Semantic Content of a Variable |
|
|
42 | (1) |
|
2.3 The Essence of Model Building |
|
|
43 | (3) |
|
2.3.1 Purpose and Viewpoint |
|
|
44 | (2) |
|
2.3.2 The Grand Challenge |
|
|
46 | (1) |
|
|
46 | (5) |
|
|
47 | (1) |
|
2.4.2 Prior and Derived Properties |
|
|
47 | (1) |
|
|
48 | (3) |
|
2.5 How Can We Achieve Simplicity? |
|
|
51 | (2) |
|
|
53 | (1) |
|
|
53 | (2) |
|
Review Questions and Problems |
|
|
55 | (2) |
|
|
57 | (30) |
|
|
58 | (6) |
|
|
58 | (1) |
|
|
59 | (2) |
|
3.1.3 Precision and Accuracy |
|
|
61 | (2) |
|
|
63 | (1) |
|
|
64 | (4) |
|
|
64 | (2) |
|
3.2.2 Interval Measurement |
|
|
66 | (1) |
|
|
66 | (2) |
|
3.2.4 Fundamental Limits of Time Measurement |
|
|
68 | (1) |
|
3.3 Dense Time Versus Sparse Time |
|
|
68 | (5) |
|
|
69 | (1) |
|
|
70 | (1) |
|
|
71 | (1) |
|
3.3.4 Cyclic Representation of Time |
|
|
72 | (1) |
|
3.4 Internal Clock Synchronization |
|
|
73 | (6) |
|
3.4.1 The Synchronization Condition |
|
|
73 | (2) |
|
3.4.2 Central Master Synchronization |
|
|
75 | (1) |
|
3.4.3 Fault-Tolerant Synchronization Algorithms |
|
|
75 | (4) |
|
3.4.4 State Correction Versus Rate Correction |
|
|
79 | (1) |
|
3.5 External Clock Synchronization |
|
|
79 | (3) |
|
3.5.1 External Time Sources |
|
|
79 | (2) |
|
|
81 | (1) |
|
|
81 | (1) |
|
|
82 | (1) |
|
|
83 | (1) |
|
Review Questions and Problems |
|
|
83 | (4) |
|
|
87 | (32) |
|
|
88 | (4) |
|
4.1.1 Components and Messages |
|
|
88 | (1) |
|
4.1.2 Cluster of Components |
|
|
89 | (1) |
|
4.1.3 Temporal Control Versus Logical Control |
|
|
90 | (2) |
|
4.1.4 Event-Triggered Control Versus Time-Triggered Control |
|
|
92 | (1) |
|
|
92 | (5) |
|
4.2.1 Definition of State |
|
|
93 | (1) |
|
4.2.2 The Pocket Calculator Example |
|
|
93 | (2) |
|
|
95 | (1) |
|
4.2.4 Database Components |
|
|
96 | (1) |
|
|
97 | (3) |
|
|
97 | (1) |
|
4.3.2 Event Information Versus State Information |
|
|
98 | (1) |
|
4.3.3 Event-Triggered (ET) Message |
|
|
99 | (1) |
|
4.3.4 Time-Triggered (TT) Message |
|
|
99 | (1) |
|
|
100 | (4) |
|
4.4.1 Interface Characterization |
|
|
101 | (1) |
|
4.4.2 Linking Interface (LIF) |
|
|
102 | (1) |
|
4.4.3 Technology-Independent Interface (TII) |
|
|
103 | (1) |
|
4.4.4 Technology-Dependent Interface (TDI) |
|
|
103 | (1) |
|
|
103 | (1) |
|
|
104 | (3) |
|
4.5.1 Property Mismatches |
|
|
105 | (1) |
|
4.5.2 LIF Versus Local Interface of a Gateway Component |
|
|
105 | (2) |
|
4.5.3 Standardized Message Interface |
|
|
107 | (1) |
|
4.6 Linking Interface Specification |
|
|
107 | (4) |
|
4.6.1 Transport Specification |
|
|
108 | (1) |
|
4.6.2 Operational Specification |
|
|
109 | (1) |
|
4.6.3 Meta-Level Specification |
|
|
110 | (1) |
|
4.7 Component Integration |
|
|
111 | (6) |
|
4.7.1 Principles of Composability |
|
|
111 | (1) |
|
4.7.2 Integration Viewpoints |
|
|
112 | (1) |
|
|
113 | (4) |
|
|
117 | (1) |
|
Review Questions and Problems |
|
|
117 | (2) |
|
|
119 | (24) |
|
|
120 | (1) |
|
|
120 | (1) |
|
5.1.2 Discrete and Continuous Real-Time Entities |
|
|
121 | (1) |
|
|
121 | (3) |
|
5.2.1 Untimed Observation |
|
|
121 | (1) |
|
5.2.2 Indirect Observation |
|
|
122 | (1) |
|
|
122 | (1) |
|
|
123 | (1) |
|
5.3 Real-Time Images and Real-Time Objects |
|
|
124 | (1) |
|
|
124 | (1) |
|
|
124 | (1) |
|
|
125 | (5) |
|
|
125 | (2) |
|
5.4.2 Classification of Real-Time Images |
|
|
127 | (2) |
|
|
129 | (1) |
|
5.4.4 Composability Considerations |
|
|
130 | (1) |
|
5.5 Permanence and Idempotency |
|
|
130 | (3) |
|
|
130 | (2) |
|
5.5.2 Duration of the Action Delay |
|
|
132 | (1) |
|
5.5.3 Accuracy Interval Versus Action Delay |
|
|
133 | (1) |
|
|
133 | (1) |
|
|
133 | (6) |
|
5.6.1 Definition of Determinism |
|
|
134 | (2) |
|
5.6.2 Consistent Initial States |
|
|
136 | (1) |
|
5.6.3 Nondeterministic Design Constructs (NDDCs) |
|
|
137 | (1) |
|
5.6.4 Recovery of Determinism |
|
|
138 | (1) |
|
|
139 | (1) |
|
|
140 | (1) |
|
Review Questions and Problems |
|
|
140 | (3) |
|
|
143 | (34) |
|
|
144 | (6) |
|
|
145 | (1) |
|
|
146 | (1) |
|
|
147 | (3) |
|
|
150 | (8) |
|
6.2.1 Secure Information Flow |
|
|
151 | (1) |
|
|
152 | (2) |
|
6.2.3 Cryptographic Methods |
|
|
154 | (3) |
|
6.2.4 Network Authentication |
|
|
157 | (1) |
|
6.2.5 Protection of Real-Time Control Data |
|
|
157 | (1) |
|
|
158 | (4) |
|
6.3.1 What Is an Anomaly? |
|
|
158 | (2) |
|
|
160 | (1) |
|
|
161 | (1) |
|
|
162 | (6) |
|
|
163 | (1) |
|
6.4.2 Fault-Tolerant Unit |
|
|
164 | (3) |
|
6.4.3 The Membership Service |
|
|
167 | (1) |
|
6.5 Robustness and Resilience |
|
|
168 | (2) |
|
6.5.1 The Concept of Robustness |
|
|
168 | (2) |
|
6.5.2 The Concept of Resilience |
|
|
170 | (1) |
|
6.6 Component Reintegration |
|
|
170 | (3) |
|
6.6.1 Finding a Reintegration Point |
|
|
170 | (1) |
|
6.6.2 Minimizing the Ground State |
|
|
171 | (1) |
|
|
172 | (1) |
|
|
173 | (1) |
|
|
174 | (1) |
|
Review Questions and Problems |
|
|
174 | (3) |
|
7 Real-Time Communication |
|
|
177 | (24) |
|
|
178 | (3) |
|
|
178 | (1) |
|
7.1.2 Dependability and Security |
|
|
179 | (1) |
|
|
180 | (1) |
|
7.1.4 Communication Bandwidth and Cost Efficiency |
|
|
181 | (1) |
|
7.2 Design Principles and Pitfalls |
|
|
181 | (6) |
|
7.2.1 Real-Time Network Model |
|
|
182 | (1) |
|
|
182 | (1) |
|
|
183 | (1) |
|
|
184 | (2) |
|
|
186 | (1) |
|
7.3 Event-Triggered Communication |
|
|
187 | (3) |
|
|
188 | (1) |
|
|
189 | (1) |
|
7.4 Rate-Constrained Communication |
|
|
190 | (2) |
|
7.4.1 Avionics Full-Duplex Switched Ethernet (AFDX): ARINC664-p7 |
|
|
191 | (1) |
|
7.4.2 Audio/Video Bridging: IEEE 802.1 AVB |
|
|
192 | (1) |
|
7.5 Time-Triggered Communication |
|
|
192 | (6) |
|
|
194 | (1) |
|
|
195 | (2) |
|
7.5.3 Time-Sensitive Networking: IEEE 802.1 TSN |
|
|
197 | (1) |
|
|
198 | (2) |
|
|
200 | (1) |
|
Review Questions and Problems |
|
|
200 | (1) |
|
8 Power and Energy Awareness |
|
|
201 | (22) |
|
|
202 | (7) |
|
|
202 | (2) |
|
|
204 | (4) |
|
8.1.3 Thermal Effects and Reliability |
|
|
208 | (1) |
|
8.2 Hardware Power Reduction Techniques |
|
|
209 | (4) |
|
|
209 | (2) |
|
8.2.2 Low-Power Hardware Design |
|
|
211 | (1) |
|
8.2.3 Voltage and Frequency Scaling |
|
|
211 | (1) |
|
8.2.4 Sub-threshold Logic |
|
|
212 | (1) |
|
|
213 | (5) |
|
8.3.1 Technology-Agnostic Design |
|
|
213 | (1) |
|
|
214 | (2) |
|
|
216 | (1) |
|
8.3.4 Real Time Versus Execution Time |
|
|
217 | (1) |
|
|
218 | (1) |
|
|
218 | (1) |
|
8.4.2 Application Software |
|
|
219 | (1) |
|
|
219 | |
|
|
198 | (2) |
|
|
200 | (1) |
|
Review Questions and Problems |
|
|
200 | (23) |
|
9 Real-Time Operating Systems |
|
|
223 | (24) |
|
9.1 Inter-Component Communication |
|
|
224 | (2) |
|
9.1.1 Technology-Independent Interface (TII) |
|
|
224 | (1) |
|
9.1.2 Linking Interface (LIF) |
|
|
225 | (1) |
|
9.1.3 Technology-Dependent Interface (TDI) |
|
|
225 | (1) |
|
9.1.4 Generic Middleware (GM) |
|
|
225 | (1) |
|
|
226 | (3) |
|
|
226 | (2) |
|
|
228 | (1) |
|
|
229 | (1) |
|
9.3 The Dual Role of Time |
|
|
229 | (3) |
|
|
230 | (1) |
|
|
231 | (1) |
|
9.4 Inter-Task Interactions |
|
|
232 | (2) |
|
9.4.1 Coordinated Static Schedules |
|
|
232 | (1) |
|
9.4.2 The Non-blocking Write (NBW) Protocol |
|
|
233 | (1) |
|
9.4.3 Semaphore Operations |
|
|
234 | (1) |
|
|
234 | (7) |
|
9.5.1 Analog Input/Output |
|
|
234 | (1) |
|
9.5.2 Digital Input/Output |
|
|
235 | (1) |
|
|
236 | (2) |
|
9.5.4 Fault-Tolerant Actuators |
|
|
238 | (1) |
|
9.5.5 Intelligent Instrumentation |
|
|
239 | (1) |
|
9.5.6 Physical Installation |
|
|
240 | (1) |
|
|
241 | (2) |
|
9.6.1 Raw Data, Measured Data, and Agreed Data |
|
|
241 | (1) |
|
9.6.2 Syntactic Agreement |
|
|
242 | (1) |
|
|
242 | (1) |
|
|
243 | (2) |
|
9.7.1 Monitoring Task Execution Times |
|
|
243 | (1) |
|
9.7.2 Monitoring Interrupts |
|
|
243 | (1) |
|
9.7.3 Double Execution of Tasks |
|
|
243 | (1) |
|
|
244 | (1) |
|
|
245 | (1) |
|
|
245 | (1) |
|
Review Questions and Problems |
|
|
246 | (1) |
|
|
247 | (22) |
|
10.1 The Scheduling Problem |
|
|
248 | (3) |
|
10.1.1 Classification of Scheduling Algorithms |
|
|
248 | (1) |
|
10.1.2 Schedulability Test |
|
|
249 | (1) |
|
10.1.3 The Adversary Argument |
|
|
250 | (1) |
|
10.2 Worst-Case Execution Time |
|
|
251 | (5) |
|
10.2.1 WCET of Simple Tasks |
|
|
252 | (2) |
|
10.2.2 WCET of Complex Tasks |
|
|
254 | (1) |
|
10.2.3 Anytime Algorithms |
|
|
255 | (1) |
|
|
255 | (1) |
|
|
256 | (4) |
|
10.3.1 Static Scheduling Viewed as a Search |
|
|
257 | (1) |
|
10.3.2 Increasing the Flexibility in Static Schedules |
|
|
258 | (2) |
|
|
260 | (3) |
|
10.4.1 Scheduling Independent Tasks |
|
|
260 | (2) |
|
10.4.2 Scheduling Dependent Tasks |
|
|
262 | (1) |
|
10.5 Alternative Scheduling Strategies |
|
|
263 | (2) |
|
10.5.1 Scheduling in Distributed Systems |
|
|
263 | (1) |
|
10.5.2 Feedback Scheduling |
|
|
264 | (1) |
|
|
265 | (1) |
|
|
266 | (1) |
|
Review Questions and Problems |
|
|
267 | (2) |
|
|
269 | (38) |
|
|
270 | (4) |
|
11.1.1 The Design Process |
|
|
270 | (2) |
|
11.1.2 The Role of Constraints |
|
|
272 | (1) |
|
11.1.3 System Design Versus Software Design |
|
|
272 | (2) |
|
|
274 | (3) |
|
|
275 | (1) |
|
11.2.2 Requirements Capture |
|
|
275 | (1) |
|
11.2.3 Architecture Design |
|
|
276 | (1) |
|
11.2.4 Design of Components |
|
|
277 | (1) |
|
|
277 | (6) |
|
11.3.1 Model-Based Design |
|
|
277 | (2) |
|
11.3.2 Component-Based Design |
|
|
279 | (1) |
|
11.3.3 Architecture Design Languages |
|
|
280 | (1) |
|
11.3.4 Test of a Decomposition |
|
|
281 | (2) |
|
11.4 Design of Safety-Critical Systems |
|
|
283 | (10) |
|
|
284 | (1) |
|
|
285 | (3) |
|
|
288 | (3) |
|
|
291 | (2) |
|
|
293 | (3) |
|
11.5.1 Diverse Software Versions |
|
|
294 | (1) |
|
11.5.2 An Example of a Fail-Safe System |
|
|
295 | (1) |
|
|
296 | (1) |
|
11.6 Design for Maintainability |
|
|
296 | (4) |
|
11.6.1 Cost of Maintenance |
|
|
297 | (1) |
|
11.6.2 Maintenance Strategy |
|
|
298 | (1) |
|
11.6.3 Software Maintenance |
|
|
299 | (1) |
|
11.7 The Time-Triggered Architecture |
|
|
300 | (3) |
|
11.7.1 Principle of a Consistent Global Time |
|
|
300 | (1) |
|
11.7.2 Principle of Component Orientation |
|
|
301 | (1) |
|
11.7.3 Principle of Coherent Communication |
|
|
302 | (1) |
|
11.7.4 Principle of Fault Tolerance |
|
|
303 | (1) |
|
|
303 | (1) |
|
|
303 | (2) |
|
Review Questions and Problems |
|
|
305 | (2) |
|
|
307 | (18) |
|
12.1 Validation Versus Verification |
|
|
308 | (1) |
|
|
309 | (5) |
|
12.2.1 Design for Testability |
|
|
310 | (1) |
|
12.2.2 Test Data Selection |
|
|
310 | (2) |
|
|
312 | (1) |
|
12.2.4 System Evolution and Technology Readiness Levels (TRLs) |
|
|
313 | (1) |
|
12.3 Testing of Component-Based Systems |
|
|
314 | (2) |
|
12.3.1 Component Provider |
|
|
314 | (1) |
|
|
314 | (1) |
|
12.3.3 Communicating Components |
|
|
315 | (1) |
|
|
316 | (3) |
|
12.4.1 Formal Methods in the Real World |
|
|
316 | (1) |
|
12.4.2 Classification of Formal Methods |
|
|
317 | (1) |
|
12.4.3 Benefits of Formal Methods |
|
|
317 | (2) |
|
|
319 | (1) |
|
|
319 | (3) |
|
12.5.1 Software-Implemented Fault Injection |
|
|
320 | (1) |
|
12.5.2 Physical Fault Injection |
|
|
320 | (1) |
|
12.5.3 Sensor and Actuator Failures |
|
|
321 | (1) |
|
|
322 | (1) |
|
|
323 | (1) |
|
Review Questions and Problems |
|
|
323 | (2) |
|
|
325 | (18) |
|
13.1 The Vision of the Internet of Things (IoT) |
|
|
326 | (1) |
|
|
327 | (2) |
|
13.2.1 Uniformity of Access |
|
|
327 | (1) |
|
|
327 | (1) |
|
|
328 | (1) |
|
13.2.4 Physical Security and Safety |
|
|
328 | (1) |
|
|
329 | (1) |
|
|
329 | (1) |
|
|
329 | (1) |
|
13.3 Technical Issues of the IoT |
|
|
329 | (4) |
|
13.3.1 Internet Integration |
|
|
329 | (1) |
|
13.3.2 Naming and Identification |
|
|
330 | (1) |
|
13.3.3 Near-Field Communication |
|
|
331 | (1) |
|
13.3.4 IoT Device Capabilities Versus Cloud Computing |
|
|
332 | (1) |
|
13.3.5 Autonomic Components |
|
|
332 | (1) |
|
|
333 | (5) |
|
|
334 | (1) |
|
13.4.2 The Electronic Product Code (EPC) |
|
|
334 | (1) |
|
|
335 | (1) |
|
|
336 | (1) |
|
|
336 | (2) |
|
13.5 Wireless Sensor Networks (WSN) |
|
|
338 | (1) |
|
|
339 | (1) |
|
|
340 | (1) |
|
Review Questions and Problems |
|
|
341 | (2) |
|
14 Cloud and Fog Computing |
|
|
343 | (24) |
|
|
344 | (1) |
|
14.2 Characteristics of the Cloud |
|
|
345 | (2) |
|
14.3 The Advent of Fog Computing |
|
|
347 | (4) |
|
14.3.1 Fog Computing for Distributed Embedded Systems |
|
|
348 | (1) |
|
14.3.2 Fog Computing Benefits and Risks |
|
|
349 | (2) |
|
14.3.3 General Fog Computing and Comparison to Edge Computing |
|
|
351 | (1) |
|
14.4 Selected Cloud and Fog Technologies |
|
|
351 | (7) |
|
|
352 | (4) |
|
|
356 | (1) |
|
|
357 | (1) |
|
14.4.4 System Design Automation |
|
|
358 | (1) |
|
|
358 | (5) |
|
14.5.1 Cloud Computing-Enabled Use Cases |
|
|
359 | (1) |
|
14.5.2 Fog Computing-Enabled Use Cases |
|
|
360 | (2) |
|
|
362 | (1) |
|
|
363 | (1) |
|
|
364 | (1) |
|
Review Questions and Problems |
|
|
365 | (2) |
Annexes |
|
367 | (16) |
References |
|
383 | (12) |
Index |
|
395 | |