Learning Outcomes
Today, the vast majority of computers in use do not focus on information processing. 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 control your microwave oven, refrigerator, and dishwasher. They command robots on a factory floor, power generation in a power plant, processes in a chemical plant, and traffic lights in a city. They bring toys to life, enabling them to react to human touch and to sounds. They control aircraft and trains. These computers are called embedded systems, and the software they run is called embedded software. The principal engineering problem for embedded systems in the past was how to cope with limited resources (limited processing power, limited energy sources, small memories, etc.). As such, the engineering challenge was to optimise the designs. Recently, the community has come to understand that the principal challenges in embedded systems stem from their interaction with physical processes, and not from their limited resources. The term cyber-physical systems (CPS) refers to the integration of computation with physical processes. In CPS, embedded computers and networks monitor and control the physical processes, usually with feedback loops where physical processes affect computations and vice versa. The design of such systems, therefore, requires understanding the joint dynamics of computers, software, networks, and physical processes. There numerous applications of CPS. Consider for example various systems for automotive safety that have been deployed or are in advanced stages of research and development. For example, many cars today detect inadvertent lane changes (physical process) and warn the driver (computation). It is easy to imagine many other applications, such as systems that assist the elderly; telesurgery systems; and home appliances that cooperate to smooth demand for electricity on the power grid. Moreover, it is easy to envision using CPS to improve many existing systems, such as robotic manufacturing systems; electric power generation and distribution; process control in chemical factories; distributed computer games; transportation of manufactured goods; heating, cooling, and lighting in buildings; people movers such as elevators; and bridges that monitor their own state of health. The impact of such improvements on safety, energy consumption, and the economy is potentially enormous.
When studying CPS, certain key problems emerge that are rare in so-called general purpose computing. For example, in general-purpose software, the time it takes to perform a task is an issue of performance, not correctness. It is not incorrect to take longer to perform a task. It is merely less convenient and therefore less valuable. In CPS, the time it takes to perform a task may be critical to correct functioning of the system. In CPS, moreover, many things happen at once. Physical processes are compositions of many things going on at once, unlike software processes, which are deeply rooted in sequential steps. In the physical world, by contrast, processes are rarely procedural. Measuring and controlling the dynamics of these processes by orchestrating actions that influence the processes are the main tasks of embedded systems. Consequently, concurrency is intrinsic in CPS. Many of the technical challenges in designing and analysing embedded software stem from the need to bridge an inherently sequential semantics with an intrinsically concurrent physical world.
We expect that in the frame of this course the students
- understand the interplay of software and hardware with the physical environment in which they operate
- will understand models about the evolution of a system state (dynamics) and their relationship to realisations of systems
- understand embedded systems as stepping stones towards a sound design practice
- understand how today’s technologies both impede and achieve sound design practice
- will be familiarised with the temporal dynamics of CPS designs and the concurrency issues that they face
- will develop a critical understanding of threads, message passing, deadlock avoidance, race conditions, and data determinism
Course Content (Syllabus)
Introduction to Cyber-Physical Systems, Continuous Dynamics, Discrete Dynamics, Hybrid Systems, Composition of State Machines, Concurrent Models of Computation, Sensors and Actuators, Embedded Processors, Memory Architectures, Input and Output, Multitasking, Scheduling, Reachability Analysis and Model Checking, Quantitative Analysis, Security and Privacy
Keywords
embedded systems, dynamic systems, hybrid systems, concurrency, multitasking, timed systems, system architecture, verification, security
Additional bibliography for study
1. E. Ashford Lee, S. A. Seshia, Introduction to Embedded Systems - a Cyber-physical Systems Approach, 2nd ed., MIT Press, 2017
2. D. Lacamera, Embedded Systems Architecture, PACKT Publishing, 2018
3. R. Alur, Principles of Cyber-physical Systems, MIT Press, 2015
4. Ι. Μυριτζής, Δυναμικά συστήματα με εφαρμογές στη φυσική και στην οικολογία, Ελληνικά Ακαδημαϊκά Ηλεκτρονικά Συγγράμματα και Βοηθήματα (www.kallipos.gr), 2015
5. M. Wolf, Computers as Components - Principles of Embedded Computing System Design, 4th ed., Morgan Kaufmann, 2016