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
Tema 3: Gestión de Memoria
3.1. Introducción
3.2. Memoria virtual
3.3. Gestión de memoria en UNIX
3.4. Gestión de memoria en Linux
3.4.1. Visión general
3.4.2. Direccionamiento de memoria en Linux
3.4.3. Gestión de memoria en Linux
3.4.5. Cachés en Linux para la gestión de la memoria

Tema 4: Sistema de Archivos


4.1. Características del sistema de archivos de UNIX
4.2. Estructura general de un sistema de archivos de UNIX
4.3. Representación interna de los archivos en UNIX
4.4. Llamadas al sistema para el sistema de archivos de UNIX
4.5. Consistencia y mantenimiento del sistema de archivos de UNIX
4.6. El Sistema de Archivos Virtual (Virtual File System, VFS) de
Linux
4.7. Buffer caché
4.8. El Segundo Sistema de Archivos Extendido (EXT2)
4.9. El sistema de archivos /proc

Tema 5: Gestión de Dispositivos de E/S


5.1. Arquitectura de E/S
5.2. Puertos de E/S
5.3. Interfaces de E/S
5.4. Controladores de dispositivos
5.5. Archivos de dispositivo (archivos especiales)
5.6. Drivers de dispositivo
5.7. Drivers de dispositivo de bloque
5.8. Drivers de dispositivo de carácter

Tema 6 Comunicación entre Procesos


6.1. Comunicación mediante tuberías
6.1.1. Conceptos básicos
6.1.2. Llamadas al sistema básicas
6.1.3. Presentación general de la implementación
6.1.4. Presentación detallada de la implementación
6.2. IPC System V
6.2.1. Conceptos básicos
6.2.2. Llamadas al sistema básicas
6.2.3. Conceptos avanzados
6.2.4. Presentación general de la implementación
6.2.5. Presentación detallada de la implementación
PROGRAMA DE PRÁCTICAS DE LABORATORIO:

Práctica 1: Arranque de Linux y compilación del kernel


1.1. Introducción
1.2. Las órdenes en UNIX
1.3. Ayuda en línea: orden man
1.4. Manejo básico de directorios y archivos
1.5. Órdenes comunes de Linux
1.6. El arranque de Linux
1.7. Utilidades para la compilación y enlazado (gcc y make)
1.8. Compilación del kernel
1.9. Programas ejemplo (proyección en memoria de archivos)

Práctica 2: Llamadas al sistema en Linux


2.1. Introducción y ejemplo básico de llamada al sistema
2.2. Objetivos de la práctica
2.3. Funcionalidad de la llamada al sistema (sys_generacion)
2.4. Implementación a nivel de kernel del sistema operativo
2.5. Implementación a nivel de biblioteca
2.6. Comprobación del funcionamiento

Práctica 3: Módulos cargables del kernel


3.1 Introducción
3.2. Los módulos cargables en Linux (Loadable Kernel Modules, LKM)
3.3. Programación de módulos cargables
3.4. Utilización de los módulos
3.5. Enunciado de la práctica
3.6. Comprobación del funcionamiento

Práctica 4: Añadir funcionalidad al kernel de Linux, utilizando


módulos cargables
4.1. Visualización de los descriptores de procesos
4.2. Visualización del espacio de direcciones virtual bajo Linux
4.3. Ejemplo de un driver de dispositivo modo carácter. LEDs de un
teclado estándar
4.3.1. E/S en UNIX
4.3.2. Programación del driver
4.3.2.1. Acceso a los puertos del PC
4.3.2.2. Reserva de puertos
4.3.2.3. Registro del driver en el sistema
4.3.2.4. Resumen del proceso de carga/descarga del driver
4.3.2.5. Funciones de manejo del dispositivo
4.3.3. Ejemplo sencillo de un driver
4.3.4. Comprobación del funcionamiento
4.4. Ocultar archivos, interceptando llamadas al sistema
BIBLIOGRAFÍA BÁSICA:

• Linux Kernel Architecture. W. Mauerer. Wiley, 2008.


• Linux System Programming. R. Love. O’Reilly, 2007.
• Linux Kernel Development. R. Love. Sams, 2005.
• Understanding the Linux Kernel. D.P. Bovet, M. Cesati. O’Reilly,
2002.
• Linux Kernel Programming. M. Beck, H. Böhme, M. Dziadzka, U.
Kunitz, R. Magnus, C. Schröter, D. Verworner. Addison Wesley,
2002.
• El kernel 2.4 de Linux. F. Sánchez, R. Arango. Prentice Hall,
2003.
• Programación Linux 2.0. API de Sistema y Funcionamiento del
Núcleo. R. Card, E. Dumas, F. Mével. Ediciones Gestión 2000,
1997.
• The Design of the UNIX Operating System. M.J. Bach. Prentice
Hall, 1986.
• UNIX. Programación Avanzada. F.M. Márquez. Ra-Ma, 1996.
• Sistemas Operativos: una Visión Aplicada. J. Carretero, F.
García, P. de Miguel, F. Pérez. McGraw-Hill, 2001.
• Sistemas Operativos. Principios de Diseño e Interioridades. W.
Stallings. Prentice Hall, 2001.
• Linux Device Drivers. A. Rubini, J. Corbet. O'reilly, 2001.
• Interprocess Communication in Linux. J.S. Gray. Prentice Hall,
2003.
• Curso de C bajo UNIX. D.R. Llanos. Paraninfo, 2001.

EVALUACIÓN:

1. Prácticas obligatorias (60% de la nota final). Éstas deben ser


superadas para poder realizar el examen final. Además, estas
afectarán en un 60% a la nota final de la asignatura en caso de
aprobar el examen, caso de suspenderlo, no afectarán a la nota
final de la asignatura.
2. Examen final (40% de la nota final): Convocatoria ordinaria
(Febrero 2010).
3. 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).

También podría gustarte