Está en la página 1de 4

Curso: 2009/2010

Centro: Escuela Politécnica Superior
Estudios: 2º Ciclo de Ingeniería en Informática
Asignatura: Diseño de Sistemas Operativos
Ciclo: 2º
Curso: 4º
Cuatrimestre: 1º
Carácter: Optativa
Créditos teóricos: 3
Créditos prácticos: 3
Profesores: Antonio Corral Liria
Área: Lenguajes y Sistemas Informáticos
Departamento: Lenguajes y Computación

TEMARIO

PROGRAMA DE TEORÍA:

Tema 1: Visión general e introducción al kernel
1.1. Introducción histórica a UNIX y Linux
1.2. Visión general de UNIX
1.3. Introducción al kernel de UNIX
1.4. Introducción a Linux
1.4.1. Funciones del sistema operativo
1.4.2. Descripción de Linux y de sus funcionalidades
1.4.3. Estructura general del sistema operativo Linux
1.4.4. Organización del código fuente del kernel
1.4.5. Funcionamiento general del kernel de Linux
1.4.5.1. Implementación de una llamada al sistema
1.4.5.2. Creación de una llamada al sistema

Tema 2: Gestión de Procesos
2.1. Estados y transiciones de un proceso
2.2. Estructuras de datos del sistema para la gestión de procesos
2.3. Organización de la memoria del sistema
2.4. El contexto de un proceso. Concepto y tipos
2.5. Manipulación del contexto de un proceso
2.6. Manipulación del espacio de direcciones de un proceso.
Algoritmos
2.7. Llamadas al sistema para la gestión de procesos
2.8. Sincronización de procesos en Linux
2.9. Señales y funciones de tiempo
2.10. Nociones básicas de planificación de procesos en UNIX. El
scheduler de Linux

6.4. Interfaces de E/S 5. Conceptos básicos 6.4. Introducción 3.4. Presentación detallada de la implementación 6. Drivers de dispositivo de carácter Tema 6 Comunicación entre Procesos 6. Llamadas al sistema básicas 6. IPC System V 6.8.1.5. El sistema de archivos /proc Tema 5: Gestión de Dispositivos de E/S 5.7. Características del sistema de archivos de UNIX 4.4.3.2.1.3.2. Estructura general de un sistema de archivos de UNIX 4.6.4.2. Consistencia y mantenimiento del sistema de archivos de UNIX 4.3. Presentación general de la implementación 6.4. Presentación general de la implementación 6. Gestión de memoria en Linux 3.3.2.1. Buffer caché 4.1. Llamadas al sistema para el sistema de archivos de UNIX 4. Presentación detallada de la implementación .Tema 3: Gestión de Memoria 3. Conceptos avanzados 6.8.3.3. Conceptos básicos 6. Direccionamiento de memoria en Linux 3.2.4.2. Archivos de dispositivo (archivos especiales) 5.2. Comunicación mediante tuberías 6.1.1.2.2. Cachés en Linux para la gestión de la memoria Tema 4: Sistema de Archivos 4. Llamadas al sistema básicas 6.5. Visión general 3.2.4.1.1. Drivers de dispositivo de bloque 5. Puertos de E/S 5. Memoria virtual 3. Drivers de dispositivo 5.5. El Sistema de Archivos Virtual (Virtual File System. VFS) de Linux 4.4.1. Controladores de dispositivos 5. Arquitectura de E/S 5.5. Representación interna de los archivos en UNIX 4.7. Gestión de memoria en UNIX 3. El Segundo Sistema de Archivos Extendido (EXT2) 4.9.2.1. Gestión de memoria en Linux 3.1.2.

