Ejecución (informática)

Compartir Imprimir Citar

La ejecución en ingeniería informática y de software es el proceso mediante el cual una computadora o máquina virtual lee y actúa según las instrucciones de un programa informático. Cada instrucción de un programa es una descripción de una acción particular que debe llevarse a cabo para resolver un problema específico. La ejecución implica seguir repetidamente un ciclo 'buscar-decodificar-ejecutar' para cada instrucción realizada por la unidad de control. A medida que la máquina ejecutora sigue las instrucciones, se producen efectos específicos de acuerdo con la semántica de esas instrucciones.

Los programas para una computadora pueden ejecutarse en un proceso por lotes sin interacción humana o un usuario puede escribir comandos en una sesión interactiva de un intérprete. En este caso, los "comandos" son simplemente instrucciones de programa, cuya ejecución está encadenada.

El término correr se usa casi como sinónimo. Un significado relacionado tanto de "ejecutar" como de "ejecutar" se refiere a la acción específica de un usuario que inicia (o inicia o invoca ) un programa, como en "Ejecute la aplicación".

Proceso

Antes de la ejecución, primero se debe escribir un programa. Esto generalmente se hace en el código fuente, que luego se compila en el momento de la compilación (y se vincula estáticamente en el momento del vínculo) para producir un ejecutable. Luego, este ejecutable es invocado, con mayor frecuencia por un sistema operativo, que carga el programa en la memoria (tiempo de carga), posiblemente realiza un enlace dinámico y luego comienza la ejecución moviendo el control al punto de entrada del programa; todos estos pasos dependen de la interfaz binaria de la aplicación del sistema operativo. En este punto comienza la ejecución y el programa entra en tiempo de ejecución. Luego, el programa se ejecuta hasta que finaliza, ya sea una terminación normal o un bloqueo.

Ejecutable

El código ejecutable, un archivo ejecutable o un programa ejecutable, a veces denominado simplemente ejecutable o binario, es una lista de instrucciones y datos para hacer que una computadora "realice las tareas indicadas de acuerdo con instrucciones codificadas", a diferencia de un archivo de datos. que debe ser interpretado (analizado) por un programa para ser significativo.

La interpretación exacta depende del uso. "Instrucciones" se entiende tradicionalmente como instrucciones de código de máquina para una CPU física. En algunos contextos, un archivo que contiene instrucciones de secuencias de comandos (como un código de bytes) también puede considerarse ejecutable.

Contexto de ejecución

El contexto en el que tiene lugar la ejecución es crucial. Muy pocos programas se ejecutan en una máquina desnuda. Los programas suelen contener supuestos implícitos y explícitos sobre los recursos disponibles en el momento de la ejecución. La mayoría de los programas se ejecutan dentro del sistema operativo multitarea y las bibliotecas de tiempo de ejecución específicas del idioma de origen que brindan servicios cruciales que no proporciona directamente la computadora en sí. Este entorno de apoyo, por ejemplo, generalmente desvincula un programa de la manipulación directa de los periféricos de la computadora, proporcionando en su lugar servicios más generales y abstractos.

Cambio de contexto

Para que los programas y los controladores de interrupciones funcionen sin interferencias y compartan la misma memoria de hardware y acceso al sistema de E/S, en un sistema operativo multitarea que se ejecuta en un sistema digital con una sola CPU/MCU, se requiere tener algún tipo de Instalaciones de software y hardware para realizar un seguimiento de los datos de los procesos en ejecución (direcciones de páginas de memoria, registros, etc.) y para guardarlos y recuperarlos al estado en el que se encontraban antes de que fueran suspendidos. Esto se logra mediante un cambio de contexto. A los programas en ejecución a menudo se les asigna un identificador de contexto de proceso (PCID).

En los sistemas operativos basados ​​en Linux, un conjunto de datos almacenados en registros generalmente se guarda en un descriptor de proceso en la memoria para implementar el cambio de contexto. También se utilizan PCID.

Sistema de tiempo de ejecución

Un sistema de tiempo de ejecución, también llamado entorno de tiempo de ejecución, implementa principalmente partes de un modelo de ejecución. Esto no debe confundirse con la fase del ciclo de vida del tiempo de ejecución de un programa, durante la cual el sistema de tiempo de ejecución está en funcionamiento. Al tratar el sistema de tiempo de ejecución como distinto del entorno de tiempo de ejecución (RTE), el primero puede definirse como una parte específica del software de aplicación (IDE) que se utiliza para la programación, una pieza de software que proporciona al programador un entorno más conveniente para ejecutar programas. durante su producción (testing y similares), mientras que la segunda (RTE) sería la instancia misma de un modelo de ejecución que se aplica al programa desarrollado y luego se ejecuta en dicho programa.sistema de tiempo de ejecución.

La mayoría de los lenguajes de programación tienen algún tipo de sistema de tiempo de ejecución que proporciona un entorno en el que se ejecutan los programas. Este entorno puede abordar una serie de problemas, incluida la gestión de la memoria de la aplicación, cómo el programa accede a las variables, los mecanismos para pasar parámetros entre procedimientos, la interfaz con el sistema operativo y otros. El compilador hace suposiciones según el sistema de tiempo de ejecución específico para generar el código correcto. Por lo general, el sistema de tiempo de ejecución tendrá cierta responsabilidad en la configuración y administración de la pila y el montón, y puede incluir funciones como recolección de elementos no utilizados, subprocesos u otras funciones dinámicas integradas en el lenguaje.

Ciclo de instrucción

El ciclo de instrucciones (también conocido como ciclo de búsqueda, decodificación y ejecución, o simplemente ciclo de búsqueda y ejecución) es el ciclo que sigue la unidad central de procesamiento (CPU) desde el arranque hasta que la computadora se apaga para procesar las instrucciones.. Se compone de tres etapas principales: la etapa de obtención, la etapa de decodificación y la etapa de ejecución.

En las CPU más simples, el ciclo de instrucción se ejecuta secuencialmente, y cada instrucción se procesa antes de que se inicie la siguiente. En la mayoría de las CPU modernas, los ciclos de instrucciones se ejecutan simultáneamente y, a menudo, en paralelo, a través de un canal de instrucciones: la siguiente instrucción comienza a procesarse antes de que finalice la instrucción anterior, lo que es posible porque el ciclo se divide en pasos separados.

Interprete

Un sistema que ejecuta un programa se llama intérprete del programa. En términos generales, un intérprete ejecuta directamente un programa. Esto contrasta con un traductor de idiomas que convierte un programa de un idioma a otro antes de ejecutarlo.

Máquina virtual

Una máquina virtual (VM) es la virtualización/emulación de un sistema informático. Las máquinas virtuales se basan en arquitecturas informáticas y proporcionan la funcionalidad de una computadora física. Sus implementaciones pueden involucrar hardware especializado, software o una combinación.

Las máquinas virtuales difieren y están organizadas por su función, como se muestra aquí:

Algunos emuladores de máquinas virtuales, como QEMU y emuladores de consolas de videojuegos, están diseñados para emular también (o "imitar virtualmente") diferentes arquitecturas de sistemas, lo que permite la ejecución de aplicaciones de software y sistemas operativos escritos para otra CPU o arquitectura. La virtualización a nivel del sistema operativo permite particionar los recursos de una computadora a través del kernel. Los términos no son universalmente intercambiables.