Visión Global

La aplicación consta de distintos subsistemas (Procesador, Memoria, Disco) interconectados a través del sistema de mensajería que se encarga de gestionar la comunicación.

En todos los casos en que aparecen algoritmos y representaciones, el patrón es el mismo. Existen unas estructuras de datos, gestionadas por el algoritmo elegido, que representan el estado del subsistema. De esta manera, el código que dibuja cada representación no tiene más que utilizar esta misma estructura de datos como referencia.

Cada subsistema es un objeto que ejemplifica cada una de las cuatro partes de la arquitectura Von Newmann, a la vez que los métodos de gestión impuestos por un sistema operativo moderno.

Dichos objetos implementan una interfaz bien definida, comunicándose a través del sistema de mensajería y ofrecen unos servicios que generalmente pueden solicitar, de igual manera, cualquiera de los demás.

Figura 1. Diagrama de bloques

Reloj

Este subsistema marca el ritmo de ejecución de los demás. Su simulación es importante porque viene a representar el carácter síncrono del ordenador y permite al usuario elegir la velocidad a la que transcurre la simulación.

Servicios que ofrece

  • Señala el paso del tiempo.

  • Se detiene a petición del cliente.

Procesador

Simboliza la gestión que el SO hace de la capacidad de proceso de la máquina.

Servicios que ofrece

  • Informa de la creación y destrucción de procesos.

  • Termina anticipadamente los procesos a petición del cliente.

Servicios que utiliza

  • Produce fallos de página y accesos a la memoria principal.

  • Solicita bloques de datos del disco.

  • Recibe la referencia de tiempo del reloj

  • Detiene el reloj en ciertas situaciones

Memoria

Representa la gestión de memoria principal con las técnicas más comúnmente empleadas para aumentar su eficiencia (paginación, memoria. virtual, swap)

Servicios que ofrece

  • Recibe fallos de página.

  • Comunica cuándo un fallo de página ha sido resuelto.

  • Recibe accesos a páginas disponibles.

  • Informa cuándo cambia la disponibilidad de páginas de un proceso.

Servicios que utiliza

  • Realiza accesos al disco para escribir en el área de swap las páginas que "roba" a los distintos procesos y poder devolvérselas después.

  • Recibe la referencia de tiempo del reloj.

  • Recibe notificación del procesador cuando se crean o destruyen procesos

    .
  • Solicita la terminación anticipada de procesos al procesador cuando no hay recursos suficientes.

Disco

En un sistema real, la memoria principal (rápida y volátil) se ve complementada por una memoria secundaria (comúnmente en forma de disco magnético) que es persistente, más lenta y barata, y que le confiere al sistema capacidad de almacenar la información necesaria para funcionar (sistema operativo y datos de usuario).

Servicios que ofrece

  • Acepta peticiones de acceso a los distintos bloques de datos y swap.

  • Informa (al cliente que lo solicitó) cuándo un acceso ha sido completado.

Servicios que utiliza

  • Recibe la referencia de tiempos del reloj.

Mensajero

Este elemento se encarga de gestionar la comunicación entre los demás.

Servicios que ofrece

  • Reinicia todo el sistema a petición del cliente

En la figura se muestra un diagrama simplificado del sistema, suponiendo que la comunicación ocurre directamente sin tener en cuanta al mensajero.

Figura 2. Diagrama de bloques simplificado