Trabajo Práctico 2C2017

Sistemas Operativos

http://faq.utnso.com/yama

UTN.BA

Agenda - Parte 1

  • Introducción al TP
  • Introducción a Filesystem
  • Filesystem distribuído
  • Jobs
  • Entrada y Salida Estándar
  • Etapas de un Job

Introducción al TP

Trabajo Práctico Cuatrimestral

  • Plataforma de procesamiento distribuido de datos
  • Hilos, Procesos, Memoria, Filesystem, Semáforos y Sockets
  • Componentes en caja negra
  • Debe poder ejecutar nuestros tests

Trabajo Práctico

YAMA es una plataforma que permite ejecutar tareas de procesamiento de datos sobre archivos almacenados de manera distribuida

CAJA NEGRA

Filesystem

Introducción a FileSystem

Filesystem: Componente del sistema operativo que se encarga de la organización y gestión de los datos almacenados en una computadora usando una abstracción llamada “archivo”

Archivo

1100

1099

1102

1103

1101

...

...

einstein.jpg: 1100, 1103, 1102

  • Sabe qué está guardado dónde (y cuándo)
  • Sabe qué espacio está ocupado y que espacio está libre

Estructura Auxiliar Administrativa

Estructuras administrativas

Bloques de Datos

En los filesystems convencionales las estructuras administrativas y los bloques de datos comparten el espacio total del disco

Si tengo un hotel con 50 habitaciones pensemos que las dos primeras se usan para guardar papeles

Filesystem

Distribuido

Filesystem Distribuído

Tipo de filesystem cuyos datos son almacenados en diversas computadoras remotas interconectadas por red

einstein.jpg:

  • Computadora X - Bloque 7170
  • Computadora Y - Bloque 2134
  • Computadora Z - Bloque 9942

Ver en el enunciado que habla de Datanodes que se conectan al proceso Filesystem y que cada uno de ellos tiene un archivo data.bin

Trabajo Práctico

YAMA es una plataforma que permite ejecutar tareas de procesamiento de datos sobre archivos almacenados de manera distribuida

CAJA NEGRA

Proceso FileSystem

El filesystem le indica al nodo de datos que quiere leer o escribir y donde.

Es un filesystem pensado para escribir poco y leer mucho

Proceso FileSystem

  • Estructuras Administrativas
    • Bitmap
    • Tabla de Archivos
    • Tabla de directorios
  • Bloque: 1MB
  • Consola

Las estructuras administrativas viven en el proceso Filesystem y son persistidas en un formato específico.

La idea es que el día de la entrega nosotros les demos un Filesystem pre-cargado y uds puedan usarlo.

einstein.jpg

  • Computadora X - Bloque 7170 y Computadora A - Bloque 1234
  • Computadora Y - Bloque 2134 y Computadora B - Bloque 4567
  • Computadora Z - Bloque 9942 y Computadora X - Bloque 7169

El filesystem del TP deja dos copias de cada bloque en cada nodo

Un “Nodo” por computadora.

Un Nodo es:

  • Un DataNode
  • Un data.bin
  • Un Worker por operación

Un “Nodo” por computadora.

Un Nodo es:

  • Un DataNode
  • Un data.bin
  • Un Worker por operación

Jobs

Job (tarea)

Requisitos:

  • Un programa de Transformación
  • Un programa de Reducción
  • Un/os archivos sobre los cuales ejecutar esas operaciones

Resultado:

Un archivo en el Filesystem con el resultado de aplicar ambos programas de manera ordenada sobre los distintos bloques del archivo

Job (tarea)

Job (tarea)

  • Las operaciones se aplican de manera ordenada y por etapas.
  • La solicitud de un job se hace desde un proceso Master
  • La coordinación de qué se hace dónde es controlada por YAMA
  • Las operaciones son realizadas por los diversos Workers

Almacenamiento

Procesamiento

Coordinación

Observen como los data.bin son necesarios tanto para el almacenamiento como para el procesamiento

Este escribe

Este lee

Entrada y Salida Estándar

Proceso

Redirección

Proceso

Proceso

|

Redirección a archivo

Proceso

Proceso

|

>

Etapas de un Job

  • Etapa de Transformación
  • Etapa de Reducción Local
  • Etapa de Reducción Global

Etapa de Transformación

  • Enviar el contenido de cada bloque de un archivo por entrada estándar al programa de transformación.
  • Al resultado, ordenarlo
  • Almacenar el resultado en un archivo temporal

Si tengo un archivo con 30 bloques tengo que tener 30 archivos temporales.

Etapa de Transformación

Etapa de Reducción Local

  • Enviar el contenido del resultado de aparear todos los archivos temporales de cada nodo como entrada estándar al programa de reducción.
  • Almacenar el resultado en un nuevo archivo temporal

Etapa de Reducción Local

Etapa de Reducción Local

reduccion

>

Etapa de Reducción Global

  • Enviar el contenido del resultado de aparear entre nodos los archivos temporales resultantes de la etapa anterior como entrada estándar al programa de reducción.
  • Almacenar el resultado en un nuevo archivo temporal

Etapa de Reducción Global

Preguntas?

Sistemas Operativos - YAMA - 2C2017 - Google Slides