Unix/Linux - Programmation Avancée (2-023)
Lot 2 - Systèmes d'exploitation et support – Systèmes Linux / Unix – Référence 2-023
Formation créée le 11/12/2024. Dernière mise à jour le 10/03/2026.Version du programme : 1
Type de formation
PrésentielDurée de formation
24 heures (4 jours)Unix/Linux - Programmation Avancée (2-023)
Lot 2 - Systèmes d'exploitation et support – Systèmes Linux / Unix – Référence 2-023
Objectif général de la formation : À l’issue de la formation, les participants seront capables de développer des programmes avancés sous Unix/Linux en maîtrisant la gestion des processus, la communication inter-processus, la gestion mémoire, les signaux, la communication réseau, ainsi que les entrées/sorties. Compétences visées : - Gérer et synchroniser les processus et threads sous Unix/Linux - Mettre en œuvre des mécanismes de communication inter-processus (IPC) - Manipuler efficacement la mémoire (allocation, libération, gestion avancée) - Utiliser les signaux pour la gestion des événements et la communication réseau - Optimiser les entrées/sorties dans les programmes Unix/Linux Niveau SAME visé : Maîtrise Modalité : Toutes les modalités (présentiel, classe virtuelle et hybride) sont possibles Lieu possible de réalisation : Locaux du bénéficiaire ou locaux d’Ascent Formation, en France métropolitaine et dans les DROM-COM Nombre maximal de participants : 20
Objectifs de la formation
- Gérer des processus et des threads pour des applications multitâches
- Implémenter des mécanismes de communication inter-processus (tubes, sockets)
- Gérer la mémoire dynamique pour des applications optimisées
- Utiliser les signaux pour interagir avec les processus et gérer les événements système
- Maîtriser les mécanismes d’entrée/sortie pour des applications performantes
Profil des bénéficiaires
- Développeurs logiciels expérimentés sous Unix/Linux
- Administrateurs système souhaitant développer des scripts ou programmes avancés
- Ingénieurs en systèmes embarqués ou en développement logiciel
- Bonne maîtrise des bases de la programmation shell et des systèmes Unix/Linux
- Connaissances en C ou tout autre langage de programmation compatible avec Unix/Linux
Contenu de la formation
Processus et multitâche (3 heures)
- Création et gestion des processus avec fork() et exec()
- Synchronisation des processus avec wait() et waitpid()
- Travaux pratiques : Écrire un programme multiprocessus simple avec fork()
Introduction aux threads (3 heures)
- Différences entre processus et threads
- Création, gestion et synchronisation des threads avec la bibliothèque POSIX (pthread)
- Travaux pratiques : Implémenter un programme multithread pour une tâche concurrente
Mécanismes IPC sous Unix/Linux (3 heures)
- Utilisation des tubes nommés et anonymes
- Communication avec les files de messages et les mémoires partagées
- Travaux pratiques : Implémenter une communication simple entre deux processus avec des tubes
Communication réseau et sockets (3 heures)
- Introduction aux sockets (TCP/UDP)
- Création d’un serveur et d’un client simples en utilisant des sockets
- Travaux pratiques : Développer une application client-serveur en TCP
Gestion de la mémoire (3 heures)
- Allocation et libération mémoire : malloc(), calloc(), realloc(), free()
- Manipulation des segments mémoire partagée
- Travaux pratiques : Écrire un programme optimisé pour gérer des données volumineuses en mémoire
Gestion des signaux (3 heures)
- Utilisation des signaux pour la gestion des événements : signal(), sigaction()
- Création et manipulation des signaux personnalisés
- Travaux pratiques : Implémenter un gestionnaire de signaux pour une application multitâche
Optimisation des entrées/sorties (3 heures)
- Lecture et écriture de fichiers avec les fonctions bas niveau : read(), write(), open(), close()
- Bufférisation et optimisation des flux d’E/S
- Travaux pratiques : Écrire un programme pour lire, traiter et écrire des données volumineuses
Projet pratique (3 heures)
- Développement d’un programme complet intégrant :
- Gestion des processus et des threads
- Communication entre processus et gestion mémoire
- Entrées/sorties et optimisation des performances