Sistema de tiempo de ejecución


En programación de computadoras , un sistema de ejecución , también llamado entorno de ejecución , implementa principalmente partes de un modelo de ejecución . [ aclaración necesaria ] Esto no debe confundirse con la fase del ciclo de vida en tiempo de ejecución de un programa, durante la cual el sistema en 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) utilizado para la programación , una pieza de software que proporciona al programador un entorno más conveniente para ejecutar programas. durante su producciónpruebas y similares) mientras que el segundo (RTE) sería la instancia misma de un modelo de ejecución que se aplica al programa desarrollado y que luego se ejecuta en el sistema de tiempo de ejecución mencionado anteriormente .

La mayoría de los lenguajes de programación tienen algún tipo de sistema 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 los procedimientos , la interfaz con el sistema operativo , etc. 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á alguna responsabilidad de configurar y administrar la pila y el montón , y puede incluir características comorecolección de basura , hilos u otras características dinámicas integradas en el lenguaje. [1]

Cada lenguaje de programación especifica un modelo de ejecución y muchos implementan al menos parte de ese modelo en un sistema en tiempo de ejecución. Una posible definición de comportamiento del sistema en tiempo de ejecución, entre otras, es "cualquier comportamiento que no sea directamente atribuible al programa en sí". Esta definición incluye poner parámetros en la pila antes de las llamadas a funciones, ejecución paralela de comportamientos relacionados y E / S de disco .

Según esta definición, prácticamente todos los lenguajes tienen un sistema de tiempo de ejecución, incluidos los lenguajes compilados , los lenguajes interpretados y los lenguajes específicos de dominio incrustados . Incluso los modelos de ejecución independientes invocados por API , como Pthreads ( subprocesos POSIX ), tienen un sistema de tiempo de ejecución que implementa el comportamiento del modelo de ejecución.

La mayoría de los artículos académicos sobre sistemas de ejecución se centran en los detalles de implementación de los sistemas de ejecución paralelos. Un ejemplo notable de un sistema de ejecución en paralelo es Cilk , un popular modelo de programación en paralelo. [2] El kit de herramientas proto-runtime fue creado para simplificar la creación de sistemas de ejecución paralelos. [3]

Además del comportamiento del modelo de ejecución, un sistema en tiempo de ejecución también puede realizar servicios de soporte como verificación de tipos , depuración o generación y optimización de código . [4]