Skip to main content

Real-Time ProgrammingLaajuus (5 ECTS)

Course unit code: TT00AA36

General information


Credits
5 ECTS

Objective

After completing the course the student masters in practice the technique needed to implement real-time software systems using operating system services via the operating system API (system calls and library functions). He/she can develop systems that consist of multiple concurrently running and 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.

The issues are handled according to the standard IEEE Std 1003.1-2001 (-2004, -2008). 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.

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
Sockets
Different scheduling policies

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 in this context.
- The student can avoid synchronization problems in one or another way.

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