Diseño de Sistemas Operativos

 

3. CONTENIDOS

El módulo Diseño del Núcleo de un Sistema Operativo está basado en el estudio del Sistema Operativo "LINUX" desarrollado por Linus Torvalds. 

La disponibilidad de los programas fuentes de este S.O. Así como libros y documentación en Internet, proporcionan una buena herramienta pedagógica para cubrir los objetivos de este módulo, permitiendo el análisis, síntesis, desarrollo y prueba de nuevos módulos que conforman parte de un S.O.

Los principales objetivos didácticos que se tratan en este curso de Diseño de Sistemas Operativos, tratan con: Afianzar los conceptos básicos estudiados en asignaturas anteriores de sistemas operativos. Planteamiento y resolución de problemas prácticos derivados de una implementación real, utilizando las llamadas y librerías del sistema. Diseño e implementación de utilidades del sistema. Estudio de temas relacionados con los últimos avances en sistemas operativos. Presentamos un desglose de objetivos por temas según programa:


TEMA 1: INTRODUCCIÓN AL LINUX

El primer capítulo, introduce la información básica para que un usuario pueda utilizar LINUX, realizándose una descripción de la arquitectura y estructura del núcleo. También se describe la utilización de llamadas al sistema.

TEMA 2: ARRANQUE E INICIALIZACIÓN DEL NÚCLEO

Los objetivos del segundo capítulo tratan de la comprensión de todos los pasos que ocurren desde que se enciende el computador, hasta que este presenta el símbolo del procesador de comandos. Analizar y estudiar el programa de inicialización INIT.

TEMA 3: INTERRUPCIONES

 Los objetivos de este capitulo tratan de afianzar el concepto de interrupción y los pasos que ejecuta el núcleo cuando se realiza una interrupción. Se estudia como implementa Linux el sistema de interrupciones, se analizan las estructuras de datos y procedimientos que permiten gestionar y atender las interrupciones hardware. Se estudia el mecanismo de interrupción software de las llamadas al sistema, sus pasos, estructuras y procedimientos. Finalmente se estudia el sistema de señales, las estructuras y los procedimientos que gestionan el envío y recepción de señales.

TEMA 4: LLAMADAS AL SISTEMA

El tercer capítulo está relacionado con las llamadas al sistema, que están soportadas por LINUX, haciéndose un estudio funcional de cada una de ellas y agrupándolas según su aplicación a procesos, señales, manejo de ficheros, relativas a directorios, protección y manejo de tiempos.

TEMA 5: PROCESOS

El siguiente conjunto de capítulos trata sobre los bloques fundamentales que conforman un S.O. comenzando con el bloque que estudia los procesos. En él se hace un repaso a los conceptos sobre procesos, su estructura interna, pasándose a continuación a estudiar su realización. Se analizan las estructuras de datos para el manejo de procesos. Se estudia la implementación de estructuras y procedimientos para la gestión de CPU. Se estudian llamadas al sistema que están relacionadas con la creación de procesos FORK y CLONE, con la ejecución de la imagen de un programa EXEC, la terminación de un proceso EXIT y la espera por un proceso WAIT.

TEMA 6: MEMORIA

En el siguiente capítulo sobre memoria, se trata de estudiar las estructuras y procedimientos que asignan memoria virtual a un proceso, se analiza la técnica de paginación las estructuras de tablas de páginas y los procedimientos que las manejan, se estudian los procedimientos que permiten tratar el disco como una prolongación de la memoria SWAP. Se analizan las llamadas que permiten proyectar un fichero de disco en memoria, MMAP. Se termina estudiando llamadas relacionadas con el manejo de memoria como BRK.

TEMA 7: ARCHIVOS

Este capítulo versa sobre ficheros donde se estudia el sistema de ficheros virtual implementado por Linux, con sus estructuras de datos principales, el bloque cache, el superbloque, el inodo, y la estructura de directorio. Se estudia uno de los sistemas de ficheros reales que soporta, la segunda parte de este capítulo está relacionada con la implementación de las operaciones sobre ficheros, CREAT, MAKENOD, OPEN, CLOSE READ, WRITE y SEEK, el manejo de directorios y la implementación de las llamadas PIPE, MOUNT, UMOUNT, así como otras llamadas como CHDIR, CHROOT, STAT y FSTAT.

TEMA 8: COMUNICACIÓN ENTRE PROCESOS

Los objetivos de este capitulo tratan de estudiar las primitivas de comunicación entre procesos PIC. Se estudian los mecanismo de mensajes, semáforos y memoria compartida, con las estructuras de datos y procedimientos que los implementan.

TEMA 9: AVANCES EN SISTEMAS OPERATIVOS