6.3. utilizando módulos cargables 4. Introducción 1.1. Las órdenes en UNIX 1. Acceso a los puertos del PC 4.3.3.9.2.3.1. interceptando llamadas al sistema . Ocultar archivos.3. Utilización de los módulos 3.2.7.3.2. Ejemplo sencillo de un driver 4. LKM) 3.3.5. Funcionalidad de la llamada al sistema (sys_generacion) 2.1. Comprobación del funcionamiento Práctica 4: Añadir funcionalidad al kernel de Linux. Resumen del proceso de carga/descarga del driver 4.3. Funciones de manejo del dispositivo 4. Implementación a nivel de kernel del sistema operativo 2. Órdenes comunes de Linux 1. Comprobación del funcionamiento Práctica 3: Módulos cargables del kernel 3.8. Implementación a nivel de biblioteca 2.4. Registro del driver en el sistema 4.1. Introducción y ejemplo básico de llamada al sistema 2.5. Programación del driver 4.2.4.4. Programación de módulos cargables 3.2.2.4. Enunciado de la práctica 3.6.2. Los módulos cargables en Linux (Loadable Kernel Modules.2. Ejemplo de un driver de dispositivo modo carácter.3.3. Ayuda en línea: orden man 1. Visualización del espacio de direcciones virtual bajo Linux 4.3. Programas ejemplo (proyección en memoria de archivos) Práctica 2: Llamadas al sistema en Linux 2.2. Reserva de puertos 4.PROGRAMA DE PRÁCTICAS DE LABORATORIO: Práctica 1: Arranque de Linux y compilación del kernel 1.3.5.6.5. Visualización de los descriptores de procesos 4. E/S en UNIX 4.1.4. Manejo básico de directorios y archivos 1. Utilidades para la compilación y enlazado (gcc y make) 1. El arranque de Linux 1.3.2.4.3.1 Introducción 3. Comprobación del funcionamiento 4. Compilación del kernel 1.2. LEDs de un teclado estándar 4.3. Objetivos de la práctica 2.

Márquez. J. O’Reilly.BIBLIOGRAFÍA BÁSICA: • Linux Kernel Architecture.M. Schröter. M. 1997. Examen final (40% de la nota final): Convocatoria ordinaria (Febrero 2010). Carretero. • Linux Kernel Programming.J. A.4 de Linux. W. F. Arango. C. Bach. García. H. • Interprocess Communication in Linux. 2007. • Sistemas Operativos. no afectarán a la nota final de la asignatura. • Linux Kernel Development. M.P. 1986. 2001. R. F.R. Gray. U. Magnus. E. Principios de Diseño e Interioridades. • Understanding the Linux Kernel. M. 2005. Mével. Wiley. Pérez. 2003. Verworner. R. 2002. F. Stallings. Ra-Ma. 2001. J. Prentice Hall. Sánchez. Corbet. Böhme. Love. caso de suspenderlo. Llanos. Card. Addison Wesley. D. Love. 1996. McGraw-Hill. Cesati. 3. EVALUACIÓN: 1. • Linux Device Drivers. Prentice Hall. Kunitz. P. R. 2001. Mauerer. • Curso de C bajo UNIX. Prentice Hall. R. 2001. Paraninfo. J. D. Dziadzka. • El kernel 2. Beck. • Programación Linux 2. Ediciones Gestión 2000. Prentice Hall. • UNIX. • The Design of the UNIX Operating System. O’Reilly.S. 2008. Éstas deben ser superadas para poder realizar el examen final. 2003. de Miguel. R. . 2002. Programación Avanzada. Rubini. W.0. Dumas. • Sistemas Operativos: una Visión Aplicada. Sams. 2. M. API de Sistema y Funcionamiento del Núcleo. Además. O'reilly. Bovet. estas afectarán en un 60% a la nota final de la asignatura en caso de aprobar el examen. F. Examen extraordinario (40% de la nota final): Convocatorias extraordinarias que decida la Escuela Politécnica Superior de la Universidad de Almería (Diciembre 2009 (caso de haberse matriculado en cursos académicos anteriores) o Septiembre 2010). F. D. • Linux System Programming. Prácticas obligatorias (60% de la nota final).