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ésentiel

Duré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

Pour qui
  • 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
Prérequis
  • 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

Équipe pédagogique

Professionnel expert technique et pédagogique.