The unit is divided into three parts:
Part 1: « System Programming and Multithreading » (12.5 hours of lectures, 6.25 hours of tutorials, 11 hours of practical work)
The course teaches the concepts and techniques related to the use and manipulation of mechanisms on an operating system instance:
multi-programming (process, thread),
local communication (IPC),
process synchronization (signaling, semaphores, condition variables),
scheduling.
An introduction to parallel processing is also provided. The entire course is illustrated by practical exercises in multi-threaded programming using synchronization and scheduling functions.
Part 2: « Internet Applications and Socket Programming » (6.25 hours of lectures, 5.5 hours of practical work)
The first part of the course details the main distributed applications on the Internet: http, ftp, sftp, SMTP – POP3/IMAP4, Telnet, SSH + pooling/clustering techniques, P2P model, multimedia applications.
The second part presents the socket programming interface (socket API), the basic technology for coding a distributed application (in particular) on the Internet.
Two practical sessions are dedicated to the implementation (in C language) of concepts associated with distributed programming via UDP and TCP sockets (via the programming of a configurable traffic generator/receiver).
Part 3: « Integration Engineering Department » (13.75 hours of practical work + 3.75 hours of tutorials)
A design office (DE) concludes the UF. Its objective is to design and develop a Transport-level protocol (TCP-level) in C language optimized for the transport of distributed video streams in real time. The optimization consists of developing a partially reliable loss recovery mechanism, taking advantage of the loss tolerance of video applications to minimize the transit time of application packets. The service offered is accessible through an API whose service primitive specifications are provided, and which students are required to develop. Managing asynchronism in communication between the application and the Transport service is also addressed, in conjunction with the system programming and multithreading course.
The objectives are assessed based on an integration project report and an assessment of student engagement during the practical sessions. Written exams and/or multiple-choice questions may supplement the validation of theoretical skills.












