System and Network Programming

Description

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.

Objectifs

At the end of this module, the student should have understood and be able to explain (main concepts):
concurrent programming with threads
possible interactions with operating systems (main system calls)
the main distributed applications on the Internet: HTTP, FTP, SFTP, SMTP – POP3/IMAP4, Telnet, SSH + pooling/clustering techniques, P2P model, multimedia applications
fundamental concepts associated with programming distributed applications on the Internet via the socket API
the use of finite state machines (FSM) for protocol specification

The student should be able to:
- use and program an operating system on single- and multi-processor (threaded) machines
- use the socket API to develop (in C language) a distributed client/server application on the Internet
- specify in FSM form and program in C language a transport-level protocol optimized for the transfer of real-time video
- manage asynchronism in communication between the application and the Transport service
- to develop and implement experimental scenarios (here aimed at proving the benefits of the optimized protocol compared to a traditional TCP-type protocol).

Pré-requis

Introduction to Operating Systems (3rd year MIC)
Introduction to Computer Networks (3rd year MIC)
C Language (3rd year MIC)
Assembly Concepts (3rd year MIC)

Évaluation

L’évaluation des acquis d’apprentissage est réalisée en continu tout le long du semestre. En fonction des enseignements, elle peut prendre différentes formes : examen écrit, oral, compte-rendu, rapport écrit, évaluation par les pairs…

En bref

Crédits ECTS :

Nombre d’heures : 59.0

EN 1 Clic

Annuaire

ENT

Rejoindre
les équipes

Marchés publics

Soutenir l'excellence

Fondation
INSA
Taxe
apprentissage

INSA Toulouse
135 avenue de Rangueil
31077 Toulouse cedex 4
Tél : 05 61 55 95 13
Fax : 05 61 55 95 00

Logo Communauté d'universités et établissements de Toulouse
Logo Bienvenue En France

Dans un souci d'alléger le texte et sans aucune discrimination de genre, l'emploi du genre masculin est utilisé à titre épicène.

INSA Toulouse
Résumé de la politique de confidentialité

Ce site utilise des cookies afin que nous puissions vous fournir la meilleure expérience utilisateur possible. Les informations sur les cookies sont stockées dans votre navigateur et remplissent des fonctions telles que vous reconnaître lorsque vous revenez sur notre site Web et aider notre équipe à comprendre les sections du site que vous trouvez les plus intéressantes et utiles.
En cliquant sur "Accepter", vous acceptez l'utilisation de cookies en provenance de ce site ainsi que notre politique de protection des données personnelles.