Diseño de Sistemas Operativos

 

4. METODOLOGÍA TRABAJOS Y PRÁCTICAS

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.
 

 

PLANIFICACIÓN

 TEMPORIZACIÓN 

Distribución temporal de los distintos temas que componen el temario, entre los meses de curso, con indicación de las fechas de los exámenes parciales. 

 

MES

 

FEB

 

MAR

 

ABR

 

MAY

 

JUN

 

TEMA

 

T1

 

T1T2T3T4

 

T5 T6

 

T6T7

 

T8T9

 

 

SEMANA

TEMA

TEORÍA

 

PRÁCTICA

1

T1,T2

P1

2

T3,T4

P2

3

T4

P3

4

T5

P3

5

T5

P3

6

T5

P4

7

T5

P4

8

T5

P5

9

T5

P6

10

T5,T6

P6

11

T6

P6

12

T6,T7

P6

13

T7

P6

14

T7

P7

15

T8,T9

P7