1. Fil directeur
La semaine 03 relie les trois niveaux nécessaires pour comprendre l'exécution d'un système moderne.
- Abstraction logicielle : un programme devient un processus possédant un espace d'adressage, un état et des ressources.
- Gestion par le noyau : le PCB, les files d'attente et l'ordonnanceur permettent d'interrompre, de reprendre et de terminer les processus.
- Support matériel : les interruptions, les niveaux de privilège et la sauvegarde des registres donnent au noyau un moyen sûr de reprendre le CPU.
Le parcours commence avec le modèle Unix fork–exec–wait, suit une exécution père/fils instruction par instruction, puis explique pourquoi l'ordre observé ne peut pas être généralisé. La copie sur écriture montre comment préserver l'isolation sans dupliquer inutilement toute la mémoire. Les mécanismes de terminaison conduisent aux zombies et aux orphelins.
La seconde moitié explique comment le processeur quitte temporairement un programme pour exécuter du code noyau. Une interruption doit préserver le contexte complet; une interruption d'horloge rend possible la préemption; un appel système réutilise une transition contrôlée pour fournir un service privilégié. Le cours 05 amorce ensuite les threads, qui conservent plusieurs contextes CPU tout en partageant l'espace mémoire d'un même processus.
Le laboratoire 02 rend ce cadre opérationnel. Bash compose de petits programmes avec des flux textuels, des codes de sortie, des tubes et des redirections. Les derniers exercices manipulent réellement des processus : lancement en arrière-plan, PID avec $!, terminaison avec kill, nettoyage avec trap et validation d'un serveur par son code de retour.