Introduction to Embedded Systems, 2e
A Cyber-Physical Systems Approach
by Lee, Seshia
ISBN: 9780262364584 | Copyright 2016
Instructor Requests
The most visible use of computers and software is processing information for human consumption. The vast majority of computers in use, however, are much less visible. They run the engine, brakes, seatbelts, airbag, and audio system in your car. They digitally encode your voice and construct a radio signal to send it from your cell phone to a base station. They command robots on a factory floor, power generation in a power plant, processes in a chemical plant, and traffic lights in a city. These less visible computers are called embedded systems, and the software they run is called embedded software. The principal challenges in designing and analyzing embedded systems stem from their interaction with physical processes. This book takes a cyber-physical approach to embedded systems, introducing the engineering concepts underlying embedded systems as a technology and as a subject of study. The focus is on modeling, design, and analysis of cyber-physical systems, which integrate computation, networking, and physical processes.
The second edition offers two new chapters, several new exercises, and other improvements. The book can be used as a textbook at the advanced undergraduate or introductory graduate level and as a professional reference for practicing engineers and computer scientists. Readers should have some familiarity with machine structures, computer programming, basic discrete mathematics and algorithms, and signals and systems.
Expand/Collapse All | |
---|---|
Contents (pg. vii) | |
Preface (pg. xiii) | |
1 Introduction (pg. 1) | |
1.1 Applications (pg. 2) | |
1.2 Motivating Example (pg. 6) | |
1.3 The Design Process (pg. 8) | |
1.4 Summary (pg. 15) | |
Part I Modeling Dynamic Behaviors (pg. 17) | |
2 Continuous Dynamics (pg. 19) | |
2.1 Newtonian Mechanics (pg. 20) | |
2.2 Actor Models (pg. 25) | |
2.3 Properties of Systems (pg. 28) | |
2.4 Feedback Control (pg. 31) | |
2.5 Summary (pg. 37) | |
Exercises (pg. 37) | |
3 Discrete Dynamics (pg. 41) | |
3.1 Discrete Systems (pg. 42) | |
3.2 The Notion of State (pg. 46) | |
3.3 Finite-State Machines (pg. 47) | |
3.4 Extended State Machines (pg. 56) | |
3.5 Nondeterminism (pg. 62) | |
3.6 Behaviors and Traces (pg. 66) | |
3.7 Summary (pg. 69) | |
Exercises (pg. 70) | |
4 Hybrid Systems (pg. 75) | |
4.1 Modal Models (pg. 76) | |
4.2 Classes of Hybrid Systems (pg. 80) | |
4.3 Summary (pg. 95) | |
Exercises (pg. 96) | |
5 Composition of State Machines (pg. 103) | |
5.1 Concurrent Composition (pg. 105) | |
5.2 Hierarchical State Machines (pg. 119) | |
5.3 Summary (pg. 123) | |
Exercises (pg. 124) | |
6 Concurrent Models of Computation (pg. 129) | |
6.1 Structure of Models (pg. 130) | |
6.2 Synchronous-Reactive Models (pg. 132) | |
6.3 Dataflow Models of Computation (pg. 142) | |
6.4 Timed Models of Computation (pg. 154) | |
6.5 Summary (pg. 163) | |
Exercises (pg. 163) | |
Part II Design of Embedded Systems (pg. 169) | |
7 Sensors and Actuators (pg. 171) | |
7.1 Models of Sensors and Actuators (pg. 173) | |
7.2 Common Sensors (pg. 186) | |
7.3 Actuators (pg. 191) | |
7.4 Summary (pg. 196) | |
Exercises (pg. 197) | |
8 Embedded Processors (pg. 201) | |
8.1 Types of Processors (pg. 202) | |
8.2 Parallelism (pg. 212) | |
8.3 Summary (pg. 227) | |
Exercises (pg. 227) | |
9 Memory Architectures (pg. 229) | |
9.1 Memory Technologies (pg. 230) | |
9.2 Memory Hierarchy (pg. 232) | |
9.3 Memory Models (pg. 240) | |
9.4 Summary (pg. 245) | |
Exercises (pg. 245) | |
10 Input and Output (pg. 249) | |
10.1 I/O Hardware (pg. 250) | |
10.2 Sequential Software in a Concurrent World (pg. 261) | |
10.3 Summary (pg. 271) | |
Exercises (pg. 272) | |
11 Multitasking (pg. 279) | |
11.1 Imperative Programs (pg. 282) | |
11.2 Threads (pg. 286) | |
11.3 Processes and Message Passing (pg. 298) | |
11.4 Summary (pg. 303) | |
Exercises (pg. 304) | |
12 Scheduling (pg. 309) | |
12.1 Basics of Scheduling (pg. 310) | |
12.2 Rate Monotonic Scheduling (pg. 316) | |
12.3 Earliest Deadline First (pg. 320) | |
12.4 Scheduling and Mutual Exclusion (pg. 325) | |
12.5 Multiprocessor Scheduling (pg. 329) | |
12.6 Summary (pg. 335) | |
Exercises (pg. 335) | |
Part III Analysis and Verification (pg. 341) | |
13 Invariants and Temporal Logic (pg. 343) | |
13.1 Invariants (pg. 344) | |
13.2 Linear Temporal Logic (pg. 346) | |
13.3 Summary (pg. 354) | |
Exercises (pg. 356) | |
14 Equivalence and Refinement (pg. 359) | |
14.1 Models as Specifications (pg. 360) | |
14.2 Type Equivalence and Refinement (pg. 361) | |
14.3 Language Equivalence and Containment (pg. 364) | |
14.4 Simulation (pg. 370) | |
14.5 Bisimulation (pg. 377) | |
14.6 Summary (pg. 379) | |
Exercises (pg. 380) | |
15 Reachability Analysis and Model Checking (pg. 385) | |
15.1 Open and Closed Systems (pg. 386) | |
15.2 Reachability Analysis (pg. 387) | |
15.3 Abstraction in Model Checking (pg. 394) | |
15.4 Model Checking Liveness Properties (pg. 397) | |
15.5 Summary (pg. 403) | |
Exercises (pg. 405) | |
16 Quantitative Analysis (pg. 407) | |
16.1 Problems of Interest (pg. 408) | |
16.2 Programs as Graphs (pg. 410) | |
16.3 Factors Determining Execution Time (pg. 415) | |
16.4 Basics of Execution Time Analysis (pg. 421) | |
16.5 Other Quantitative Analysis Problems (pg. 431) | |
16.6 Summary (pg. 432) | |
Exercises (pg. 433) | |
17 Security and Privacy (pg. 437) | |
17.1 Cryptographic Primitives (pg. 439) | |
17.2 Protocol and Network Security (pg. 446) | |
17.3 Software Security (pg. 451) | |
17.4 Information Flow (pg. 454) | |
17.5 Advanced Topics (pg. 462) | |
17.6 Summary (pg. 467) | |
Exercises (pg. 467) | |
Part IV Appendices (pg. 469) | |
A Sets and Functions (pg. 471) | |
A.1 Sets (pg. 471) | |
A.2 Relations and Functions (pg. 472) | |
A.3 Sequences (pg. 476) | |
Exercises (pg. 478) | |
B Complexity and Computability (pg. 479) | |
B.1 Effectiveness and Complexity of Algorithms (pg. 480) | |
B.2 Problems, Algorithms, and Programs (pg. 483) | |
B.3 Turing Machines and Undecidability (pg. 485) | |
B.4 Intractability: P and NP (pg. 491) | |
B.5 Summary (pg. 494) | |
Exercises (pg. 494) | |
Bibliography (pg. 497) | |
Notation Index (pg. 515) | |
Index (pg. 517) |
Edward A. Lee
Edward Ashford Lee is Professor of Electrical Engineering and Computer Sciences at the University of California, Berkeley, where he has taught and researched digital technology and computer science for more than thirty years. He was born and grew up in Puerto Rico and studied at Yale, MIT, and Berkeley. He has coauthored several textbooks on topics including digital communication, signal processing, embedded systems, and software modeling. This is his first book for a general audience.
Sanjit A. Seshia
Sanjit A. Seshia is a Professor in the Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley.
eTextbook
Go paperless today! Available online anytime, nothing to download or install.
|