Basic information, updated May 4,
2007 (Hannu Laine)
Realtime programming
C0091 (CAP03S3)
You should
register to the course
using WinhaWille. The identification code of the course is C0091 and
the
implementation
code is CAP03S3.
After completing the unit the student knows the principles and practice
of implementing real time and embedded systems, especially what comes
to the use of 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 features of the
standard IEEE Std 1003.1-2001 (POSIX.1) is followed and a special
emphasis is put
to the real time extensions of the standard like timers, real time
signals, asynchronous i/o, semaphores, shared memory objects and so on.
[ General
|
Main topics | Record
| Course material
| Exercises
| Teamwork
excercise | Exam
]
General
information
- The course is taught during third and fourth period of the
fourth
year
- The course is 6 points (ECTS)
- Lectures 2 h / week ( 28 hours together)
- Labs 2 h / week (28 hours together)
- One teamwork exercise (estimated effort for
student 46
hours)
- Self study (estimated effort for student 54 hours)
- Exam at the end of the course (3 hours)
Main topics
Seuraavassa on alustavasti sisällön
pääkohdat.
Lista tarkentuu opintojakson aikana.
- Introduction
- 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
- Sockets and streams
- Threads and thread synchronization
- Dynamically linked function libraries
- Device drivers
The history of
topics discussed so far
See "Lecture
transparencies" in the
section course material.
Course
material
- You can print out the lecture transparencies from the links
below.
- Handouts are supplemented with notes during lectures
- Supporting books
1) Richard Stevens and Stephen Rago :
Advanced Programming in The Unix
Environment (Second Ed. 2005)
2) Kay A. Robbins and Steven Robbins: Unix
Systems
Programming: Communication,
Concurrency and Threads (Second Ed. 2003)
Lecture transparences
"Brief guides"
Exercices
There are about fourteen
lab
excercises
during the course. Some of them are voluntary additional tasks (marked
with E, standing for extra)
Teamwork
exercise
You can find the
description of the
teamwork exercise
here.
The recommended number
of
students in one team is three (or optionally two). One goal of the
teamwork exercise to learn working in teams and working according the
principles of real project. Thus it is necessary to divide the work
into
pieces, which are relatively independent from each other. It is also
necessary to compose a plan for the project to get it to
proceed
smoothly. The plan contains at least a list of subtasks, the timetable
and responsibility chart (who is responsible for what task).
More instructions
for
project work in this link.
Exam
The examination is held on Tuesday, May 8 at 10.00 in the room A1.127.
At the end of the course the exam is arranged in which the
understanding of the topics and the ability to apply them is tested.
The final grade is based mainly to the exam (80%). The
activity
in
labs and in a teamwork excercise can have an effect of 20% in final
grade. All compulsory lab excercises are required to be
completed
to get the course approved. The problems to be solved in the
exam
have similarities in nature with the problems worked out in labs, but
they don't necessarily give straight answers to questions in the exam.