2019 Advanced System Software

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Computer Science
Instructor(s)
Watanabe Takuo 
Class Format
Lecture     
Media-enhanced courses
Day/Period(Room No.)
Mon1-2(W832)  Thr1-2(W832)  
Group
-
Course number
CSC.T431
Credits
2
Academic year
2019
Offered quarter
3Q
Syllabus updated
2019/3/25
Lecture notes updated
2019/11/18
Language used
English
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/cyber-physical 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 cyber-physical 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) formally model and verify cyber-physical systems, and
(4) discuss timing, scheduling and related properties.

Keywords

Embedded Systems, Real-Time Systems, Cyber-Physical Systems, IoT, Real-Time Operating Systems, RTOS, Scheduling, Schedulability Analysis, Verification, Model-Checking, Timed Automata, Functional Reactive Programming

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 Modeling Cyber-Physical Systems (1): Synchronous Model Understand modeling methods for cyber-physical systems and the concepts of the synchronous model of CPS
Class 8 Modeling Cyber-Physical Systems (2): Asynchronous Model Understand the concepts of the asynchronous model of CPS
Class 9 Modeling Cyber-Physical Systems (3): Timed Model Understand the concepts of the timed model of CPS
Class 10 Verifying Real-Time Systems (1): Model-Checking Timed-Automata Understand methods and algorithms for model-checking timed-automata
Class 11 Verifying Real-Time Systems (2): Verification using UPPAAL Understand formal verification methods using UPAAL model checker
Class 12 Analysis of Real-Time Systems (1): Schedulability Analysis and Static Scheduling Understand the concepts of schedulability and static scheduling algorithms for real-time tasks
Class 13 Analysis of Real-Time Systems (2): Dynamic Scheduling Understand dynamic scheduling algorithms for real-time tasks
Class 14 Advanced Topics (1): Reactive Programming Understand the concepts and methods of reactive programming
Class 15 Advanced Topics (2): Functional Reactive Programming Understand the concepts and methods of functional reactive programming

Textbook(s)

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

Reference books, course materials, etc.

R. Alur, Principles of Cyber-Physical Systems, MIT Press, 2015.
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
  • CSC.T425 : Concurrent System Theory

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

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

Page Top