La formation Programmation système en langage C vous permet de compléter des connaissances en langage C par une formation approfondie sur les mécanismes d'accès au système d'exploitation. L'accent sera particulièrement mis sur les fichiers, pointeurs, allocations de mémoire, communications et les librairies systèmes.
Programmation système en langage C (LC010)
Programmation système en langage C
À la suite de la formation, vous serez capable de compléter des connaissances en langage C par une formation approfondie sur les mécanismes d'accès au système d'exploitation. L'accent sera particulièrement sur les fichiers, pointeurs, allocations de mémoire, communications et les librairies systèmes.
Rappels
- Architecture d'un programme écrit en C. Phases de compilation.
Gestion de la mémoire
- Rappel sur l'organisation de la mémoire. L'adressage par les pointeurs. Les opérateurs & et * .
- Les pointeurs et les arguments de fonctions. Les calculs d'adresses. Les fonctions d'allocation malloc et free,et les appels systèmes: sbrk, realloc.
- Atelier : écriture d'un allocateur de mémoire..
Communication inter-process
- Les différentes méthodes : pipes, fifo, signaux, files de messages. Signaux et interruptions : les principaux signaux.
- Atelier : émission d'un signal avec kill(), réception du signal par signal(). Sémaphores et appels concurrents :principe de fonctionnement des sémaphores.
- Atelier : mise en oeuvre avec semget, semctl, semop. Segments de mémoires partagées :définitions de constantes et structures,
- Atelier : création d'un segment de mémoire partagée avec shmget,
- Attachement, détachement d'un segment avec shmat, shmdt.
- Files de messages :constantes et structures nécessaires pour la manipulation des files de messages.
- Atelier : mise en oeuvre de la primitive msgget(),gestion des files de messages (consultation, modification, suppression) avec msgctl()
- Envoi d'un message à une file : msgsend(). Segments partagés :définition d'un segment de mémoire partagé. Description et mise en œuvre des appels systèmes shmat(), shmget().
- Utilisation de sémaphores pour la gestion des accès concurrents au segment. Sockets BSD : mise en œuvre des prises réseaux pour la communication inter-processus.
- Exemple avec des liens locaux. Extension aux liens distants. Communications inter-machines.
Les processus et la parallélisation
- Création de processus.
- Définition et mise en œuvre des primitives fork(), clone(), setsid().
- Limites d'utilisation. Introduction aux threads.
- Les threads. La norme et les implémentations.
- L'implémentation Posix : NPTL.
- Cycle de vie des threads: création, destruction.
- Synchronisation entre threads, détachement du processus principal, attente de fin d'exécution.
- Attributs des threads.
- Gestion de la mémoire consommée, gestion de la pile de données.
- Gestion des accès concurrents, principe de l'exclusion mutuelle.
- Atelier : mise en œuvre des mutex. Coopération de traitements entre threads. Mise en œuvre des conditions variables. Gestion des signaux dans un thread. Ordonnancement de threads.
À qui s’adresse cette formation ?
Toute personne amenée à programmer, à superviser ou à modifier des logiciels écrits en langage C et liés au système d'exploitation.
Quels sont les prérequis ?
Il est demandé aux participants de connaître les structures et fonctions de base du langage C.
Méthodes pédagogiques
- Apports théoriques suivis d’applications
- Travaux pratiques réalisés
Méthodes d'évaluations
- QCM d'évaluation des acquis
- À l’issue de cette formation, un certificat ESIEE-IT vous sera délivré.
Pour vous inscrire, envoyez un mail à formationcontinue@esiee-it.fr (réponses sous 48heures).
Informations complémentaires
Prochaines sessions :
- En intra seulement
- Horaires : 9h00 à 17h30
- Taux de réussite : nouvelle formation
- 100% à distance (D) ou en présentiel (P)
- Si vous êtes en situation de handicap, retrouvez toutes les informations utiles ICI