CS4220/6235 - Embedded Systems and Real-Time Systems
Spring 2005
Location:
College of Computing Building 17
Time: MW 4:35-5:55
Instructor: Calton Pu (calton@cc.gatech.edu)
Office: 269 CCB Bldg.
Office hrs.: by appointment.
TA: Younggyun Koh (you can pronounce my first name simply as Young) (young@cc.gatech.edu)
Office: CCB 225F
Office hours: MW 3:30-4:30 CCB 260 or by appointment
Email: please include [CS4220/6235] in the title of your email to get
immediate attention
Newsgroup: git.cc.class.cs6235
Course Description
CS4220 (Embedded Systems) and CS6235 (Real-Time Systems) are
co-listed this term. This course covers the principles of
real-time and embedded systems inherent in many hardware platforms and
applications being developed for engineering and science as well as for
ubiquitous systems, including robotics and manufacturing, interactive
and multimedia, immersive and omnipresent applications. As part of this
course, students will learn about real-time and quality of service
system principles, understand real-time operating systems and the
resource management and quality of service issues that arise, and
construct sample applications on representative platforms. Platforms
range from handheld and mobile computers to media and real-time server
systems. Platforms may also include specialized systems used in
application-specific contexts, such as autonomous robotics, smart
sensors, and others.
Homework
All students must submit written abstracts for at least 75% of the
papers
studied in class, before each paper's presentation. These abstracts
must
summarize the main points of the paper. Abstracts should not be simple
cut and
paste from the papers -- they should display some understanding of the
material
and criticism of the work (both pros and cons). Only one abstract is
due for
each class, and unless indicated, students may choose which paper to
summarize.
Each abstract will be graded by 0 (not submitted), 1 (average), and
2 (good).
Abstracts must be emailed to the TA by class time. The title of
email should be a form of [CS4220/6235] (your last name) (the last name
of the first author of the paper you have chosen) or similar (for
example, "[CS4220] Koh Burns")
Grading
Policy
Sample
abstracts from another class
(use user_id cs4803 and password carmen)
Projects
Class projects will use the Unix Solaris and Linux operating
systems, both of which offer some facilities for construction and
control of real-time systems. Class members have access to selected
real-time devices and ubiquitous systems, including smart sensors
(skiff boards running Linux), possibly including Lego robots (if there
is class interest), including handheld devices and portable PCs
(Linux-based PCs and PalmOS/Linux-based handhelds and/or wearables),
including camera and other video-based sensors on PCs running Windows
or Linux, and they can have access to the commercially most prevalent
real-time operating system kernel, called Vxworks, running on Pentium
and Sparc machines.
Sample applications available to students include multimedia codes
(video and audio), distributed games, sensor processing codes, image
processing codes, location identification (if there is class interest)
and possibly, distributed virtual environments (again, given class
interest).
- Project Proposal due: Wednesday, Feb 16
Course Outline
NOTES:
The paper links are hosted on an internal web server, so
you may download them ONLY FROM ON-CAMPUS HOSTS with Georgia Tech
domain(gatech.edu), excluding resnet and eastnet. To download
files
from remote sites, you can ssh any CoC or gatech linux/Solaris machines
and use wget.
Please send your commentaries in plain
TXT
format placing them in your email. Do NOT attach your commentaries
especially in doc or pdf format. I appreciate your help.
Important Notice: Project documentation due on April 29th
Check
your commentary gradings here
Weeks 1:
Basic
Concepts
- Wednesday, Jan 12 [Lecture slides]
- Introduction to real-time systems and concepts. (no
commentary assignment)
- Monday, Jan 17 (official holiday)
Weeks 3 - 4:
Sample Real-Time
Applications, Environments, and Measurements
- Monday Jan 24
(big projects/ideas 2) (commentaries due on
Wednesday, Jan 26) [Lecture slides]
- "Some
Computer Science Issues in Ubiquitous Computing." M. Weiser. Communications
of the ACM. 1993.
- "The
Challenges of Mobile Computing." G. Forman and J. Zahorjan. UW
CSE. 1994.
- UG book track: Chapter 3 of Liu book.
Weeks 5 - 6:
Real-Time Scheduling Algorithms
- Monday, Feb 7 (RTOS, threads)
(comentaries due on Tuesday, Feb 8) [Lecture
slides]
- "A
Survey of Real-Time Operating Systems." Kaushik Ghosh, Bodhi
Mukherjee, and Karsten Schwan. Georgia Institute of Technology College
of Computing, GIT-CC-93/18. 1994.
- "Real-Time
Threads." K. Schwan, H. Zhou, and A. Gheith. ACM Operating
System Review. 1991.
- "User-level
Real-Time Threads." S. Oikawa and H. Tokuda. Proceedings of
the 11th IEEE Workshop on Real-Time Operating Systems and Software.
May 1994.
¡¡
- Wednesday,
Feb 9
(EDF, feedback), (commentaries due on Wednesday, Feb 9) [Lecture
slides]
- "Design
and Evaluation of a Feedback Control EDF Scheduling Algorithm."
C. Lu, J. A. Stankovic, G. Tao, and S. H. Son. Proceedings of the
20th IEEE Real-Time Systems Symposium. 1999.
- "Real-Time
Scheduling Theory and Ada." Lui Sha
and J. B. Goodenough. IEEE Computer. 1990.
- "The
Rate Monotonic Scheduling Algorithm - Exact Characterization and
Average Case Behavior." J. Lehoczky, L. Sha, and Y. Ding. Proceedings
of the Real-Time Systems Symposium. 1989.
- "Hard
Real-Time Communication in Multiple-Access Networks." Malcolm
and Zhao. Journal of Real-Time Systems. 1994.
- "Utilization-Based
Admission Control for Scalable Real-Time Communications." B. K.
Choi, D. Xuan, C. Li, R. Bettati, and W. Zhao. Journal of Real-Time
Systems. 2000.
Weeks 7 - 8:
QoS and Feedback-Based Scheduling
Weeks 9 - 10A:
Industrial Embedded Software
- Monday, Mar 7 (Component-Based Software Eng)
- Wednesday, Mar 9 (Industrial Embedded Software)
- Monday, Mar 14 (automotive software)
Weeks 10B -
13A: Research Results
- Wednesday, Mar 16 (code reduction)
- Mar 21-25 (Spring Break)
- Monday, Mar 28 (guest lecture 1:
Galen Swint)
- Wednesday, Mar 30 (guest lecture 2:
Bugra Gedik)
- Monday, Apr 4 (guest lecture 3: Lenin Singaravelu)
- Wednesday, Apr 6 (guest lecture 4: Younggyun Koh)
-
"Optimistic Incremental Specialization: Streamlining a Commercial Operating
System", by Calton Pu, Tito Autrey, Andrew Black, Charles Consel,
Crispin Cowan, Jon Inouye, Lakshmi Kethana, Jonathan Walpole and Ke Zhang,
Proceedings of the Fifteenth Symposium on Operating Systems Principles
(SOSP'95), Colorado, December 1995.
-
"Specialization Tools and Techniques for Systematic Optimization of System
Software", by Dylan McNamee, Jonathan Walpole, Calton Pu, Crispin
Cowan, Charles Krasic, Ashvin Goel, and Perry Wagle of OGI, and Charles Consel,
Gilles Muller, and Renaud Marlet of IRISA, ACM Transactions on Computer
Systems, Vol. 19, No. 2, May 2001, pp 217-251.
- Monday, Apr 11 (specialization server)
กก
Important Notice:
Project documentation is due on April 29th
กกWeeks 13B - 15:
Project Final Presentations
- Wednesday, Apr 13
- Carter, Hoerl, and Owens (Comparison Shopping)
- Dayal, Habibbhai (Traffic Tracker)
- Maisano (Restaurant Automation)
- Monday, Apr 18
- Etherton (Microcontroller TCP)
- Apewokin, Bhatia, Sreeram (Image Instant Messaging)
- Das, Sethi (Real-time Compression)
- Wednesday, Apr 20
- Shieh (Log Analyzer)
- Chang, Fu (Evaluation of RTOS/HW)
- Huang (RM in Simulator)
- Monday, Apr 25
- Doss, Herrington (Lego Robot)
- Diao, Garlantezec, Schweitzer-Chaput (Hearing Aid)
- Govindharaj, Patel (SmartCard Applications)
- Wednesday, Apr 27
- Casper (Flight Control)
- Gibby (QCS Mill Process Control Platform)
- Perrie, Zia (Handset Location Service)
Please send your commentaries in plain
TXT
format placing them in your email. Do NOT attach your commentaries
especially in doc or pdf format. I appreciate your help.
Suggested Book for
the optional UG book track:
Real-Time
Systems by Jane W.
S. Liu. The book is available from many online bookstores.
Student Project Presentations
Important Notice: Project documentation due on April 29th
Instructions:
- Length: limited to 30 minutes total when three
presentations are scheduled for that class.
- Mandatory content in three parts.
- Quick summary of the project proposal (what was promised).
- Quick summary of the current results (what was accomplished).
- How
the project was done (mapping between items 1 and 2), and an evaluation
of the achievements. This is easiest done with the same structure as
the project proposal (first the platform, second the results, and third
the mapping between the two).
- Optional content in remaining time: demos, etc.
Project documentation to be handed in
machine-readable form (paper optional).
Source code, documentation, help pages, test and demo code, scripts to
build the system, run tests, and demos, links to appropriate
documentation for the underlying platforms.
Other documentation that complements the project description. For
example, if
you built a hardware gadget and you are not handing in the gadget, then
you
should have enough description of the gadget (photos, pictures,
schematics, and
documentation) so we can appreciate your work.
A copy of the project proposal, history of changes if
appropriate, and the
presentation slides.
Project documentation: a few pages of "evaluator guide" to
navigate the above
documentation. Typically it's a cleaned-up version of the presentation,
with
the same structure as described above.
Additional, Possible Class Topics:
Structuring and describing real-time software
- Real-time languages, including:
- Specification and statement of timing constraints.
- Verification of timing correctness.
- Compiler techniques, including compiling for embedded
systems.
- Imprecise computation
- Object-oriented real-time applications and design tools
Performance Evaluation
- Modeling
- Measurement and Monitoring
- Optimization
Further issues in Real-Time Systems
- Real-time database
- Reliability
- High availability
- Multi-version
- Replication
- Fault tolerance
Note:
This class is taught every year, by combining the 4220
and 6235 course
numbers. It is suitable for both CoC and non-CoC majors, in part
because grades are based on project work, which is defined jointly by
the
instructor and students. The intent is to ensure some basic skills on
the part of each student and also to match both student
interests/background and course objectives.
Grading
Each student (or team) will present one course topic in
class and also
complete the class projects. Maximum team size is 3 students. In
addition, as part of class homework, all students must submit written
commentaries for at least 75% of the papers studied in class, before
each
paper's presentation. These commentaries should consists of three
paragraphs (not too long, since quality is more important than
quantity). The first paragraph should summarize the main ideas and the
strong points of the paper. The second paragraph should outline
the limitations or weaknesses of the paper. The third paragraph
contains your own comments. Each commentary will be graded by 0 (not
submitted), 1 (average), and 2 (good).
- 60% Project
- 20% Commentaries/Class Participation
- 20% Student Presentations
Useful Links:
Real-time
Systems Reading List
Boston
University: CS835 Reading List
Computer
Science Research Paper Search Engine
Real-Time Resources
Ubiquitous
Computing Links
Postscript(R) to PDF
Converter