Feb 02, 2023  
2019-2020 Undergraduate Academic Catalog 
2019-2020 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

SE 3910 - Real-Time Systems

3 lecture hours 2 lab hours 4 credits
Course Description
This intense design course introduces students to software development for real-time systems, which often have stringent timing constraints that must be satisfied even under adverse circumstances. Real-time applications include flight control systems, vehicle control systems, industrial processes, life-support systems, robotic manipulators, and multimedia applications. Special attention is paid to scheduling, latency minimization, bandwidth constraints, and other design issues that impact the design of these systems. Laboratory assignments provide experience in the design and implementation of realistic applications using a real-time operating system and embedded development board. (prereq: (CS 2711  or CE 1921) , and (CS 3840  or CS 3210 ), or consent of instructor)
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Understand concepts of time-critical computing and identify real-time systems
  • Get familiar with a host-target development environment for time-critical systems
  • Write multitasking computer programs with inter-task communication and synchronization
  • Apply concepts of inter-task communication and synchronization via shared memory, message queues, signals, semaphores, and mutexes
  • Understand real-time kernels and task scheduling
  • Understand concepts of reliability in relation to real-time software
  • Construct distributed real-time applications using a real-time operating system
  • Analyze the performance of a real-time system

Prerequisites by Topic
  • C++ programming
  • The C Compiler model
  • UNIX code development
  • Scheduling
  • Basic computer organization

Course Topics
  • Basic real-time systems concepts (3 lectures)
  • Raspberry Pi architecture (2 lectures)
  • Usage of an oscilloscope (1 lecture)
  • Cross compilation (2 lectures)
  • Response time and latency (1 lecture)
  • GPIO (1 lecture)
  • Multithreading in C++ (2 lectures)
  • Socket and interprocess communications (2 lectures)
  • Software PWM (1 lecture)
  • Basic electrical circuits (2 lectures)
  • RMA (2 lectures)
  • Sensors and input devices (2 lectures)
  • Open CV introduction and applications (2 lectures)
  • Buffering and queuing theory (1 lecture)
  • Reliability, performance, and ethical concerns (2 lectures)
  • Assessment, review, and current (4 lectures)

Laboratory Topics
  • Introduction to software development on the Raspberry Pi
  • Basic I/O Operations on the Raspberry Pi
  • Development of a simple real-time game
  • Networking with the Raspberry Pi
  • Basic robotics control
  • Basic sensors (multiweek)
  • Camera interface and streaming
  • RMA analysis and streamed video (multiweek)

Dr. Walter Schilling

Add to Portfolio (opens a new window)