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
- Maurice J. Bach.
The Design of the UNIX Operating System.
Prentice-Hall. 1987.
- M. Beck, H. Böhme, M. Dziadzka, U. Kunitz,
R. Magnus y D. Verworner.
LINUX Kernel Internals.
Addison-Wesley. 1997.
- Daniel P. Bovet & Marco Cesati.
Understanding the LINUX kernel.
O'Reilly & Associates. 2003.
- Phil Cornes.
The LINUX A-Z. Prentice-Hall. 1996.
- Douglas Comer.
Operating System Design: The XINU Approach.
Prentice-Hall. 1984.
- Galli, D.L.
Distributed Operating
Systems, concepts and practice. Prentice Hall, 2000.
- Nutt G. Operating Systems: A Modern
Perspective. Third Edition. Addison-Wesley, 2004.
- Pradeep Sinha.
Distributed Operating Systems. Concepts
and Design. IEEE editions. 1997.
- William Stallings.
Operating Systems: Internals and Design Principles.
Fifth edition.
Prentice-Hall. 2005.
- Andrew S. Tanenbaum, Albert S. Woodhull.
Sistemas Operativos. Diseño e Implementación.
Prentice-Hall. 1998.
- Direcciones URL de interés:
ValentÃn Valero Ruiz
2009-05-14