Introducción al TP

Sistemas Operativos 2C2013 - UTN FRBA

Mario!*de vuelta*

y su amigo el mario verde...

Arquitectura general

  • Muchos personajes
  • Muchos niveles
    • Muchos enemigos
    • Muchos interbloqueos
  • Muchos planificadores
    • Muchos algoritmos
  • Un File System
  • Un Koopa
  • Toneladas de diversión

Arquitectura general

  • Se levanta una única Plataforma y el FileSystem

Orquestador

FileSystem

Arquitectura general

  • Se levanta una única Plataforma y el FileSystem
  • Se levantan muchos niveles

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

FileSystem

Arquitectura general

  • Se levanta una única Plataforma y el FileSystem
  • Se levantan muchos niveles
    • Los niveles se conectan a la plataforma

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

FileSystem

Arquitectura general

  • Se levanta una única Plataforma y el FileSystem
  • Se levantan muchos niveles
    • Los niveles se conectan a la plataforma
  • Se levantan los personajes

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Personaje (#)

Personaje (@)

Personaje (&)

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

FileSystem

Arquitectura general

  • Se levanta una única Plataforma y el FileSystem
  • Se levantan muchos niveles
    • Los niveles se conectan a la plataforma
  • Se levantan los personajes
    • Se conectan al orquestador

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Personaje (#)

Personaje (@)

Personaje (&)

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

FileSystem

Arquitectura general

  • Se levanta una única Plataforma y el FileSystem
  • Se levantan muchos niveles
    • Los niveles se conectan a la plataforma
  • Se levantan los personajes
    • Se conectan al orquestador
    • Se delega la conexión a los planificadores que correspondan

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Personaje (#)

Personaje (@)

Personaje (&)

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

FileSystem

Arquitectura general

  • Se levanta una única Plataforma y el FileSystem
  • Se levantan muchos niveles
    • Los niveles se conectan a la plataforma
  • Se levantan los personajes
    • Se conectan al orquestador
    • Se delega la conexión a los planificadores que correspondan

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Personaje (#)

Personaje (@)

Personaje (&)

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

FileSystem

Arquitectura general

  • Se levanta una única Plataforma y el FileSystem
  • Se levantan muchos niveles
    • Los niveles se conectan a la plataforma
  • Se levantan los personajes
    • Se conectan al orquestador
    • Se delega la conexión a los planificadores que correspondan
  • Se ejecuta Koopa

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Personaje (#)

Personaje (@)

Personaje (&)

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

FileSystem

Proceso Personaje

Resumen

  • Existen múltiples instancias del proceso, cada uno con su propia configuración
  • Juega en niveles de manera concurrente
  • Se mueve de a una posición
  • Junta recursos
  • Tiene vidas
  • Puede morir
    • Reiniciara el nivel de tener vidas disponibles
  • Tiene que responder a señales

Personaje Mario (@)

Hilo Nivel 1

Hilo Nivel 4

Objetivos:

  • Flor
  • Hongo

Objetivos:

  • Carbón
  • Roca
  • Carbón
  • Bondiola

Objetivos:

  • Pulpo
  • Merluza
  • Pulpo
  • Merluza
  • Omelette

Hilo Nivel 8

El autor de esta slide tenía hambre

Proceso Personaje

Secuencia

  • Conectarse al orquestador

(Plataforma delega la conexión

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Personaje (@)

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

Nivel A

Nivel X

Proceso Personaje

Secuencia

  • Recibe un turno del planificador
    • Solicita ubicación de la caja
    • Avanza inteligentemente
    • Solicita el recurso
    • Volver al punto 2.1 si termino el plan de ese nivel

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Personaje (@)

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

Nivel A

Nivel X

  • Conectarse al orquestador

(Plataforma delega la conexión)

  • Notificar que terminó el nivel
  • Desconectarse

Proceso Personaje

Secuencia

  • Recibe un turno del planificador
    • Solicita ubicación de la caja
    • Avanza inteligentemente
    • Solicita el recurso
    • Volver al punto 2.1 si termino el plan de ese nivel
  • Notificar que terminó el nivel
  • Desconectarse

De terminar todos los niveles, se conecta el orquestador e informa eso.

Orquestador

Planificador

Nivel A

Planificador

Nivel X

Personaje (@)

Nivel A

Interbloqueo

Enemigo

Enemigo

Nivel X

Interbloqueo

Enemigo

Nivel A

Nivel X

  • Conectarse al orquestador

(Plataforma delega la conexión)

Proceso Personaje

Extras

  • Razones de muerte:
    • Al colisionar con un enemigo
    • Ser elegido víctima por interbloqueo
    • Señal

  • Contador de vidas
    • Por configuración
    • Mientras tiene vidas, reiniciar el nivel
    • Sino, deberá interrumpir todos sus planes de niveles y mostrar en pantalla un mensaje preguntando al usuario si desea reiniciar el juego, informando también la cantidad de reintentos que ya se realizaron. De aceptar, el Personaje incrementará su contador de reintentos y reiniciará su Plan de Niveles. En caso negativo, el Personaje se cerrará, abandonando el juego.

La letra chica es totalmente intencional

Proceso Personaje

Extras

Señales:

SIGUSR1: Recibir vidas

SIGTERM: Perder una vida

(sin reiniciar nivel)

Interrupción: Morir sin recolección

Ejemplo de Config:

nombre = Mario

simbolo = @

planDeNiveles = [Nivel8,Nivel4

Nivel1]

obj[Nivel1] = [F,H]

obj[Nivel4] = [C,R,C,B]

obj[Nivel8] = [P,M,P,M,O]

vidas = 5

orquestador = 5.28.0.10:50

Proceso Plataforma

Resumen

  • Única instancia
  • Un solo socket de acceso (Orquestador)
    • Recibe, distribuye y conglomera personajes que hayan terminado
  • Manejar planificadores
    • Multiplexar conexiones
    • Manejar un algoritmo de planificación
    • Conceder turnos
    • Liberar recursos
  • Ejecutar Koopa

Orquestador

Hilo Planificador Nivel 1

Hilo Planificador Nivel 4

Hilo Planificador Nivel 8

Proceso Plataforma

Extras

Algoritmos:

RR: Round Robin con

quantums definidos

SRDF: El que esté más cerca

de su próximo recurso

Ejemplo de Config:

puerto = 5000

koopa = /home/utnso/koopa

script = /home/utnso/evaluacion.sh

punto_montaje = /home/utnso/mnt/fuse

Proceso Nivel

Resumen

  • Existen múltiples instancias del proceso, cada uno con su propia configuración
  • Cada uno tiene una sola instancia de cada personaje
  • Chequean activamente interbloqueos
    • Puede tener que elegir resolverlo
  • Gestionar enemigos
    • Movimiento hacia el personaje más cercano
    • Esquivar cajas de recursos
  • Dibujar el mapa
    • Biblioteca proporcionada por la cátedra

Nivel 1

Hilo de chequeo de Interbloqueo

Hilo Enemigo 1

Cajas:

  • Flor
  • Hongo
  • Moneda

Hilo Enemigo 2

Algoritmo:
RR

Quantum:

3

Personajes:

  • Mario
  • Luigi

El autor de esta slide tenía hambre

Proceso Nivel

Extras

Ejemplo de Config:

Nombre = Test_Chamber_04

Caja1 = Flores,F,3,23,5

Caja2 = Hongos,H,2,7,4

Caja3 = Monedas,H,4,21,2

Plataforma = 192.168.0.100:5000

TiempoChequeoDeadlock =10000

Recovery = 1

Enemigos = 2

Sleep_Enemigos = 2000

algoritmo = RR

quantum = 3

retardo = 500

Proceso FileSystem

  • Nombre: GRAn Sistema de Archivos.
  • Capaz de:
    • Leer archivos
    • Crear archivos
    • Escribir archivos
    • Borrar archivos
    • Crear directorios y dos niveles de subdirectorios.
    • Borrar directorios vacíos

  • Usará la biblioteca FUSE en modo MULTIHILO.

Checkpoints

Entregas

  • 5 de Octubre
  • 26 de Octubre
  • 9 de Noviembre
  • 23 de Noviembre

Entrega Final:

30 de Noviembre

Primer Recuperatorio:

7 de Diciembre

Segundo Recuperatorio:

14 de Diciembre

Las fechas son estimativas y pueden ser modificadas con su debida notificación

Intro TP 2C2013 (OS) - Google Slides