Sistemas operativos – Control de procedimientos (PILA)

Una técnica habitual para controlar la ejecución de llamadas a procedimientos y los retornos de éstos, es utilizar una pila. Una pila es un conjunto ordenado de elementos, de forma que en cada momento sólo se puede acceder a uno de ellos, que correspondería al último elemento añadido (imaginemos una pila de libros). El punto de acceso a la pila se denomina cima. El número de elementos en la pila, o la longitud, puede ser variable. Una pila no es más que una lista de apilamiento donde el último elemento que llega a ella es el primero que sale (Last-In First-Out o LIFO).

La implementación de una pila requiere que haya un conjunto de posiciones de memoria contiguas dedicado a almacenar los elementos de la pila. La mayoría de las veces el bloque está parcialmente lleno con los elementos de la pila y el resto está disponible para el crecimiento de la pila. Para que una pila funcione de forma óptima, se necesitan tres direcciones de memoria diferentes, que se almacenaran en registros del procesador y en el BCP correspondiente al proceso:

  • Puntero de pila: Contiene la dirección de la cima de la pila. Si se añade un elemento, o se extrae, el puntero se incrementa o decrementa para contener la dirección de la nueva cima.
  • Base de pila: Contiene la dirección de memoria inferior en el bloque de memoria reservado. Se trata de la primera posición que se utiliza cuando se añade un elemento a una pila vacía. Si se hace un intento de extraer un elemento de una pila vacía, se informa de un error.
  • Límite de pila: Contiene la dirección del otro extremo o cima, del bloque reservado. Si se hace un intento de apilar un elemento cuando la pila está llena, se informa de un error.

stack1

Una técnica habitual para gestionar las llamadas y los retornos es usar una pila. Cuando el procesador ejecuta una llamada se almacena (apila) la dirección de retorno en la pila del proceso llamados (siguiente instrucción a ejecutar en el regreso). Cuando se ejecuta un retorno, se utiliza la dirección de la cima de la pila y se elimina (extrae) esa dirección de la pila. Con frecuencia, es necesario pasar parámetros en una llamada a un procedimiento. Una posibilidad es almacenar los parámetros en la memoria justo después de las instrucciones de llamada, no sólo se apila la dirección de retorno, sino también los parámetros que se desean pasar al procedimiento llamado. El procedimiento invocado puede llamar a los parámetros de la pila. Los parámetros de retorno se pueden almacenar también en la pila, debajo de la dirección de retorno. El conjunto completo de parámetros, incluyendo la dirección de retorno, se denomina marco de pila.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

11 − ocho =