Este capítulo trata de introducir al alumno, en aquellos tópicos que son novedosos en S.O., para ello se selección artículos y temas sobre sistemas operativos, aparecidos en revistas, que por su actualidad y novedad son de interés para el alumno. 

 

PROGRAMA DE LA ASIGNATURA

 TEMA 1: INTRODUCCIÓN AL LINUX
1.1 HISTORIA DE LINUX
1.2 LICENCIA GNU UNA NUEVA FILOSOFÍA
1.3 ARQUITECTURAS DE UN NÚCLEO
1.4 ESTRUCTURA DEL NÚCLEO
1.5 SÍNTESIS Y UTILIZACIÓN DE LLAMADAS
BIBLIOGRAFÍA: MAX-99, CAR-97, CAN-03
TEMPORIZACIÓN: 3h

TEMA 2: CARGA DEL NÚCLEO E INICIALIZACIÓN
2.1 INTRODUCCIÓN
2.2 CARGA DEL NÚCLEO LILO
2.3 EL PROGRAMA DE INICIALIZACIÓN INIT
2.4 EL PROGRAMA PRINCIPAL DEL NÚCLEO MAIN
BIBLIOGRAFÍA: MAX-99, CAR-97, CAN-03
TEMPORIZACIÓN:1h

TEMA 3: INTERRUPCIONES
3.1 INTRODUCCIÓN
3.2 INTERRUPCIONES HARDWARE
3.3 INTERRUPCIONES SOFTWARE
3.4 INTERRUPCIONES POR SEÑALES
BIBLIOGRAFÍA: MAX-99, CAR-97, CAN-03
TEMPORIZACIÓN:4h

TEMA 4: LLAMADAS AL SISTEMA
4.1 INTRODUCCIÓN
4.2 MANEJO DE PROCESOS
4.3 SEÑALES
4.4 MANEJO DE FICHEROS
4.5 MANEJO DE DIRECTORIOS Y SISTEMA DE FICHEROS
4.6 PROTECCIÓN
BIBLIOGRAFÍA: BAC-86, MAR-96, TAN-98, ROC-85, CAN-03
TEMPORIZACIÓN: 2h

TEMA 5: PROCESOS
5.1 CONCEPTOS SOBRE PROCESOS
5.2 TABLA DE PROCESOS
5.3 GESTIÓN Y PLANIFICACIÓN DE PROCESOS
5.4 CREACIÓN DE PROCESOS FORK, CLONE
5.5 EJECUCIÓN DE UN PROCESO EXEC
5.6 TERMINACIÓN DE UN PROCESO EXIT
5.7 ESPERA POR UN PROCESO WAIT
BIBLIOGRAFÍA: MAX-99, CAR-97, TAN-98, CAN-03  
TEMPORIZACIÓN: 5h

TEMA 6: MEMORIA
6.1 PANORAMA DEL MANEJO DE MEMORIA EN LINUX
6.2 MEMORIA VIRTUAL DE UN PROCESO
6.3 PAGINACIÓN
6.4 INTERCAMBIO DE PAGINAS CON EL DISCO SWAP
6.5 VOLCADO DE UN FICHERO EN MEMORIA MMAP
6.6 ASIGNACIÓN DE ESPACIO DE DATOS BRK
BIBLIOGRAFÍA: MAX-99, CAR-97,  CAN-03
TEMPORIZACIÓN: 4h

TEMA 7: SISTEMA DE FICHEROS
7.1 SISTEMA VIRTUAL DE ARCHIVOS
7.2 BUFFER CACHE.
7.3 TABLA DE INODOS.
7.4 TABLA DE SUPERBLOQUE.
7.5 DESCRIPTOR DE UN FICHERO.
7.6 APERTURA DE UN FICHERO OPEN, CLOSE
7.7 OPERACIONES SOBRE FICHEROS READY WRITE
7.8 MONTAR UN SISTEMA DE FICHEROS MOUNT.
7.9 COMUNICACIÓN ENTRE PROCESOS MEDIANTE PIPE
BIBLIOGRAFÍA: MAX-99, CAR-97,  CAN-03
TEMPORIZACIÓN: 7h

TEMA 8: COMUNICACIÓN ENTRE PROCESOS
8.1 PRIMITIVAS DE COMUNICACIÓN
8.2 MENSAJES
8.3 SEMÁFOROS
8.4 MEMORIA COMPARTIDA
BIBLIOGRAFÍA: MAX-99, CAR-97, CAN-03
TEMPORIZACIÓN: 3h

TEMA 9: AVANCES EN SISTEMAS OPERATIVOS
9.1 AVANCES EN SISTEMAS OPERATIVOS
9.2 TENDENCIAS FUTURAS
9.3 TEMAS DE ACTUALIDAD EN SISTEMAS OPERATIVOS
TEMPORIZACIÓN: 1h