Article de reference

Exécution (informatique)

En informatique et en génie logiciel, l'exécution est le processus par lequel un ordinateur ou une machine virtuelle interprète et agit sur les instructions d'un programme infor...

En informatique et en génie logiciel, l'exécution est le processus par lequel un ordinateur ou une machine virtuelle interprète et agit sur les instructions d'un programme informatique . Chaque instruction d'un programme est une description d'une action particulière qui doit être effectuée pour résoudre un problème spécifique. L'exécution consiste à suivre de manière répétée un cycle « extraction-décodage-exécution » pour chaque instruction effectuée par l' unité de contrôle . Lorsque la machine exécutante suit les instructions, des effets spécifiques sont produits conformément à la sémantique de ces instructions.

Les programmes d'un ordinateur peuvent être exécutés dans un processus par lots sans interaction humaine ou un utilisateur peut saisir des commandes dans une session interactive d'un interpréteur . Dans ce cas, les « commandes » sont simplement des instructions de programme, dont l'exécution est enchaînée.

Le terme run est utilisé presque comme synonyme. Une signification connexe de « exécuter » et « exécuter » fait référence à l'action spécifique d'un utilisateur qui démarre (ou lance ou invoque ) un programme, comme dans « Veuillez exécuter l'application ».

Processus

Avant d'être exécuté, un programme doit d'abord être écrit. Cela se fait généralement dans le code source , qui est ensuite compilé au moment de la compilation (et lié statiquement au moment de la liaison ) pour produire un exécutable. Cet exécutable est ensuite invoqué, le plus souvent par un système d'exploitation, qui charge le programme en mémoire ( temps de chargement ), effectue éventuellement une liaison dynamique , puis commence l'exécution en déplaçant le contrôle vers le point d'entrée du programme ; toutes ces étapes dépendent de l' interface binaire d'application du système d'exploitation. À ce stade, l'exécution commence et le programme entre en phase d'exécution . Le programme s'exécute ensuite jusqu'à ce qu'il se termine, soit par une terminaison normale , soit par un crash .

Exécutable

Un code exécutable , un fichier exécutable ou un programme exécutable , parfois simplement appelé exécutable ou binaire , est une liste d'instructions et de données permettant à un ordinateur « d'exécuter des tâches indiquées selon des instructions codées », par opposition à un fichier de données qui doit être interprété ( analysé ) par un programme pour avoir un sens.

L'interprétation exacte dépend de l'utilisation. Le terme « instructions » désigne traditionnellement des instructions de code machine pour un processeur physique . Dans certains contextes, un fichier contenant des instructions de script (comme du bytecode ) peut également être considéré comme exécutable.

Contexte d'exécution

Le contexte dans lequel l'exécution a lieu est crucial. Très peu de programmes s'exécutent sur une machine nue . Les programmes contiennent généralement des hypothèses implicites et explicites sur les ressources disponibles au moment de l'exécution. La plupart des programmes s'exécutent dans un système d'exploitation multitâche et des bibliothèques d'exécution spécifiques au langage source qui fournissent des services cruciaux qui ne sont pas fournis directement par l'ordinateur lui-même. Cet environnement favorable, par exemple, dissocie généralement un programme de la manipulation directe des périphériques de l'ordinateur, fournissant à la place des services plus généraux et abstraits.

Changement de contexte

Pour que les programmes et les gestionnaires d'interruptions fonctionnent sans interférence et partagent la même mémoire matérielle et l'accès au système d'E/S, dans un système d'exploitation multitâche fonctionnant sur un système numérique avec un seul CPU/MCU, il est nécessaire de disposer d'une sorte de logiciel et d'installations matérielles pour suivre les données d'un processus en cours d'exécution (adresses de page mémoire, registres, etc.) et pour les sauvegarder et les récupérer dans l'état dans lequel ils se trouvaient avant leur suspension. Ceci est réalisé par un changement de contexte. Les programmes en cours d'exécution se voient souvent attribuer un identifiant de contexte de processus (PCID).

Dans les systèmes d'exploitation basés sur Linux, un ensemble de données stockées dans des registres est généralement enregistré dans un descripteur de processus en mémoire pour implémenter la commutation de contexte. Les PCID sont également utilisés.

Durée d'exécution

Le temps d'exécution , le temps de fonctionnement ou le temps d'exécution est la phase finale du cycle de vie d'un programme informatique , au cours de laquelle le code est exécuté sur l' unité centrale de traitement (CPU) de l'ordinateur sous forme de code machine . En d'autres termes, le « temps d'exécution » est la phase d'exécution d'un programme.

