Copyright

Real Time Systems

The University of Haifa
The department of Computer Science
Semester A 2005-2006


Messages


14-Oct-2005 To students who already registered, the course is now available online at the HighLearn system.

Contents

Introduction
Instructor
Course resources
Prequisite
Assignments
Exam
Course subjects

Introduction

Real time systems play fundamental part in our everyday lives. They are developed for commercial, industrial and military use. (The Boeing 777 contains hundreds of CPUs. A typical modern car has more than 40 CPUs. Each modern medical device contains software). Real Time software can operate on a standard workstation or in an embedded environment. It may adhere to various standards and may include proprietary and commercial components (hardware and software).

Real-time software is considered by the industry as the most difficult software to develop and manage. The developer should be familiar with hardware configurations, Real-Time Operating Systems(OS), development methodologies, development artifacts and notations, native and cross development environment and more...

System engineers and software developers need to take plenty of considerations before and during the implementation. These tradeoffs should be based on analysis and knowledge.

The aim of this course is to review the major aspects of the development, starting from the requirements analysis phase until the final testing phase. We shall review various methods of analysis, architectures to increase availability and safety of the system and the use of design patterns in the software. We shall discuss Real-Time schedulers, synchronization and communications methods and various commercial RTOSes. We shall compare programming languages and the restrictions imposed on them.

Throughout this course students will develop a software project and will implement it.


Instructor

Dr. Avi Noy

Email: avi_n@yahoo.com

Web: http://research.haifa.ac.il/~avinoy/


Course resources

a. Douglass, B. P. (1999). Doing Hard Time. Addison Wesley, ISBN 0201498375
b. Additional articles, white papers, and online documentation as specified in course material.
C. Technical references on C/C++ in Windows environment.
d. Technical references on UML (available online).
e. Tornado and VxWorks user's manual (available online).

Please review the full list at the HighLearn course site.


Prequisite

a. Programming in C/C++.
b. Operating systems.
c. Data structures course.
d. Object oriented analysis and design (not mandatory).
e. Software engineering (not mandatory).


Assignments

Developing a Real-Time project, including development documents and presenting them in class - 30%.
a. Software requirements specification (and it's presentation).
b. Software design document (and it's presentation).
c. Project presentation and Version description document.

Each group of students will develop a software project using concepts and methodologies discussed in class. The project will implement a multi-task/thread/process system and will be developed in C/C++. During the development, the support document will be prepared and presented in class.


Exam

Final exam - 70%


Course subjects

Introduction to Real Time
What is Real-Time software - Hard vs. Soft Real-Time. Real-Time for Embedded systems.
Real-Time terms and concepts: Responsiveness, Concurrency, Predictability, Correctness, Robustness.
Standards and methodologies
Military software standards: DoD-STD-2167A, Mil-STD-498, DEF STAN 00-55/56.
Civil software standards: IEEE 12207, RTCA/DO-178B, CMM/CMMI, IEC61508.
Software documents: Requirement documents, Design documents, Test documents, support documents.
Software dependability
Fault tolerance, availability, security, safety and reliability (in the Real-Time domains).
System architectures and software methods to achieve high availability and safety.
Object orientation for real-time
Introduction to UML for Real-Time applications - Use cases, Class diagrams, Sequence diagrams, Collaboration diagrams, State charts, Component Diagram.
Real-time applications
Scheduling, synchronizations, communication, interrupts, deadlocks.
Real Time analysis
Rate Monotonic Analysis (RMA).
Latency calculation.
Resource utilization.
Inter-task communication, message mechanisms and thread synchronization.
Real Time operating system
RTOS standards: POSIX, Arinc-653, OSEK. Real time kernels: capabilities, examples from: VxWorks, Integrity, LynxOS, VRTX, Windows CE, Windows and extensions, Real Time Linux.
Languages for real-time
The use of: C, C++, EC++, Java, Ada i real-time.
Development environment
Software development environment for real-time: Native vs. Cross development environment.


This page is maintained by: Avi Noy
Last updated: 23-Oct-2005
This counter provided for free from Admo.net!