|
La transformation d’un programme en processus passe par plusieurs étapes clés :
1. Compilation (ou interprétation) : Un programme écrit dans un langage de haut niveau (comme C++, Java, Python) doit être traduit en instructions compréhensibles par machine. Cela se produit de deux manières principales :
* Compilation : Le compilateur traduit l'intégralité du programme en un fichier exécutable complet (par exemple, un fichier « .exe » sous Windows ou un fichier binaire sous Linux/macOS). Cet exécutable contient du code machine spécifique à l'architecture de l'ordinateur cible.
* Interprétation : Un interpréteur traduit et exécute le programme ligne par ligne, sans créer d'exécutable séparé. C'est plus lent que la compilation mais offre plus d'indépendance vis-à-vis de la plateforme. Les langages comme Python et JavaScript sont généralement interprétés (bien que la compilation juste à temps [JIT] soit souvent utilisée pour améliorer les performances).
2. Chargement : Le chargeur du système d'exploitation est chargé de charger l'exécutable du programme en mémoire. Cela implique :
* Trouver l'exécutable : Le chargeur localise le fichier programme sur le périphérique de stockage (disque dur, SSD, etc.).
* Allocation de mémoire : Il réserve de l'espace dans la RAM de l'ordinateur pour le code, les données et la pile du programme. La pile est utilisée pour les données temporaires et les appels de fonctions. Le tas est utilisé pour la mémoire allouée dynamiquement.
* Déménagement : Le chargeur ajuste les adresses mémoire dans le programme pour refléter son emplacement réel dans la RAM.
* Lien : Si le programme utilise des bibliothèques ou des modules externes, le chargeur les lie au programme.
3. Création du bloc de contrôle de processus (PCB) : Le système d'exploitation crée un PCB, une structure de données qui contient toutes les informations nécessaires à la gestion du processus. Ces informations comprennent :
* ID de processus (PID) : Un identifiant unique pour le processus.
* Compteur de programme : Pointe vers la prochaine instruction à exécuter.
* Enregistrements CPU : Stocke les données temporaires utilisées par le processeur.
* Informations sur la gestion de la mémoire : Détails sur la mémoire allouée au processus.
* État des E/S : Informations sur les opérations d’E/S du processus.
* État : Indique si le processus est en cours d'exécution, prêt, bloqué, etc.
4. Exécution : Une fois le programme chargé et le PCB créé, le planificateur du système d'exploitation attribue le processus à un cœur de processeur. Le processeur récupère ensuite les instructions du code du programme en mémoire, les exécute et met à jour le PCB en conséquence. Le processus continue de s'exécuter jusqu'à ce qu'il soit terminé ou terminé.
En bref, un programme est un ensemble statique d’instructions, tandis qu’un processus est une instance dynamique d’un programme en exécution. Le processus possède son propre espace mémoire, ses ressources et un PCB géré par le système d'exploitation. Plusieurs processus peuvent s'exécuter simultanément (mais pas nécessairement simultanément sur un processeur monocœur).
|