Phare Phirio  : apprendre à apprendre

Pharepuzzle Phirio

PhareDataCenter Phirio

PhareSerious Games

PrecedentSuivant
  • Formations
    • Catalogue
    • Cloud
    • Big Data
    • Applicatif
    • DataScience
    • Infrastructures
    • Accompagnement
    • Sur mesure
  • Cheat sheets & labs
    • Présentation des technologies
    • Le Laboratoire
    • Blockchain
    • Big Data
    • Liens utiles
  • Informations pratiques
    • Phirio Team
    • Prestations
    • Qualité
    • Centre de formation
    • Nos références
  • Contact
    • Plan d'accès
    • Contact post-formation
    • Recrutement
    • Demande d'informations
  1. Vous êtes ici : Accueil
  2. Formations
  3. Déroulés pédagogiques
  4. Langages
  5. C
  6. LC010

Formation : Programmation système en langage C

Durée3 jours
Code coursLC010
Inscription

Public:

Toute personne amenée à programmer, à superviser ou à modifier des logiciels écrits en langage C et liés au système d'exploitation.

Objectifs:

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.

Connaissances préalables nécessaires:

Il est demandé aux participants de bien connaître les structures et fonctions de base du langage C.

Déroulé pédagogique


Rappels
Durée : 2h30
Méthodes pédagogiques : exposé/échanges
Matériels et moyens : video-projecteur en présentiel, tableau partagé en classe virtuelle
Architecture d'un programme écrit en C. Phases de compilation.
Gestion de la mémoire
Durée : 4h30
Méthodes pédagogiques : alternance de théorie et de travaux pratiques
Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux
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.


Communications inter-processus.
Durée : 10h30
Méthodes pédagogiques : alternance de théorie et de travaux pratiques
Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux
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 oeuvre des appels systèmes shmat(), shmget().
Utilisation de sémaphores pour la gestion des accès concurrents au segment. Sockets BSD :mise en oeuvre 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
Durée : 4h
Méthodes pédagogiques : alternance de théorie et de travaux pratiques
Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux
Création de processus. Définition et mise en oeuvre 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 oeuvre des mutex. Coopération de traitements entre threads. Mise en oeuvre des conditions variables. Gestion des signaux dans un thread. Ordonnancement de threads.



Retour au descriptif
Modalités et délais d'accès
Méthodes mobilisées et modalités d'évaluation

Phirio

+33 1 55 33 52 10
info@phirio.fr
Calendrier
Code cours : LC010

Contenu de la formation
Programmation système en langage C:
  • Rappels
  • Gestion de la mémoire
  • Communications inter-processus.
  • Les processus et la parallélisation

Accès à la liste des cours



Vous pouvez bien entendu composer votre programme personnel à partir de nos descriptifs de cours


Version du document : P704
Date de mise à jour du document : 2022/08/04


quelques une de nos réalisations
  • Recrutement
  • Data Dock Data Dock
  • Qualiopi
    Qualiopi
    La certification qualité a été délivrée par Proneo Certification au titre de la catégorie d'action suivante : ACTIONS DE FORMATION.

INFORMATIONS LEGALES

  • Protection des données personnelles
  • Mentions légales et crédits
  • Condition générales d'utilisation (CGU)

INFORMATIONS PRODUITS

  • Calendrier
  • Présentations de technologies
2025 Phirio Paris