University of Virginia
Real-time computing has become an important subdiscipline of Computer Science and Computer Engineering. Many interesting applications require real-time computing such as avionics, air traffic control, robotics, factory automation, nuclear power plants, process control, automated highways, intensive care monitoring, space travel, financial transactions, telecommunications, mobile computing, and multimedia. One major study has indicated that by the year 2000, 50% of all software development will be for real-time embedded systems. The course presents the underlying theory, concepts, and practice for such systems. The goals of the course include: introducing the unique problems that arise when time constraints are imposed on systems, identifying basic theory and the boundary between what is known today and what is still research, stressing a systems integration viewpoint in the sense of showing how everything fits together rather than presenting a collection of isolated solutions, and addressing multiprocessing and distributed systems. One main value to this course is how it brings together material that students have had in other courses such as architecture, operating systems, programming languages and software engineering. Other values include introducing multiprocessing, networking and simulation.
With the explosion of the Internet capabilities and the ability to transmit real-time audio and video streams, real-time computing is now ubiquitous. This course also presents some of the basic results from what might be called the classical technology of real-time computing and presents that in the context of new applications of this technology in distributed real-time multimedia and real-time multimedia databases. Applications that can take advantage of these new capabilities include: enhanced version of classic real-time applications as well as distributed simulation, distance learning, global business enterprise computing, entertainment, and distributed medicine.
Main topics in the course include an introduction to what real-time systems are and are not, real-time scheduling, real-time operating systems (kernels) including multiprocessor kernels, real-time networking and architectures, real-time requirements and design languages, real-time programming languages, multimedia, and distributed multimedia databases.
Prof. John (Jack) Stankovic
Dept of Computer Science
University of Virginia
Charlottesville, VA 22903
OFFICE HOURS: to be announced in class
None. Papers will be handed out. Reading assignments will include various papers from the literature.
Advances in Real-Time Systems
John A. Stankovic and Krithi Ramamritham
IEEE Computer Society Press
Undergraduate courses in computer architecture and operating systems are required. Knowledge of C or C++ is also required.
Introduction - 2 lectures
Real-Time Scheduling - 8 lectures
Real-Time Kernels - 2 lectures
Real-Time Multiprocessor Kernels - 5 lectures
Real-Time Networking - 2 lectures
Real-Time Requirements and Design - 2 lectures
Real-Time Programming Languages - 2 lectures
System Integration - 2 lectures
Real-Time Distributed Multimedia Databases (2 lectures)