EE 599-004: Real-Time and Embedded Computing Systems
Instructor Information
| Professor: | Dr. William R. Dieter |
| Email: | dieter@engr.uky.edu |
| Office: | 683 Anderson Hall |
| Office Hours: | TBA |
Course Information
| Textbook: | Jane W. S. Liu, Real-Time
Systems, Prentice-Hall, Inc. 2000, ISBN:
0-13-099651-3 |
| Supplementary Reading: | Additional reading material may
be assigned during the semester. The additional material will be
supplied on the web site or put on reserve in the library. |
| Course URL: | http://www.engr.uky.edu/~ee599 |
| Syllabus: | http://www.engr.uky.edu/~ee599/syllabus.html |
| Prerequisites: |
Equivalent of two 400 level courses in Electrical Engineering, consent
of instructor and engineering standing. EE 380 or equivalent and
familiarity with C programming. |
| Location: | RGAN 202 |
| Time: | MWF 2:00 PM - 2:50 PM |
Course Description and Outcomes
From systems as small as a toaster to those as sophisticated as a TiVo
or a computer controlling heavy machinery in a factory, computer
systems are everywhere. These embedded computer systems often have
different constraints on their operation than do their desktop or
mainframe counterparts. For example, a word processor on a desktop
machine pauses while the user is typing, it is merely annoying. In
the case of a heavy machine controller, it could be catastrophic.
This class will cover features typically found in real-time and
embedded systems with those found in more traditional computer
systems. Topics will include scheduling, synchronization, memory
management, and architectural features of real-time and embedded
systems.
After successfully completing this course, students will be able to:
- Choose an appropriate scheduling algorithm and use it to schedule
tasks in a real-time operating system.
- Use synchronization primitives to synchronize interprocess
communications between tasks with different priorities
- Understand the basics of interprocessor communication, including
mechanisms for real-time communication
- Discuss strategies for reducing power consumption
Announcements
Homework
| Number | Assigned | Due | Problems | Solutions
| Pts |
| 1 |
1/26/2004 |
2/2/2004 |
Homework 1 |
Solution 1 |
50 |
| 2 |
2/9/2004 |
2/18/2004 |
Homework 2 |
Solution 2 |
50 |
| 3 |
3/3/2004 |
3/12/2004 |
7.1,7.2,7.4,7.5,7.19 |
|
100 |
| 4 |
4/2/2004 |
4/14/2004 |
8.3, 8.7, 8.9, 8.15 |
|
100 |
Projects
Exams
Supplemental Reading
- Filsystem/Storage Links
- Real-Time Scheduling for Low-Power Systems
- Padmanabhan Pillai and Kang G. Shin, Real-/Time Dynamic Voltage Scaling for Low-Power Embedded Operating Systems, in The Proceedings of the Symposium on Operating Systems Principles, Oct. 2001.
- Ajay Dudani, Frank Mueller, and Yfan Zhu, Energy-Conserving Feedback EDF Scheduling for Embedded Systems with Real-Time Constraints, in The Proceedings of the ACM SIGPLAN Conference on Languages, Compilers, and Tools for Embedded Systems, 2002.
- Y. Zhu and F. Mueller, Feedback EDF Scheduling Exploiting Dynamic Voltage Scaling, in Real-Time and Embedded Technology and Applications Symposium, May 2004.
- File Management on Mars
- Sprirt, one of the two rovers currently exploring Mars, recently ran into some software problems. This article in EE Times describes the file management bug that caused the problem, and how it was fixed.
- Software Matters for Power Consumption
- Embedded software can play a significant role in power consumption of embedded systems. This article discusses four ways to design software to avoid power consumption.
- What Really Happend on Mars?
- In 1997 NASA used the Mars Rover to explore and perform tests on the planet Mars. Though the mission was mostly trouble free, Mike Jones wrote about a priority inversion problem that occured during the mission. Subsequently, the person leading the software team wrote a more detailed description that fixed a few problems with the original description. These articles show how priority inversion can come about in real systems, as well as how the problem was found and fixed.
Useful Links
- Syllabus
- The course syllabus is available online.
- Mutex and Condition Variable Example
- fifo-mutex-example.c
shows an example of how to use mutexes and condiiton variables.
- RTLinux Documentation
- FSM Labs maintains the
RTLinux source code which is freely available (meaning you can
download and install it on your PC at home). The FSM labs web site
has a number of white
papers discussing the design of RTLinux and reference material
and tutorials on how to use RTLinux. Manual
pages for RTLinux are a good reference once you have an idea what
it going on.
- RTLinux Examples
- Here are A PDF of intro to
rtlinux lecture, the (non-real-time)hello.c module, and the rthello.c module.
- GCC Inline Assembly
- We will not do much assembly language programming in this class,
if any, but assembly programming is common in embedded and real-time
systems. Often it is sufficient to write just a few instructions in
assembly. GCC's inline assembly feature makes mixing assembly and C
code easy. This
introduction to GCC inline assembler was written for DJGPP, the
DOS based version of GCC, but applies to all versions of GCC (the
examples are all x86 assembly, though).