2016 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  Gondow Katsuhiko 
Course component(s)
Lecture     
Day/Period(Room No.)
Mon1-2(W832)  Thr1-2(W832)  
Group
-
Course number
CSC.T431
Credits
2
Academic year
2016
Offered quarter
3Q
Syllabus updated
2016/4/27
Lecture notes updated
2016/11/20
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 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.

Keywords

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, Real-Time Characteristics and Definitions Real-Time Characteristics and Definitions
Class 2 Real-Time Operating Systems (1): Kernels, Tasks and Priorities RTOS Kernels, Tasks, Priorities
Class 3 Real-Time Operating Systems (2): Synchronization, Communication and Memory Management Mutex, Semaphore, Message Passing, Mailbox, Memory Pools
Class 4 Real-Time Operating Systems (3): Scheduling Task Scheduling, Interrupts, Priority Inversion, Priority Inheritance
Class 5 Real-Time System Programming (1): RTOS Programming in C/C++ Programming Abstractions in RTOS
Class 6 Real-Time System Programming (2): Abstractions for Real-Time Systems Abstractions and Language Mechanisms for Real-Time Systems
Class 7 Analysis of Real-Time Systems (1): Schedulability Analysis Schedulability Analysis, Periodic Tasks, Aperiodic Tasks
Class 8 Analysis of Real-Time Systems (2): Static Scheduling Static Scheduling, Rate-Monotonic Scheduling
Class 9 Analysis of Real-Time Systems (3): Dynamic Scheduling Dynamic Scheduling, Earliest Deadline First Scheduling
Class 10 Modeling Real-Time Systems (1): Modeling Timed Systems, Real-Time UML Modeling Timed Systems, Real-Time UML
Class 11 Modeling Real-Time Systems (2): Timed Automata Timed Automata
Class 12 Verifying Real-Time Systems (1): Model-Checking Timed Automata Model-Checking Timed Automata
Class 13 Verifying Real-Time Systems (2): Using UPAAL UPAAL
Class 14 Advanced Topics (1): Verifying RTOS Kernels Verifying RTOS Kernels (case study)
Class 15 Advanced Topics (2): Functional Reactive Programming Functional Reactive Programming for Embedded Systems

Textbook(s)

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

RTOS Programming Project: 50%
Assignment: 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