Architecture et système
De l'instruction au processus : ce que fait vraiment un processeur, ce que le système d'exploitation ajoute par-dessus, et ce qui casse quand plusieurs traitements se croisent.
L'assembleur est le seul langage qui ne ment pas. Là où un appel de fonction cache la pile, où un tableau cache un calcul d'adresse et où une addition cache un débordement, la machine, elle, dit ce qu'elle fait. Les douze premiers chapitres l'exécutent une instruction par clic, en RISC-V, et la figure montre le registre qui vient de changer, la case mémoire touchée et le compteur ordinal. Les trois suivants montent d'un étage et décrivent ce que le système d'exploitation ajoute : le processus, l'ordonnancement, la mémoire allouée et les fils d'exécution. Les six derniers partent de là pour aller où cela fait le plus de dégâts : une ligne de code est plusieurs instructions, rien ne les oblige à rester collées, et deux traitements simultanés donnent alors un résultat faux. Ni le C ni aucun langage système ne sont requis, et la dernière partie lit du Python sans demander de savoir en écrire. Ce parcours traite le comportement de la machine, et non ses performances : le cache et le pipeline n'y sont pas.
Parcours pas encore commencé.
- 1.Une machine qui ne ment pas
- 2.Le jeu d'instructions
- 3.Ranger et reprendre
- 4.Agir sur le monde
- 5.Masquer et filtrer
- 6.Décider
- 7.Répéter
- 8.Tableaux et adresses
- 9.La pile
- 10.Appeler
- 11.Ce que le compilateur écrit
- 12.Un autre alphabet
- 13.Processus et ordonnancement
- 14.La gestion de la mémoire
- 15.Threads et synchronisation
- 16.L'illusion du multitâche
- 17.Séparer ou partager la mémoire
- 18.La condition de course
- 19.Le verrou
- 20.L'interblocage
- 21.L'asynchrone