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:

Curso:

Cuatrimestre:

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

PROGRAMA DE TEORÍA:

TEMARIO

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).