Next: Los procesos en UNIX
Up: Ficheros ejecutables
Previous: El fichero ejecutable binario
Cuando un usuario solicita ejecutar un fichero binario, el sistema operativo
carga en una zona de memoria independiente del espacio de direcciones las
áreas de código y de datos del ejecutable. A continuación añade un área
extra de memoria que contiene la siguiente información (ver figura
1.3):
- 1.
- bss: es un área de memoria reservada para aquellas variables
no han sido inicializadas en tiempo de compilación y si en tiempo de
ejecución. Su tamaño se conoce en tiempo de compilación y por eso
size puede calcularlo.
- 2.
- heap: espacio de direcciones de memoria reservada para variables
dinámicas, es decir, creadas en tiempo de ejecución y que pueden
variar en número y tamaño. Por ejemplo, cuando cuando asignamos memoria
a un array dinámico con la instrucción malloc() del lenguaje C,
reservamos memoria del heap. Normalmente el heap crece desde direcciones
decrecientes a direcciones crecientes, aunque esto para el programador es
irrelevante.
- 3.
- stack: es el área de memoria dedicada a gestionar las llamadas y
retornos de las funciones invocadas. Típicamente, cuando llamamos
recursivamente a una función indefinidamente y se produce un fallo de
segmentación (nuestro proceso escribe en una dirección de memoria que
no le ha sido asignada) es que hemos llenado la memoria dinámica que fue
asignada con el stack. Normalmente el stack crece desde direcciones
crecientes a direcciones decrecientes.
Figura 1.3:
Estructura de un proceso.
|
Pero el ejecutable cargado en memoria de esta manera no es suficiente. El
sistema operativo tiene que multiplexar la CPU entre todos los procesos que
se ejecutan en la computadora. Para ello necesita añadir información extra
que le permita asignar y retirar la CPU a un proceso. El núcleo del sistema
operativo inserta al ejecutable un entorno que contiene esa información,
típicamente: contenido de los registros de la CPU, directorio de trabajo,
estado de los ficheros abiertos en el instante en el que perdió la atención
de la CPU, recursos consumidos, etc. A la combinación de ejecutable antes
descrita y el entorno se le denomina imagen. Esta estructura si
contiene toda la información necesaria para que un proceso se ejecute
creyendo poseer todos los recursos del ordenador.
Next: Los procesos en UNIX
Up: Ficheros ejecutables
Previous: El fichero ejecutable binario
Vicente González Ruiz
1998-07-13