Le carnet On est
Matière · ING2 GIA · Semestre 2

Programmation système & réseau

Six cours pour traverser les appels système Unix, les signaux et sémaphores, les tubes (anonymes + nommés), les threads POSIX, les sockets TCP/UDP et les files de messages.

~ 4 h de lecture cumulée 6 cours + compagnons 4 annales
📌 Indications du prof
Tout le programme est à connaître. L'examen ressemblera à celui de l'année dernière — voir la session normale 2024-2025. Composition 50% TP.

i. Les six cours

Chaque cours a son encre signature. Clique pour entrer.

ii. Annales

4 examens des années précédentes avec PDF intégré et correction commentée.

iii. Pages compagnons

🔮 Prédiction d'examen

Modalité : 50 % partiel écrit + 50 % TP (TP déjà acquis). Annonce du prof confirmée par l'audit : 90 % de stabilité 2022 → 2024.

Structure confirmée — 4 annales analysées 4 exercices × 5 pts = 20 pts en 2 heures. Topics invariants présents 4/4 ans : processus (fork/exec), signaux, tubes, sockets TCP.

Variante à anticiper :
  • Examen général (rattrapage) : 4 exos pratiques pures, distribution 6-4-4-6, 100 % code C
  • Session normale : 1 bloc questions de cours (5 pts) + 3 exos pratiques
Sockets TCP multi-clients = 100 % de probabilité Présent dans 4/4 annales. Maîtriser le scénario serveur acceptant plusieurs clients (boucle accept() + fork() ou pthread) est non-négociable.
CoursForme probableJustification
Cours 1 — Introduction (processus, fork, exec) Question de cours + petit code à écrire Concepts fondateurs : différence processus/thread, séquence fork() → exec(). Une question courte attendue + un mini-exo qui trace les processus issus de fork().
Cours 2 — Signaux & sémaphores Code à écrire (gestionnaire de signal) + schéma (interblocage / producteur-consommateur) Interruptions asynchrones (SIGINT, SIGUSR1/2), handlers via signal()/sigaction(), primitives P()/V() POSIX. Format type : « écris un handler qui réagit à SIGUSR1 » ou « identifie l'interblocage / écris le code thread-safe avec sémaphore ». Confirmé dans les 4 annales.
Cours 3 — Tubes (pipes) Code à écrire (pipe + fork) ou à analyser Sketch classique : père-fils communiquant via pipe(), ou redirection dup2(). Souvent demandé en complément du Cours 1 (fork).
Cours 4 — Threads (pthread) Code à analyser (race condition) Le format « voici un code, trouvez le bug de concurrence » est classique. Souvent enchaîné avec le Cours 2 (correction via mutex / sémaphore).
Cours 5 — Sockets TCP / UDP Code à écrire (serveur ou client TCP) — multi-clients Exo signature du module : reproduire la séquence socket() → bind() → listen() → accept() → recv() côté serveur, ou socket() → connect() → send() côté client. Le format multi-clients (fork() ou pthread après accept()) est présent dans les annales 2024-2025. Confirmé 4/4 annales.
Cours 6 — Files de messages Question de cours ou sous-question IPC Système V (msgget, msgsnd, msgrcv) et POSIX temps réel. Chapitre plus marginal — apparaît en sous-question. À ne pas négliger pour les 1-2 points faciles.
Répartition prévisible des points (~20)
  • 5-7 pts · Sockets (Cours 5) — exo de programmation principal multi-clients
  • 3-5 pts · Fork / pipes (Cours 1 + 3) — trace ou code court
  • 3-5 pts · Threads + signaux/sémaphores (Cours 4 + 2) — analyse + correction
  • 2-4 pts · Questions de cours transversales (sémantique IPC, files de messages)

💡 Stratégie : refaire les 4 annales (2022-2023 × 2 + 2024-2025 × 2). Les sujets se répètent fortement — quasi-prévisible.