¿Qué es un registro de pila?

June 26

En relación a las computadoras, un registro de pila es una posición de la memoria - por lo general en la unidad central de procesamiento (CPU) o hardware de procesamiento relacionadas - que contiene la dirección actual de la parte superior de una región de la memoria del ordenador independiente conocida como la pila. El registro de pila es importante porque, sin ella, un ordenador tendría que aplicar un método más lento, más propenso a errores de rastrear el flujo de ejecución de un programa. En la mayoría de las arquitecturas del sistema, el registro de pila es un registro dedicado por lo que no entra accidentalmente cuando se trabaja con otros registros de memoria. Más raramente, un registro de pila puede ser un registro general que por lo general es accesible por un programa, pero que, intencionadamente, no se utiliza porque su uso se define por el fabricante. Cuando un sistema de ordenador contiene dos o más registros de pila, lo que significa que es potencialmente más de una pila, la arquitectura se conoce como una máquina de pila.

En el nivel más bajo de la programación de ordenadores, una pila es un área de memoria - por lo general en la memoria de acceso aleatorio (RAM) - que tiene un tipo bien definido de comportamiento. La pila puede tener información añadido a la misma en un proceso llamado de empuje, o puede tener información recuperada de ella, que se llama de estallido. El modelo de una pila es primero en entrar, último en salir, lo que significa que si varias piezas de información se ven empujados a la pila, entonces el primer elemento empujado será el último en ser hecho estallar hacia fuera, mientras que el último elemento empujado en la voluntad ser el primero en ser recuperado con un comando pop. Un registro de pila sigue la pista de la parte superior de la pila, que es siempre el último elemento empujado en ella.

Cuando un programa de ordenador se está ejecutando, cada instrucción que está siendo ejecutado tiene una dirección específica de la memoria donde se almacena temporalmente para la duración del programa. Si un programa llama a una subrutina - o de un procedimiento, función o método, dependiendo del lenguaje de programación - a continuación, el programa debe saltar a la dirección de memoria del código de subrutina para ejecutarlo. La dirección donde el flujo de control del programa rompe en rama a la subrutina se inserta en la pila por lo que se acordó. Cuando la subrutina ha completado su ejecución, el programa sabe a donde debe volver en el código principal haciendo estallar la dirección de código de la parte superior de la pila, donde el registro de pila está apuntando.

Aunque hay otros métodos que pueden ser utilizados para lograr los mismos resultados, utilizando una pila y la pila registro permite un importante concepto de programación conocido como recursión. Una función recursiva es una función que, dentro de su propio código, llama a sí mismo. Este proceso se utiliza comúnmente en algoritmos de clasificación y para ciertas funciones matemáticas. El registro de pila es hacer el seguimiento de todas las últimas direcciones cuando la ejecución se está expandiendo, por lo que una función se puede aplicar la recursividad con el conocimiento de que, con el tiempo, el control volverá al punto de origen de manera segura. Una complicación ocurre si toda la pila se llena y no hay espacio en la memoria sigue siendo, en cuyo caso se produce un desbordamiento de pila, dejando la ejecución del programa.

  • Un registro de pila es una ubicación de memoria, generalmente en la CPU, que contiene la dirección actual de la pila.