17. Résultats d'apprentissage
Après étude, il faut pouvoir :
- distinguer programme, processus, PCB et espace d'adressage;
- expliquer code, données, tas, pile et protection entre processus;
- reconstruire les transitions nouveau, prêt, actif, bloqué et terminé;
- décrire un changement de contexte et sa surcharge;
- expliquer les trois résultats de
forket distinguer la variable de retour degetpid(); - suivre une trace père/fils sans supposer l'ordre d'exécution;
- expliquer pourquoi
execremplace le programme sans créer un PID; - utiliser
waitouwaitpidpour une dépendance et la récolte des fils; - expliquer la copie sur écriture sans la confondre avec une mémoire partagée;
- distinguer zombie et orphelin;
- comparer
fork/execàCreateProcess; - décrire l'entrée dans une interruption, la sauvegarde du contexte et le retour;
- expliquer pourquoi une interruption n'implique pas toujours une bascule de processus;
- distinguer système coopératif et préemptif;
- distinguer temps CPU et temps réel;
- décrire un appel système depuis la bibliothèque jusqu'au service noyau;
- interpréter
INT 0x80comme un exemple historique i386; - distinguer processus et thread, puis concurrence et parallélisme;
- employer chemins, permissions, motifs et documentation de Bash;
- construire un pipeline et choisir entre
;,&&,||,|,>,>>,<et2>&1; - exploiter
grep,uniq,sed,awk,find,du,sort,headetxargs; - écrire un script avec arguments, variables, substitutions, conditions, boucles et fonctions;
- gérer un processus d'arrière-plan avec
$!,killettrap; - préparer le TP1 et justifier personnellement les commandes et programmes remis.