Asignatura: Diseño de Sistemas Operativos.
Area: Lenguajes y Sistemas Informáticos.
Estudios: Ingeniería Informática.
Profesor: Valentín Valero Ruiz.
Carácter: Optativa.
Créditos: 4.5.
Curso: 2009/2010
Material de clase: ftp Diseño Sistemas Operativos





OBJETIVOS:  Se pretende esencialmente que el alumno conozca el diseño de un sistema operativo de uso extendido, como es Unix. Asimismo se mostrarán implementaciones concretas de los diferentes componentes en el núcleo de Linux.





PROGRAMA DE LA ASIGNATURA


1.-
DISEÑO DEL NUCLEO

1.1.-
Arquitectura del sistema.
1.2.-
Principales estructuras de datos del núcleo.
1.3.-
Estados de procesos y transiciones de estados.
1.4.-
Gestión de llamadas e interrupciones.
1.5.-
Rutinas sleep y wakeup.
1.6.-
Introducción a la gestión de la memoria.
1.7.-
Control de procesos: fork, execve, setpgrp y exit.
1.8.-
Hilos en Linux: clone.
1.9.-
Señales: signal, sigaction, sigpending, sigsuspend y sigprocmask.
1.10.-
Tratamiento de señales: rutina do_signal.
1.11.-
Servicio kill.
1.12.-
Servicios wait, wait4 y waitpid.
1.13.-
Servicios relativos a usuarios y grupos de usuarios.

2.-
PLANIFICACION Y TEMPORIZACION DE ACTIVIDADES

2.1.-
Planificación a corto plazo de Unix y Linux.
2.2.-
La interrupción del reloj.
2.3.-
Servicios de prioridad de procesos: nice, setprority y getpriority.
2.4.-
Servicios de hora: stime y time.
2.5.-
Temporización de actividades: alarm, setitimer y getitimer.

3.-
SISTEMA DE FICHEROS

3.1.-
Arquitectura del Sistema de Ficheros Virtual.
3.2.-
El cache de páginas.
3.3.-
El buffer-cache.
3.4.-
Lectura y Escritura de bloques de disco.
3.5.
Estructura de un Sistema de Ficheros de Unix.
  • Estructura básica general.
  • Tipos de sistemas de ficheros soportados.
  • Gestión de inodos: iget e iput.
  • Estructura de un fichero regular: rutinas bmap y namei.
  • Gestión del superbloque: rutinas ialloc, ifree, alloc y free.
3.4.-
Llamadas relativas al Sistema de Ficheros.
  • La tabla de ficheros y tablas de descriptores.
  • Servicios open, creat y close.
  • Servicios read y write.
  • Servicio lseek.
  • Servicio mknod.
  • Servicios mkdir, chdir, rmdir y chroot.
  • Servicios chown y chmod.
  • Servicios stat y fstat.
  • Servicios de pipes: nombradas y anónimas.
  • Servicios dup y dup2.
  • Servicios mount y umount.
  • Servicios link y unlink.

4.-
ENTRADAS/SALIDAS

4.1.-
Arquitectura del subsistema de E/S en Unix y Linux.
4.2.-
Interfaz de las controladoras.
4.3.-
Modelos empleados: escrutinio e interrupciones.
4.4.-
Las tareas de núcleo en Linux.
4.5.-
Bloqueo de regiones de memoria y de puertos de E/S.
4.6.-
Operaciones sobre dispositivos: init, open, close, read, write, strategy e ioctl.







PRACTICAS:



Se estudiarán implementaciones concretas de los diferentes componentes del sistema operativo en Linux, así como modificaciones puntuales de algunas componentes.




EVALUACION



Mediante prueba escrita en combinación con un trabajo práctico, valorándose ambas con un peso del 50% de la calificación final. En el caso de la convocatoria extraordinaria la calificación será únicamente la obtenida de la prueba escrita.



BIBLIOGRAFIA

  1. Maurice J. Bach. The Design of the UNIX Operating System. Prentice-Hall. 1987.

  2. M. Beck, H. Böhme, M. Dziadzka, U. Kunitz, R. Magnus y D. Verworner. LINUX Kernel Internals. Addison-Wesley. 1997.

  3. Daniel P. Bovet & Marco Cesati. Understanding the LINUX kernel. O'Reilly & Associates. 2003.

  4. Phil Cornes. The LINUX A-Z. Prentice-Hall. 1996.

  5. Douglas Comer. Operating System Design: The XINU Approach. Prentice-Hall. 1984.

  6. Galli, D.L. Distributed Operating Systems, concepts and practice. Prentice Hall, 2000.

  7. Nutt G. Operating Systems: A Modern Perspective. Third Edition. Addison-Wesley, 2004.

  8. Pradeep Sinha. Distributed Operating Systems. Concepts and Design. IEEE editions. 1997.

  9. William Stallings. Operating Systems: Internals and Design Principles. Fifth edition. Prentice-Hall. 2005.

  10. Andrew S. Tanenbaum, Albert S. Woodhull. Sistemas Operativos. Diseño e Implementación. Prentice-Hall. 1998.

  11. Direcciones URL de interés:

    http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html
    http://www.linuxdoc.org/LDP/tlk/tlk.html
    http://www.tldp.org
    http://www.linuxdoc.org/LDP/khg/HyperNews/get/khg.html
    http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a1.html
    http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a2.html
    http://www.linux.org





Valentín Valero Ruiz 2009-05-14