Text Only VersionSkip to global navigationSkip to section navigationSkip to page body


Syllabus for CIS 305

Real-Time Systems  CIS 305

Spring, 2006


Instructor:     Eugene Kwatny

Office:           Room 1014 Wachman Hall (10th Floor)

Phone:          215-204-1679

EMAIL:          gkwatny@temple.edu

Class Hours: Tuesday/ Thursday 10:10 AM - 11:30 AM TLC 305a (Tuttleman)

Laboratory:  Friday 9:40 - 11:30 PM Wachman 200

Office Hours:     Tuesday 12:00 - 1 :00 PM

                       Thursday 2:00 - 4:00 PM

                       (other times can be scheduled)

Required Textbook:

'Real-Time Programming - A guide to 32-bit Embedded Development', Grehan, Moote and Cyliax, Addison Wesley, 1998

Grading: Course grade will be determined by

Course Work 75% Midterm Exam 40% Final Exam 40%

Homework, problem assignments and class and discussion participation - 20%

Lab Assignments 25%

Attendance: Mandatory for all classes and laboratories


Aims of the Course

One of the fastest expanding areas of computer application is in systems that respond to and manage real-time events. Unlike more traditional computer applications where information processing is required to carry out the prime function of the computer, in real-time systems, information processing itself is NOT the prime function. For example, a microprocessor based system used to control the braking system on an automobile (ABS) has the purpose of controlling the braking of a car, but includes using information about the speed of the car, Real-time systems require the understanding of events that occur asynchronously or synchronously, possibly gathering information related to the events before the information “disappears”, and completing a task within a time requirement. Real-time applications place additional requirements on the computer systems, operating systems and the languages and environments used to build the applications.


We will attempt to not only introduce the basic concepts of understanding and developing real-time systems, but also implement systems that demonstrate the basic concepts. In the laboratories students will develop simulated embedded real-time systems and develop software to control analog and digital control and acquisition devices.


Course Content

In this course, we will study what real-time systems are, the characteristics of certain devices that require real-time event response, and the development of systems to manage real-time applications. Topics to be covered in lectures include:

  • Introduction to Real-Time Systems
    • Definitions of Real-time systems
    • Embedded systems
  • Designing and Developing Real-time Systems
  • Architecture
  • Interrupts and Exceptions
  • Timers and Real-time Facilities
  • Real-Time Devices
    • Event driven activities
  • I/O Devices and Buses
    • Serial devices and parallel devices
    • Peripheral serial buses
  • Multitasking in Real-Time Systems
    • Scheduling
    • Synchronization
    • Inter-task communication
  • Data Acquisition and Control Systems
    • Analog to digital conversion and digital to analog conversion
    • multi-threaded real-time data acquisition
    • applications using real-time data acquisition and control


In addition, we will discuss tools used to implement embedded and real-time systems. The


Reading Assignments

Lecture Notes will be provided for the topics discussed in the course. The textbook and several reference sources will be used for course reference, outside reading and for course projects.


For the first several lectures of the course we will be introducing the idea of real-time systems and embedded systems. You should read Chapters 1 and 2 from the Real-time Programming text. Although in class we will discuss many of the particular issues concerned with developing real-time systems, I will leave you responsible for all of the concepts in Chapter 2. The first laboratory will include installing and setting up the Phar Lap ETS software. Chapter 3 should be read before the first lab. Software debugging will be discussed in class and is the topic of Chapter 4 in the textbook. You should read this chapter to assist you in program development for laboratory problems. Chapters 6 & 7 contain material that you may have discussed in prior courses, but contains important information for laboratory projects. You should read these chapters as they contain programming and kernel discussions relevant to the laboratory projects. Chapter 8 discusses the Simple UPS project. We will perform experiments with the simple UPS project and you should read this chapter to become familiar with the system design and implementation. Chapter 9 discusses Interrupts and we will spend considerable time discussing these concepts and application. Chapter 10 discusses Timers, important devices in real-time systems and this chapter must be read. Chapter 11 concerns the Smart UPS system. We will discuss this project in detail and you will perform an experiment in extensions to this system. Chapter 12 concerns multi-tasking. We will send considerable time discussing the material in this chapter, including the use of processes and threads and the use of multi-threading in real-time systems. Chapter 13 concerns Serial I/O. We will use the material in this chapter to continue our discussion of threading and the use of callbacks in laboratory projects. Reference material for A/D and D/A conversion and the development of multi-threaded data acquisition systems will be provided. this material will be discussed in class and used in laboratory experiments. We will develop several real-time applications involving high speed analog data acquisition and display. In class we will look at examples of such programs and how they can be implemented in LabWindows/CVI. In the laboratory you will build applications demostrating the concepts we discuss. In class, we will also design a biomedical application that uses these concepts.


Student Responsibilities

Student's are responsible for reading all assigned text materials, handouts, and referenced sources. Students should have permanent accounts on the University Astro (Unix) systems and will be given class accounts for the CIS PC (Windows XP) laboratories on the second floor of Wachman Hall. Students are expected to accomplish all of the assigned laboratory projects using these facilities. Students will also be assigned computer workstations in room WH200 for some embedded and real-time development projects.

We will be using two development environments for this course. One is Visual Studio C/C++ for use with the Pharlap ETS kernel and the other is LabWindows/CVI for real-time control and data acquisition. Students will be expected to learn and experiment with these environments in order to accomplish the laboratory projects.

Students will be assigned tasks of developing questions and answering questions developed by other students for each lecture. These question/answer dialogues will be via the class discussion board (see below).



We will use the Blackboard course management system in this course (http://tuportal.temple.edu). In order to access Blackboard you must have an AccessNet account. You should already have such an account, but if you need help with this account, visit the Help desk on the ground floor of Wachman Hall. All communication of assignments, course documents and course related discussion will be through Blackboard. This includes a Blackboard threaded discussion list. Students will be required to interact with themselves, and the instructor via this discussion list.

Students registered for the course will be automatically enrolled in the Blackboard course. If for some reason you have difficulty in accessing the Blackboard course, contact Dr. Kwatny.

Office visits, Voice Mail and EMAIL are encouraged for communication with instructors. Additional references are available from the CIS305 section on Blackboard.


Important University Dates

First class: Tuesday, Jan. 18 .
Last day to drop (tuition refund available): Monday, January 31.
Spring recess: No classes are held during the week March 6 - March 13.
Last day to withdraw (no refund): Monday, March 28.