Formations au coeur des technologies
Essayer, tester, échanger les bonnes pratiques, partager les retours d'expériences, ...
toutes nos formations sont disponibles à distance (classes virtuelles) et en centre de formation (présentiel), au choix.
Vous pouvez même changer de modalité en cours de formation, si vous avez des contraintes : par exemple, commencer en présentiel et continuer les jours suivants à distance.
Les outils pédagogiques et l'infrastructure de travaux pratiques mis à disposition sont accessibles depuis nos locaux, ou depuis votre entreprise ou votre lieu de télétravail, à volonté
N'hésitez pas à tester nos formations et nos serious games !
Programmation système en langage C
DATES:
DATES:
CODE:LC010
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.
Préalables
Il est demandé aux participants de bien connaître les structures et fonctions de base du langage C.
Programme
Rappels
Architecture d'un programme écrit en C; fonctions de base. Variables.
Phases de compilation.
Rappels sur les systèmes d'exploitation des ordinateurs.
Variables
Structures, unions, tableaux. Pointeurs.
Fonctions
Rappels sur les pointeurs de fonctions.
Applications à la structure des fichiers.
Mémoire
Les fonctions d'allocation et les appels systèmes: sbrk, malloc, realloc. Ecriture d'un allocateur de mémoire.
Communications
Signaux et interruptions. Sémaphores et appels concurrents. Segments de mémoires partagées.
Mécanismes de communications
IPC
shm/sem/msg
BSD socket
Parallélisation
Création de processus
fork(),clone(),setsid().
Threads. NPTL. Création, destruction. Synchronisation entre threads, détachement. Attributs. Gestion de la pile.
Mutex. Conditions variables. Signaux, interruptions.
Ordonnancement.
Systèmes
Organisation. Gestion de processus.
Pilotes de périphériques.
Application au système Unix