En las clases teóricas se explicarán los
fundamentos sobre diseño de sistemas operativos descritos en el temario. La
teoría se impartirá mediante clases magistrales basadas en los textos de
referencia de la asignatura. El estudiante dispondrá de apuntes de cada unidad
temática para que conozca los puntos más importantes de ella.
TRABAJOS
Los alumnos en grupos de dos, o individualmente, elaboran trabajos sobre la
asignatura, uno referente a la primera parte de la asignatura donde se estudian
las primeras capas del sistema operativo y otro referente a la segunda parte de
la asignatura. Estos trabajos se exponen y discuten en clase y son obligatorios
para poder presentarse a los exámenes. El profesor suministra el asesoramiento,
enunciados, material bibliográfico, y metodología para realizar los trabajos y
para su exposición en clase. La superación de los trabajos se guarda durante el
curso en que se realizaron, esto es Julio, Septiembre y Febrero/Diciembre, no
para siempre.
Se promoverán aspectos colaterales de formación, como la capacidad expresiva
(oral y escrita) y la calidad de programación. Se promueve el uso de
tecnologías avanzadas (web, correo electrónico) como instrumento de comunicación
estudiante/profesor y como depósito de información (p.ej. las guías, manuales y
fichas estarán disponibles en formato electrónico).
PRÁCTICAS
Durante el curso se realizan seis practicas, en
el laboratorio asignado a la asignatura de Diseño de Sistemas Operativos,
situado en el Modulo 2, del edificio de Informática, sobre Linux. La realización
de estas prácticas persigue varios objetivos, primero introducir al alumno en
las herramientas de compilar y generar un nuevo sistema operativo, segundo el
diseño e implementación de aplicaciones de administrador de sistemas, utilizando
las llamadas al sistema y utilidades que proporciona el sistema operativo y
tercero generar nuevos manejadores y llamadas al sistema. El profesor suministra
enunciados, información, y metodología para realizar las practicas. Estas
prácticas realizadas en grupos de dos, son obligatorias y necesarias para poder
presentarse a los exámenes. La superación de las prácticas se guarda
mientras no cambie el proyecto docente.
PRÁCTICA 1:
INSTALACIÓN DE LINUX
DESCRIPCIÓN
•Instalar Linux en disco duro, haciendo dos particiones, una para MS-DOS y otra
para Linux.
•Arrancar el Linux y realizar un recorrido por sus directorios visualizando los
ficheros que hay en cada uno de ellos.
•Crear un nuevo usuario con un nombre personal y contraseña el DNI.
•Utilizar los comandos del Linux y estudiar las funciones que realizan.
OBJETIVOS
•Realizar una Instalación típica de Linux
•Manejar los parámetros de una instalación
•Familiarizarse con la utilización del Linux
•Recorrido por la estructura de sistema de ficheros
•Aprendizaje de los comandos
Nº HORAS estimadas en laboratorio: 2
PRÁCTICA
2: COMPILAR EL NÚCLEO
DESCRIPCIÓN
•Compilar los fuentes de Linux, que ya existen para crear un nuevo núcleo,
aprender los distintos parámetros que definen una compilación y el comando MAKE.
OBJETIVOS
•Aprender a compilar el núcleo
•Utilizar el comando Make
•Comprender los tipos de compilación
•Generar un nuevo Linux.
Nº HORAS estimadas en laboratorio: 2
PRÁCTICA
3: ALARMA
DESCRIPCIÓN
•Construya un programa principal, que utilice el recurso "pantalla"
continuamente (realice la función que usted quiera, por ejemplo que imprima su
nombre iterativa mente, que dibuje una pelota moviéndose por la pantalla, etc.),
pero que cada 4 segundos de forma repetitiva lance otro programa que deberá
mostrar la fecha y hora actual (date), en el recurso "pantalla".
Ayúdese de las llamadas FORK EXEC, WAIT, SIGNAL, y ALARM.
•Plantee una solución basada en Sección Crítica, para que no exista conflicto en
la utilización del recurso "pantalla" por parte de los programas, el principal y
el que lanza la hora.
•Explique en una memoria el programa Alarma, con el listado en C, debidamente
documentado.
OBJETIVOS
•Utilización del tiempo real y reloj del sistema.
•Manejo de las llamadas al sistema que trabajan con creación de procesos,
ejecución de la imagen de un proceso, espera por un proceso y envío y recepción
de señales.
•Estudio del problema de la Sección Crítica.
Nº HORAS estimadas en laboratorio: 6
PRÁCTICA
4: CREAR UNA NUEVA LLAMADA AL SISTEMA
DESCRIPCIÓN
•Diseñar una nueva llamada al sistema que al menos maneje tres parámetros de
entrada y uno de salida, utilizando las facilidades del sistema como _syscall3
•Compile el núcleo con la nueva llamada y realice un programa para utilizarla.
•Explique en una memoria todos los pasos realizados, con el listado en C,
debidamente documentado.
OBJETIVOS
•Diseñar una nueva llamada al sistema
•Implementar dentro del núcleo la llamada
Nº HORAS estimadas en laboratorio: 4
PRÁCTICA
5: MAPEAR UN FICHERO EN MEMORIA MMAP
DESCRIPCIÓN
•Crear un fichero de texto
•Abrir el fichero
•Proyectar el fichero en memoria mmap
•Modificar el contenido del fichero
•Liberar munmap y cerrar el fichero
•Visualizar los cambios del fichero
•Presentar una memoria explicando el programa y comentando el código en C.
OBJETIVOS
•Profundizar y afianzar los conceptos de proyectar un fichero en memoria.
•Aprender a utilizar la llamada que hace posible el mapeo de un fichero en
memoria mmap.
•Aprender la llamada al sistema que deshace el mapeo de un fichero en memoria
munmap.
Nº HORAS estimadas en laboratorio: 2
PRÁCTICA
6: DISEÑO E IMPLEMENTACIÓN DE UN
PROCESADOR DE COMANDOS
DESCRIPCIÓN
•Realizar un programa utilizando las llamadas al sistema de manejo de procesos
fork, wait, exec, que permita ejecutar cualquier comando del sistema operativo,
o lanzar otro programa, que admita pipe, redireccionamiento, lanzar en modo
tanda. Sacrifique ahorro de código por modularidad y claridad.
•Explique en una memoria el programa Shell, con las siguientes líneas maestras:
•Diagrama de diseño y funcionamiento con todos los bloques que lo componen.
•Descripción de cada uno de los bloques.
Para cada bloque, función que realiza, parámetros de entrada y salida,
estructuras de datos que emplea, funciones que utiliza.
•Listado en C del programa debidamente documentado.
OBJETIVOS
•Utilización de las llamadas al sistema• FORK, WAIT,PIPE, EXEC.
•Diseño de la estructura de un Shell
Nº HORAS estimadas en laboratorio: 10
PRÁCTICA
7: MEJORAR EL MANEJADOR DE MEMORIA
DESCRIPCIÓN
•Construir un nuevo servidor de memoria.
•Modificar el servidor de memoria con nuevas características y construir un
nuevo disco boot con este servidor.
•Mejorar el sistema de asignación de memoria a un proceso, cambiando el
algoritmo que actualmente tiene implementado de First Fit, "el primero que
cabe". Por ejemplo, implementar el algoritmo Best Fit "el mejor que cabe", para
la asignación de espacio de memoria.
•Entregar un listado indicando todas las partes de Linux modificadas.
•Construir un nuevo disco boot con el nuevo servidor de memoria.
OBJETIVOS
•Mejorar el servidor de memoria con nuevos algoritmos.
•Construir un nuevo servidor de memoria.
•Compilar el núcleo con el manejador de memoriar.
•Generar un nuevo disco boot con el sistema operativo.
Nº HORAS estimadas en laboratorio: 4
MATERIAL DE LABORATORIO RECOMENDADO (SOFTWARE) para todas las prácticas.
. Sistema Operativo Linux, paquete ofimática, salida a Internet.
MATERIAL DE LABORATORIO RECOMENDADO (HARDWARE) para todas las prácticas.
. Puestos de trabajo basados en PC´s, Pentium, EXCLUSIVOS, para que los alumnos
puedan instalar y compilar con privilegios de root.