2017 Advanced System Software

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Computer Science
Watanabe Takuo  Gondow Katsuhiko 
Course component(s)
Day/Period(Room No.)
Mon1-2(W832)  Thr1-2(W832)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

This course presents an overview of time as it relates engineering complex software systems including embedded systems. In this course, basic concepts, terminology, and issues of embedded/real-time systems are examined.

The course aims to ensure that students not only acquire the knowledge and technique required for embedded/real-time system development, but also gain skills to formally model/verify simple real-time systems.

Student learning outcomes

By the end of the course students should be able to:
(1) define what it means to be a real-time system,
(2) design and develop simple embedded/real-time programs on RTOS,
(3) discuss timing, scheduling and related properties, and
(4) formally model and verify simple real-time systems.


Embedded Systems, Real-Time Systems, Real-Time Operating Systems, RTOS, Scheduling, Schedulability Analysis, Verification, Model-Checking, Timed Automata

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

Classroom learning and programming exercises

Course schedule/Required learning

  Course schedule Required learning
Class 1 Course Introduction and Overview, Overview of Real-Time Systems Understand some important characteristics and definitions of real-time systems
Class 2 RTOS (1): Overview, Roles of RTOS Kernels, Real-Time Tasks Understand the roles of RTOS kernels and real-time tasks
Class 3 RTOS (2): Synchronization Mechanisms in RTOS Understand the concepts and algorithms of synchronization in RTOS
Class 4 RTOS (3): Priorities and Scheduling Understand the concepts of priorities and scheduling algorithms of real-time tasks
Class 5 RTOS Programming (1): Overview, RTOS Programming in C/C++ Understand how to construct real-time programs in C/C++ for an RTOS
Class 6 RTOS Programming (2): Abstractions Mechanisms for Real-Time Processing Understand the usages of abstraction mechanisms in an RTOS
Class 7 Analysis of Real-Time Systems (1): Schedulability Analysis Understand the concepts of schedulability and methods of schedulability analysis
Class 8 Analysis of Real-Time Systems (2): Static Scheduling Understand static scheduling algorithms for real-time tasks
Class 9 Analysis of Real-Time Systems (3): Dynamic Scheduling Understand dynamic scheduling algorithms for real-time tasks
Class 10 Modeling Real-Time Systems (1): Overview Understand modeling methods for real-time systems
Class 11 Modeling Real-Time Systems (2): Timed-Automata Understand the concepts and definitions of Timed Automata
Class 12 Verifying Real-Time Systems (1): Model-Checking Timed-Automata Understand methods and algorithms for model-checking timed-automata
Class 13 Verifying Real-Time Systems (2): Verification using UPPAAL Understand formal verification methods using UPAAL model checker
Class 14 Advanced Topics (1): Fromal Specification of an RTOS Kernel Understand practical specification methods applicable to some parts of an RTOS
Class 15 Advanced Topics (2): Formal Verification of an RTOS Kernel Understand practical verification methods applicable to some parts of an RTOS


None required (course materials will be provided via course website)

Reference books, course materials, etc.

H. Kopetz, Real-Time Systems: Design Principles for Distributed Embedded Applications (2nd Ed.), Springer, 2011.
E.-R. Olderog and H. Dierks, Real-Time Systems: Formal Specification and Automatic Verification, Cambridge U. Press, 2008.

Assessment criteria and methods

Assignment: 50%
Programming Project: 50%

Related courses

  • CSC.T243 : Procedural Programming Fundamentals
  • CSC.T253 : Advanced Procedural Programming
  • CSC.T344 : System Programming
  • CSC.T251 : Automata and Formal Languages

Prerequisites (i.e., required knowledge, skills, courses, etc.)

Students must have succesfully completed the related courses or have equivalent knowledge.
Students are desired to have familiarity with basic Unix terminal commands.

Page Top