Real time systems
Do you know how to program a modern car or a space ship?
Nowadays we are surrounded by products controlled by computers such as mobile phones, washing machines, cars, and airplanes. They do not look like computers but may have tens or thousands of microprocessors hidden inside, running tens or millions of lines of program code. These are called real time systems: they must respond to externally generated input within a specified time period. This course will focus on techniques to construct the software component of a real time system. We aim at understanding the basic requirements of a real time system and how they have influenced the design of programming languages and operating systems. We study how to program a computer with limited computing resources to realize these requirements, and implementation and analysis techniques to ensure that these requirements are met.
By the end of the course, you will have constructed a robot car using LEGO bricks embedded with a microprocessor. The essential difference between this and a modern car like Volvo S80 will be the size and cost. The construction of the control software components will be based on the same principles and the same techniques. Prerequisites: Computer architectures, Operating systems, Programming in C or C++. Goal: Learn to program a computer system that must deliver not only the right result of a computation task but also at the right time.