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.

Anuncios
Publicado en Sistemas operativos, Varios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Sobre mi…

Soy Técnico en Explotación de Sistemas Informáticos y Técnico Superior en Administración de Sistemas Informáticos en Red. Actualmente estudiando el Grado de Ingeniería Informática en la Universidad de Córdoba (España).

Enamorado de la ciencia en general y de la computación en particular.

Música: Heavy, Rock, Celta, New Age, Electrónica, etc...
Libros:Isaac Asimov, Richard Dawkins, Stephen Hawking, Carl Sagan...

Estoy interesado en la programación de videojuegos. Políticamente de izquierdas, escéptico y ateo. En definitiva, mala gente.

Sígueme en Twitter

Introduce tu dirección de correo electrónico para seguir este Blog y recibir las notificaciones de las nuevas publicaciones en tu buzón de correo electrónico.

Únete a otros 24 seguidores

Usa Linux Mint
The Bit Developer Box
A %d blogueros les gusta esto: