Priya Narasimhan
Associate Professor
Home/Contact
Brief Biography
Research
Teaching
Publications
Professional Service
Honors/Awards
Tech Writing
|
|
Teaching
COURSES
-
18-349: Embedded Real-Time Systems -- please look at this link for an FAQ that answers questions about the topics covered in 18-348, 18-349 and 18-549
(previously taught by me in Fall 2005, Fall 2003, Fall 2002)
I will NOT be offering this course in Fall 2006, but will return to
offering it from Fall 2007 onwards.
-
This practical, hands-on course introduces the various building blocks and underlying scientific
and engineering principles behind embedded real-time systems. The course covers the integrated
hardware and software aspects of embedded processor architectures, along with advanced topics
such as real-time, resource/device and memory management. Students can expect to learn
how to program with the embedded architecture that is ubiquitous in cell-phones, portable gaming
devices, robots, PDAs, etc. Students will then go on to learn and apply real-time principles that are
used to drive critical embedded systems like automobiles, avionics, medical equipment, the Mars rover, etc.
Topics covered include embedded architectures (building up to modern 16/32/64-bit embedded
processors); interaction with devices (buses, memory architectures, memory management, device drivers);
concurrency (software and hardware interrupts, timers); real-time principles (multi-tasking, scheduling,
synchronization); implementation trade-offs, profiling and code optimization (for performance and
memory); embedded software (exception handling, loading, mode-switching, programming embedded
systems). Through a series of laboratory exercises with state-of-the-art embedded processors and
industry-strength development tools, students will acquire skills in the design/implementation/debugging
of core embedded real-time functionality.
Prerequisites: 18-240, 15-213
-
18-549: Design of Embedded Systems
This will be a revised version of the 18-549 course that I will
be offering, starting Spring 2007.
- This capstone course comprises a semester-long project experience geared towards the development of skills to design realistic and practical embedded systems and applications. Students will work in teams on an innovative project that will involve the hands-on design, configuration, engineering, implementation and testing of a prototype of an embedded system of their choice. Students will be expected to leverage proficiency and background gained from other courses, particularly with regard to embedded real-time principles and embedded programming. The project will utilize a synergistic mixture of skills in system architecture, modular system design, software engineering, subsystem integration, debugging and testing. From inception to demonstration of the prototype, the course will follow industrial project practices, such as version control, design requirements, design reviews and quality assurance plans. The initial lecture content will cover background material intended to complement the project work. The remainder of the course will consist of regular team presentations of key project milestones, current project status, a final project presentation and functional demonstrations of various subsystems, even as the entire prototype is being developed.
Prerequisites: 18-348 OR 18-349
-
18-749: Fault-Tolerant Distributed
Systems -- Spring 2006
(previously taught by me in Spring 2005, Spring 2004, Spring 2003, Spring 2002)
This course will not be offered after Spring 2006.
-
The course provides an in-depth and hands-on overview of designing and developing fault-tolerant distributed systems. The course covers both the fundamental and advanced concepts of dependability, including replication, atomic multicast, group communication, consistency, checkpointing, transaction processing and fault injection, along with industrial standards and real-world practices for achieving high availability and fault-tolerance. Additional topics include the practical trade-offs and inter-relationships between fault-tolerance and other properties, such as real-time and performance. The lecture concepts are complemented through a semester-long hands-on project that involves the design, implementation and empirical evaluation of a distributed fault-tolerant, high-performance distributed system. To introduce students to the state-of-the-art technologies, the project emphasizes the use of object-oriented middleware, such as CORBA and EJB.
TUTORIALS
- Tutorial on Fault-Tolerant CORBA
OMG Workshop on Embedded and Real-Time Distributed Object Systems,
Burlingame, CA (January 2002)
- Tutorial on Fault-Tolerant CORBA
The International Conference on Dependable Systems and Networks,
Göteborg, Sweden (July 2001)
- Tutorial on Fault-Tolerant CORBA
Sixth USENIX Conference
on Object-Oriented Technologies and Systems, San Antonio, TX
(January - February 2001)
- Tutorial on Fault-Tolerant CORBA
Lucent CORBA Forum, Naperville, IL (November 2000)
- Tutorial on Fault-Tolerant CORBA
Object Management Group Meeting, Burlingame, CA
(September 2000)
|