Skip to main content

Real-Time ProgrammingLaajuus (6 ECTS)

Course unit code: TI00AA55

General information


Credits
6 ECTS

Objective

After completing the course the student understands the meaning and effects of the things in the list below when processes are run concurrently. In addition to that he/she knows how these things are implemented in the software according to the latest version of the standard IEEE Std 1003.1 (Posix). A special emphasis is put on the real time extensions of the standard like timers, real time signals, asynchronous i/o, semaphores, shared memory objects and so on.
-----
After completing the course the student masters in practice the technique needed to implement real-time and embedded software systems using operating system services via the operating system calls and library functions. He/she can develop systems that consist of multiple communicating processes or threads. The student can design and implement real-time applications that work in a reliable way so that all timing combinations of different asynchronous events that could cause problems are taken into consideration.

Content

Program development in Linux/Unix-environment
Basic operating system services for application programs
Processes and process interaction
Process synchronization (why and how?)
Signals
Pipes and FIFOs
Asynchronous and multiplexed i/o
Timing, timers and timeouts
Semaphores
Shared memory
Message queues
Threads and thread synchronization
Dynamically linked function libraries
-----
Sockets and streams
Device drivers
Different scheduling policies
Strict real-time requirements

Qualifications

UNIX Operating Systems
Programming (C)
Real-Time operating systems

Assessment criteria, satisfactory (1)

-The student understands why and in what way the computer can do several task concurrently (“at the same time”).
-The student understands the properties and differences of processes and threads.
-The student is capable to write applications containing processes or threads.
-The student understands the possible problems caused by the context switch.

Assessment criteria, good (3)

-The student understands the problems caused by the race condition and can avoid them.
-The student can pass information between processes and threads and understands the possible synchronization problems that in this context.
-The student can avoid synchronization problems in one way or another.

Assessment criteria, excellent (5)

-The student can evaluate the suitability of different implementation techniques in different situations and choose one that is applicable in the specific situation.
-The student can implement applications using all techniques provided by the POSIX API.
-The student can do in-depth and wide ranging reasoning about the pitfalls in real-time applications and eliminate them in the implementation.

Go back to top of page