Real-time systems are systems in which a timely response by a computer to external stimuli is vital to the performance of the system's objective. We begin with basic computer architecture and hardware elements relevant to the study of real-time issues, including low-level input/output devices, interrupt controllers, and CPU cores. Next we study software design and specification methods such as flowcharts, state transition diagrams (finite state automata), and petri nets. Finally, we move on to real-time kernels, including task scheduling, interrupt latency, and communication and synchronization of tasks.
