Gonzalo
Un concepto útil, particularmente en un sistema que admite varios usuarios al mismo tiempo, es el del procedimiento de reentrada. Un procedimiento de reentrada es aquel en el que varios usuarios pueden compartir una única copia del código del programa durante el mismo período de tiempo. La reentrada tiene dos aspectos clave: el código del programa no se puede modificar a sí mismo y los datos locales de cada usuario deben almacenarse por separado. Un procedimiento de reentrada al regresar al procedimiento. En un sistema compartido, la reentrada permite un uso más eficiente de la memoria principal: una copia del código del programa se mantiene en la memoria principal, pero más de una aplicación puede llamar al procedimiento. Por lo tanto, un procedimiento reentrante debe tener una parte permanente (las instrucciones que componen el procedimiento) y una parte temporal (un puntero de regreso al programa que llama así como memoria para las variables locales utilizadas por el programa).Cada instancia de ejecución, llamada activación, de un procedimiento ejecutará el código en la parte permanente pero debe tener su propia copia de variables y parámetros locales. La parte temporal asociada con una activación particular se denomina registro de activación.
La forma más conveniente de admitir procedimientos reentrantes es mediante una pila. Cuando se llama a un procedimiento reentrante, el registro de activación se convierte en parte del marco de pila que se crea en la llamada al procedimiento.