Skip to main content

BIM 321 - Real-Time Programming

Faculty of Engineering and Natural Sciences · Computer Engineering · Undergraduate

ECTS: 5 T+P+L: 2+0+1 Departmental Elective
Coordinator: Dr. Öğr. Üyesi Özgür SAĞLAM
Instructors: Dr. Öğr. Üyesi Özgür SAĞLAM

Course Objective

This course introduces students to the fundamental problems, concepts, and approaches in the design and analysis of real-time systems. Realtime applications typically involve safety or mission critical systems where timing guarantees must be maintained. Real-time task design, dependability, communication, power and energy awareness, scheduling, and real-time control are some of the topics that will be covered. The course also presents a comprehensive description and assessment of the programming languages and operating system standards used in this domain. Particular emphasis is placed on language primitives and their role in the production of reliable, safe and dependable software.

Course Content

Programming languages intended for real time systems, Real time operating system (RTOS), scheduling, resource handling, Design and analysis of real time system software, Modelling and verification of real time systems, Reliability and fault tolerance, Interrupts, Fault recovery, Distributed real time systems, Real time communication, Real time systems for multiprocessor systems.

Course Learning Outcomes

  1. Enumerate the need and the challenges in the design of hard and soft real time systems.
  2. Recognize the characteristics of a real-time system.
  3. Compare different scheduling algorithms and the schedulability criteria.
  4. Determine schedulability of a set of periodic tasks given a scheduling algorithm.
  5. Integrate resource access mechanisms with the scheduling techniques and develop integrated schedulibility criteria.

Core Area Distribution

(48) Computing%60 (52) Engineering and Engineering Trades%40

Teaching Methods

ExpressionQuestion-AnswerDiscussionExperiment - Test / Lab/ Workshop / Field PracticeSelf studyProblem Solving

Assessment & Evaluation

HomeworkProject / DesignTesting (Essay / Tests: True-Falls, multiple-choice, short answer, matching)

ECTS / Workload

ActivityQuantityDuration (h)Total Workload
Course Duration (Including Exam Week)14342
Out of Class Study Period000
Midterm133
Quiz414
Assignment4312
Practice11010
Final133

Course Schedule

WeekSubjectPreparation
1Introduction to real-time systems.Introduction to real-time systems.
2Reliability and fault tolerance.Reliability and fault tolerance.
3Exceptions and exception handling.Exceptions and exception handling.
4Concurrent programming.Concurrent programming.
5Shared variable-based synchronization and communication.Shared variable-based synchronization and communication.
6Message-based synchronization and communication.Message-based synchronization and communication.
7Atomic actions, concurrent tasks and reliability.Atomic actions, concurrent tasks and reliability.
8Resource control.Resource control.
9Real-time facilities.Real-time facilities.
10Programming real-time abstractions.Programming real-time abstractions.
11Scheduling real-time systems.Scheduling real-time systems.
12Programming schedulable systems.Programming schedulable systems.
13Tolerating timing faults.Tolerating timing faults.
14Low-level programming.Low-level programming.
15Selected topics.Selected topics.
16Selected topics.Selected topics.