Download TEMARIO

Document related concepts

Proceso de arranque en Linux wikipedia , lookup

Sistema de archivos en el espacio de usuario wikipedia , lookup

Procfs wikipedia , lookup

Open Sound System wikipedia , lookup

Linux Unified Kernel wikipedia , lookup

Transcript
Curso:
Centro:
Estudios:
Asignatura:
Ciclo:
Curso:
Cuatrimestre:
Carácter:
Créditos teóricos:
Créditos prácticos:
Profesores:
Área:
Departamento:
2011/2012
Escuela Superior de Ingeniería
2º Ciclo de Ingeniería en Informática
Diseño de Sistemas Operativos
2º
4º
1º
Optativa (Bianual)
3
3
Antonio Corral Liria
Lenguajes y Sistemas Informáticos
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
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. 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. Ejemplo de modulo para la creación de un pseudo-archivo en /proc
3.6. Enunciado de la práctica
3.7. 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. Visualización del mapa de memoria virtual de un proceso en Linux
4.4. Visualización de un mapa parcial de procesos
4.5. Visualización de información del inodo correspondiente a un
archivo
BIBLIOGRAFÍA BÁSICA:
• Linux Kernel Development: A thorough guide to the design and
implementation of the Linux kernel. Robert Love. Addison Wesley,
2010.
• Understanding the Linux Kernel. D.P. Bovet, M. Cesati. O’Reilly,
2005.
• 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 (70% de la nota final). Éstas deben ser
superadas para poder realizar el examen final. Además, estas
afectarán en un 70% 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 (30% de la nota final): Convocatoria ordinaria
(Febrero 2012).
3. Examen extraordinario (30% de la nota final): Convocatorias
extraordinarias que decida la Escuela Superior de Ingeniería de
la Universidad de Almería (Diciembre 2011 (caso de haberse
matriculado en cursos académicos anteriores), Junio 2012 o
Septiembre 2012).