Bonjour à tous et à toutes.
Je me pose une question :
Le fichier binaire produit par le compilateur est il modifié avant qu'il arrive au microprocesseur qui exécutera instruction par instruction?
Je m'explique : Prenons l'exemple d'un langage (le c++) dont le compilateur produira le fichier en langage machine. Mais, rappelons nous qu'avant l'exécution du programme, le compilateur informe l'OS de la quantité de mémoire dont il a besoin...En plus l'OS prépare des zones mémoire pour le déroulement de l'exécution (code, données, pile et pourquoi pas le tas). Tout ce monde doit pouvoir préparer le terrain pour le processus qui va s'exécuter. Donc, pour moi, le microprocesseur doit recevoir des ordres binaires permettant par exemple de gérer les variables globales ou locales dans des zones mémoire spécifiques, ou encore réserver une zone au cas ou le programme a besoin de mémoire dynamique,....ect. Mais comme le processeur exécute un seul fichier binaire et instruction par instruction, cela me laisse à penser que tous les ordres pour la gestion citée sont tenus en compte dans ce même fichier; et comme la gestion du processus est accompli par l'OS alors le fichier binaire exécutable chargé en mémoire est modifié par l'OS. Cela me dérange par ce que je sais qu'il n'est pas modifié!. Alors je reviens vers vous pour éclaircissement.
Partager