Une erreur d'exécution est détectée après ou pendant l'exécution (état d'exécution) d'un programme, tandis qu'une erreur de compilation est détectée par le compilateur avant même que le programme ne soit exécuté. La vérification de type , l'allocation de registre , la génération de code et l'optimisation de code sont généralement effectuées au moment de la compilation, mais peuvent être effectuées au moment de l'exécution en fonction du langage et du compilateur particuliers. De nombreuses autres erreurs d'exécution existent et sont traitées différemment par différents langages de programmation , telles que les erreurs de division par zéro , les erreurs de domaine, les erreurs de dépassement d'indice de tableau , les erreurs de dépassement arithmétique , plusieurs types d'erreurs de dépassement et de dépassement de capacité , et de nombreuses autres erreurs d'exécution généralement considérées comme des bogues logiciels qui peuvent ou non être détectées et traitées par un langage informatique particulier.

Détails de mise en œuvre

Lorsqu'un programme doit être exécuté, un chargeur effectue d'abord la configuration de la mémoire nécessaire et lie le programme à toutes les bibliothèques liées dynamiquement dont il a besoin, puis l'exécution commence à partir du point d'entrée du programme . Dans certains cas, un langage ou une implémentation confiera ces tâches à l'environnement d'exécution du langage, bien que cela soit inhabituel dans les langages courants sur les systèmes d'exploitation grand public courants.

Certaines opérations de débogage de programme ne peuvent être effectuées (ou sont plus efficaces ou plus précises) qu'au moment de l'exécution. Les erreurs logiques et la vérification des limites de tableau en sont des exemples. Pour cette raison, certains bogues de programmation ne sont pas découverts tant que le programme n'est pas testé dans un environnement de production avec des données réelles, malgré des vérifications sophistiquées au moment de la compilation et des tests préalables à la publication. Dans ce cas, l'utilisateur final peut rencontrer un message d'erreur d'exécution.

Erreurs d'application (exceptions)

La gestion des exceptions est une fonctionnalité de langage conçue pour gérer les erreurs d'exécution, en fournissant une méthode structurée pour détecter des situations totalement inattendues ainsi que des erreurs prévisibles ou des résultats inhabituels sans la quantité de vérification d'erreurs en ligne requise par les langages qui n'en ont pas. Les avancées les plus récentes dans les moteurs d'exécution permettent une gestion automatisée des exceptions qui fournit des informations de débogage sur la « cause première » de chaque exception concernée et est implémentée indépendamment du code source, en attachant un produit logiciel spécial au moteur d'exécution.

Système d'exécution

Un système d'exécution , également appelé environnement d'exécution , implémente principalement des parties d'un modèle d'exécution . Cela ne doit pas être confondu avec la phase du cycle de vie d'exécution d'un programme, pendant laquelle le système d'exécution est en fonctionnement. Lorsque l'on considère le système d'exécution comme distinct de l' environnement d'exécution (RTE), le premier peut être défini comme une partie spécifique du logiciel d'application (IDE) utilisé pour la programmation , un morceau de logiciel qui fournit au programmeur un environnement plus pratique pour exécuter des programmes pendant leur production ( tests et similaires), tandis que le second (RTE) serait l' instance même d'un modèle d'exécution appliqué au programme développé qui est lui-même ensuite exécuté dans le système d'exécution susmentionné .

La plupart des langages de programmation disposent d'un système d'exécution qui fournit un environnement dans lequel les programmes s'exécutent. Cet environnement peut traiter un certain nombre de problèmes, notamment la gestion de la mémoire de l'application , la manière dont le programme accède aux variables , les mécanismes de transmission de paramètres entre les procédures , l'interface avec le système d'exploitation , etc. Le compilateur émet des hypothèses en fonction du système d'exécution spécifique pour générer un code correct. En règle générale, le système d'exécution aura une certaine responsabilité dans la configuration et la gestion de la pile et du tas , et peut inclure des fonctionnalités telles que la récupération de place , les threads ou d'autres fonctionnalités dynamiques intégrées au langage.

Cycle d'instruction

Le cycle d'instruction (également appelé cycle d'extraction-décodage-exécution ou simplement cycle d'extraction-exécution ) est le cycle que suit l' unité centrale de traitement (CPU) depuis le démarrage jusqu'à l'arrêt de l'ordinateur afin de traiter les instructions. Il est composé de trois étapes principales : l'étape d'extraction, l'étape de décodage et l'étape d'exécution.

Il s'agit d'un diagramme simple illustrant les différentes étapes du cycle de récupération-décodage-exécution.

Dans les processeurs plus simples, le cycle d'instructions est exécuté de manière séquentielle, chaque instruction étant traitée avant que la suivante ne soit lancée. Dans la plupart des processeurs modernes, les cycles d'instructions sont plutôt exécutés simultanément , et souvent en parallèle , via un pipeline d'instructions : l'instruction suivante commence à être traitée avant que l'instruction précédente ne soit terminée, ce qui est possible car le cycle est divisé en étapes distinctes.

Interprète

Un système qui exécute un programme est appelé interprète de programme. En gros, un interprète exécute directement un programme. Cela contraste avec un traducteur de langue qui convertit un programme d'une langue à une autre avant de l'exécuter.

Machine virtuelle

Une machine virtuelle ( VM ) est la virtualisation / émulation d'un système informatique . Les machines virtuelles sont basées sur des architectures informatiques et fournissent les fonctionnalités d'un ordinateur physique. Leurs implémentations peuvent impliquer du matériel spécialisé, des logiciels ou une combinaison des deux.

Les machines virtuelles diffèrent et sont organisées en fonction de leur fonction, comme indiqué ici :

Certains émulateurs de machines virtuelles, tels que QEMU et les émulateurs de consoles de jeux vidéo , sont également conçus pour émuler (ou « imiter virtuellement ») différentes architectures système, permettant ainsi l'exécution d'applications logicielles et de systèmes d'exploitation écrits pour un autre processeur ou une autre architecture. La virtualisation au niveau du système d'exploitation permet de partitionner les ressources d'un ordinateur via le noyau . Les termes ne sont pas universellement interchangeables.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index