Trabajo optativo de sistemas operativos avanzados
Sobre el diseño interno de los micronúcleos

Se trata de un ejercicio individual de carácter optativo que permite que el alumno que lo realice pueda obtener hasta 0,5 puntos adicionales en la nota de la asignatura, siempre que la tenga aprobada.

El objetivo de los trabajos optativos que se plantean en la asignatura es que el alumno sea capaz de buscar información sobre un determinado asunto, procesarla adecuadamente y emitir una valoración crítica sobre la misma. Se pretende, de esta forma, complementar el carácter puramente aplicado de las prácticas de la asignatura.

Descripción del trabajo

Este trabajo se centra en analizar distintas alternativas en el diseño interno del núcleo de un sistema operativo, aplicándolas especialmente a los sistemas basados en un micronúcleo. Concretamente, se van a analizar dos aspectos vinculados con la organización interna del núcleo estudiados en la teoría de la asignatura: el uso de un modelo de procesos frente a un modelo de interrupciones y el grado de expulsividad del núcleo.

El trabajo se va a centrar en tres micronúcleos: Mach, como pionero en este campo, la familia L4 (todo el amplio rango que va desde L3 hasta seL4), que ha hecho importantes contribuciones al mismo, y QNX Neutrino, por su orientación al tiempo real.

A lo largo de todo el ejercicio, en las respuestas a las cuestiones que se centran en un determinado sistema, debe especificarse vía URL los documentos en los que se basa la respuesta, detallando incluso, si procede, los números de página donde aparece la información relevante o el párrafo de interés. En cuanto a lo que se refiere a las cuestiones de ámbito general, no centradas en ningún sistema concreto, se recomienda la consulta de los apuntes de procesos de la asignatura para acometer dichas cuestiones.

Empecemos con el modelo de ejecución del núcleo. Como se estudia en la teoría de la asignatura, hay básicamente dos modelos a la hora de gestionar la ejecución del código del núcleo: modelo de procesos (también denominado orientado a procesos), presente en la mayoría de los núcleos de propósito general, y el modelo de interrupciones (también denominado orientado a eventos), de uso mucho más reducido. En este segundo modelo es necesario utilizar algún tipo de técnica para poder proseguir con el tratamiento de un evento del sistema después de que éste haya sido previamente detenido por un cambio de contexto. En los apuntes de procesos de la asignatura, se explica la técnica de las continuaciones, aunque existen otras alternativas, no presentadas en dichos apuntes, como el uso de un núcleo donde las rutinas de tratamiento de eventos del sistema sean reiniciables (también denominadas atómicas).

Esta primera parte pretende analizar el uso de estos dos modelos en los micronúcleos (en caso de que un determinado núcleo utilice el modelo basado en interrupciones, intente averiguar si usa la técnica de las continuaciones o se basa en un esquema con llamadas reiniciables), repasando antes los pros y los contras de cada modelo cuando se aplican a cualquier tipo de núcleo.

  1. Explique cuáles son las ventajas del modelo de interrupciones. Ilustre la explicación usando como ejemplo un sistema con 4 procesadores y 4000 procesos.
  2. Explique cuáles son las desventajas del modelo de interrupciones. ¿Por qué esas desventajas son más tolerables en un sistema de tipo micronúcleo?
  3. ¿Qué modelo usa Mach? ¿Ha habido algún cambio en este aspecto durante la evolución de este sistema?
  4. ¿Cómo ha sido la evolución de la familia L4 (desde L3 hasta seL4) con respecto al tipo de modelo usado?
  5. ¿Qué modelo utiliza QNX Neutrino?

A continuación, afrontamos el segundo aspecto: el grado de expulsividad del núcleo.

  1. Explique cuáles son las ventajas y desventajas de usar un núcleo expulsivo.
  2. Explique cuáles son las ventajas y desventajas de usar un núcleo no expulsivo. ¿Por qué esas desventajas son más tolerables en un sistema de tipo micronúcleo?
  3. ¿Es Mach expulsivo?
  4. ¿Es QNX Neutrino expulsivo?
  5. Conectando con el primer aspecto analizado (es decir, el modelo de ejecución), explique cuál de las cuatro posibles combinaciones entre ambos aspectos (modelo de procesos con núcleo no expulsivo; modelo de procesos con núcleo expulsivo; modelo de interrupciones con núcleo no expulsivo; modelo de interrupciones con núcleo expulsivo) es, en principio, menos factible a la hora de ser implementada.
  6. A pesar de esa dificultad, uno de los tres micronúcleos analizados en este artículo opta por ella. Identifique cuál es e intente averiguar cómo resuelve ese micronúcleo esas dificultades técnicas.
  7. La familia L4 lleva más allá la no expulsividad haciendo que el núcleo ejecute con la interrupciones inhibidas. Compare las ventajas y desventajas de esta opción frente al uso de un núcleo no expulsivo.
  8. Para reducir los problemas vinculados con la inhibición de las interrupciones mientras se ejecuta código del núcleo, en L4 se introducen los interrupt points. Explique cómo funciona ese mecanismo. Analice qué similitudes y diferencias tiene con la técnica de los fixed preemption points (consulte los apuntes de procesos de la asignatura).
  9. Para terminar, una cuestión vinculada con la verificación formal de micronúcleos. Explique cuál de las cuatro combinaciones de los dos aspectos estudiados conlleva un núcleo más fácilmente verificable.
El alumno deberá entregar una memoria respondiendo a estas cuestiones. En el caso de cuestiones que se centran en sistemas concretos, como se explicó al principio del enunciado, se debe especificar vía URL en la respuesta correspondiente las referencias utilizadas para la misma.

Entrega del trabajo

El plazo de entrega del trabajo es el viernes 5 de mayo de 2017.

La entrega se realiza en triqui ejecutando el mandato:

    entrega.soa micro.2017
Este mandato realizará la recolección del fichero memoria.pdf del directorio ~/DATSI/SOA/micro.2017.