Aller au contenu principal

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.

  1. 1.Une machine qui ne ment pas
  2. 2.Le jeu d'instructions
  3. 3.Ranger et reprendre
  4. 4.Agir sur le monde
  5. 5.Masquer et filtrer
  6. 6.Décider
  7. 7.Répéter
  8. 8.Tableaux et adresses
  9. 9.La pile
  10. 10.Appeler
  11. 11.Ce que le compilateur écrit
  12. 12.Un autre alphabet
  13. 13.Processus et ordonnancement
  14. 14.La gestion de la mémoire
  15. 15.Threads et synchronisation
  16. 16.L'illusion du multitâche
  17. 17.Séparer ou partager la mémoire
  18. 18.La condition de course
  19. 19.Le verrou
  20. 20.L'interblocage
  21. 21.L'asynchrone