Reaaliaikaohjelmointi (T0137), 6 op
Basic information
Course name: | Reaaliaikaohjelmointi Real-time programming |
Course Winha code: | T0137 |
Kurre acronym: | RaOhj |
Credits: | 6 |
Type and level of course: | Professional studies |
Year of study, semester or study period: | 4.year |
Implementation: | 3.period, 4.period |
Semester: | 0708 |
Language of tuition: | Suomi |
Teacher: | Hannu Laine |
Final assessment: | Grading scale (0-5) |
Descriptions
Prerequisites
UNIX Operating System
C Programming
Real-time operating systems
Course contents (core content level)
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
Course contents (additional)
Sockets and streams
Device drivers
Different scheduling policies
Strict real-time requirements
Core content level learning outcomes (knowledge and understanding)
After completing the unit the student understands the meaning and effects of the things in the list above when processes are run concurrently. In addition to that he/she knows how these things are implemented in the software according the latest version of the standard IEEE Std 1003.1-2001 (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.
Core content level learning outcomes (skills)
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 reliable way so that all timing combinations of different asynchronous events that could cause problems are taken into consideration
Recommended reading
Lecture handouts and lecture transparencies
Teaching and learning strategies
Lectures, laboratory exercises and teamwork project
Teaching methods and student workload
Lectures
Exam
Individual research, reading
Laboratory assignments
Report/project
Assessment weighting and grading
Examination 80%
Laboratory exercises and teamwork project 20%
Related competences of the degree programme
Software Engineering