Compilacion
Contenidos
3.1 Introducción. 3.2 Modelos de memoria de un proceso. 3.3 Ciclo de vida de un programa. 3.3.1 Compilación. 3.3.2 Enlazado. 3.3.3 Carga y ejecución. 3.4 Formato de archivos objetos y ejecutables. 3.5 Bibliotecas 3.6 Ejemplo del ciclo de vida de un programa. 3.7 Automatización del Proceso de Compilación y Enlazado. Herramientas y Entornos .Fundamentos del Software 1er Curso de Grado en Ingeniería Informática
Objetivos
• Identificar los elementos que intevienen en la gestión de memoria. • Conocer las necesidades de memoria de los procesos. • Saber que pasos se dan en la conversión de un programa fuente en un ejecutable, y quién los realiza. • Conocer posibles formatos de archivos objetos y ejecutable, en especial, ELF. •Reconocer los diferentes tipos de bibliotecas y cómo se construyen. • Identificar diferentes mecanismos para automatizar el proceso de compilacón y enlazado de un programa.
Bibliografía básica [Levi00] [Carr07] John R. Levine, Linkers & loader, Morgan Kaufman, 2000. Disponible en la dirección: http://www.iecc.com/linker/ . J. Carretero, F. García, P. de Miguel, F. Pérez, Sistemas Operativos (2ªEdición), McGraw-Hill, 2007. Capitulo 5.
3-Nov-2010
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
1
3.1 Introducción
Fundamentos del Software 1er Curso de Grado en Ingeniería Informática
Introducción
• Elementos responsables de la gestión de memoria: Lenguaje de programación. Compilador. Enlazador. Sistema operativo MMU –Memory Management Unit.
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
2
3.1 Introducción
Fundamentos del Software Tema 3. Compilación y enlazado
Niveles de la gestión de memoria
• Nivel de procesos – reparto de memoria entre los procesos. Responsabilidad del SO. • Nivel de regiones – distribución del espacio asignado a un proceso alas regiones del mismo. Gestionado por el SO. • Nivel de zonas- reparto de una región entre las diferentes zonas de esta. Gestión del lenguaje de programación con soporte del SO.
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
3
3.1 Introducción
Fundamentos del Software Tema 3. Compilación y enlazado
Necesidades de memoria de un proceso• Tener un espacio lógico independiente. • Espacio protegido del resto de procesos. • Posibilidad de compartir memoria. • Soporte a diferentes regiones. • Facilidades de depuración. • Uso de un mapa amplio de memoria. • Uso de diferentes tipos de objetos de memoria. • Persistencia de datos. • Desarrollo modular. • Carga dinámica de módulos.
DEPARTAMENTO DE_______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
4
3.2 Modelos de memoria de un proceso
Fundamentos del Software Tema 3. Compilación y enlazado
Modelo de memoria
Estudiaremos aspectos relacionados con la gestión del mapa de memoria de un proceso, desde la generación del ejecutable a su carga en memoria: ● Nivel de región ● Nivel de zona ● Para ello veremos: ● Implementación de tipos deobjetos necesarios por un programa ● Ciclo de vida de un programa ● Estructura de un ejecutable ● Bibliotecas
●
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
5
3.2 Modelo de memoria de un proceso
Fundamentos del Software Tema 3. Compilación y enlazado
Tipos de datos
Datos estáticos: ● Globales ● Constantes o variables ● Con o sin valorinicial – direccionamiento relativo: PIC ● Datos dinámicos asociados a la ejecución de una función: ● Se almacenan en pila en un registro de activación (contiene variables locales, parámetros, dirección de retorno) ● Datos dinámicos controlados por el programa – heap.
●
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
6
3.2 Modelo de memoria...
Regístrate para leer el documento completo.