Second Edition. — MIT Press, 2017. — 564 p. — ISBN: 978-0-262-53381-2.
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.
Applications
Motivating Example
The Design Process
Modeling Dynamic BehaviorsContinuous DynamicsNewtonian Mechanics
Actor Models
Properties of Systems
Feedback Control
Exercises
Discrete DynamicsDiscrete Systems
The Notion of State
Finite-State Machines
Extended State Machines
Nondeterminism
Behaviors and Traces
Exercises
Hybrid SystemsModal Models
Classes of Hybrid Systems
Exercises
Composition of State MachinesConcurrent Composition
Hierarchical State Machines
Exercises
Concurrent Models of ComputationStructure of Models
Synchronous-Reactive Models
Dataflow Models of Computation
Timed Models of Computation
Exercises
Design of Embedded SystemsSensors and ActuatorsModels of Sensors and Actuators
Common Sensors
Actuators
Exercises
Embedded ProcessorsTypes of Processors
Parallelism
Exercises
Memory ArchitecturesMemory Technologies
Memory Hierarchy
Memory Models
Exercises
Input and OutputI/O Hardware
Sequential Software in a Concurrent World
Exercises
MultitaskingImperative Programs
Threads
Processes and Message Passing
Exercises
SchedulingBasics of Scheduling
Rate Monotonic Scheduling
Earliest Deadline First
Scheduling and Mutual Exclusion
Multiprocessor Scheduling
Exercises
Analysis and VerificationInvariants and Temporal LogicInvariants
Linear Temporal Logic
Exercises
Equivalence and RefinementModels as Specifications
Type Equivalence and Refinement
Language Equivalence and Containment
Simulation
Bisimulation
Exercises
Reachability Analysis and Model CheckingOpen and Closed Systems
Reachability Analysis
Abstraction in Model Checking
Model Checking Liveness Properties
Exercises
Quantitative AnalysisProblems of Interest
Programs as Graphs
Factors Determining Execution Time
Basics of Execution Time Analysis
Other Quantitative Analysis Problems
Exercises
Security and PrivacyCryptographic Primitives
Protocol and Network Security
Software Security
Information Flow
Advanced Topics
Exercises
AppendicesSets and FunctionsSets
Relations and Functions
Sequences
Exercises
Complexity and ComputabilityEffectiveness and Complexity of Algorithms
Problems, Algorithms, and Programs
Turing Machines and Undecidability
Intractability: P and NP
Exercises
Notation Index