Descripción de las entregas

Los checkpoints se dividen entre "Presenciales" y "No presenciales". Este trabajo práctico contará con un único checkpoint presencial, a realizarse en el laboratorio de Medrano. Los checkpoints no presenciales son orientativos, y ayudan al grupo a medir el avance. De forma opcional, pueden ser validados con un ayudante, durante los sábados de soporte.

Checkpoint 1 - No presencial

Fecha: 28 de Abril

Tiempo estimado: 2 semanas

Distribución recomendada: 5 integrantes conectando los procesos)

Objetivos:

  • Familiarizarse con Linux y su consola, el entorno de desarrollo y el repositorio

  • Aplicar las Commons Libraries, principalmente las funciones para listas, archivos de conf y logs

  • Definir el Protocolo de Comunicación

  • Familiarizarse con el desarrollo de procesos servidor multihilo (proceso Coordinador, Planificador)

Implementación mínima:

  • Creación de todos los procesos que intervienen

  • Desarrollar una comunicación simple entre los procesos que permita propagar un mensaje por cada conexión necesaria

  • Implementar la consola del Planificador sin funcionalidades

Lectura recomendada:

  • Beej Guide to Network Programming - link

  • Linux POSIX Threads - link

  • SO UTN FRBA Commons Libraries - link

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 3: Procesos

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 4: Hilos

Checkpoint 2 - No presencial

Fecha: 19 de Mayo

Tiempo estimado: 3 semanas

Distribución recomendada: 1 ESI - 2 Planificador - 1 Coordinador - 1 Instancia

Objetivos:

  • Implementación de la base del Protocolo de Comunicación

  • Comprender y aplicar mmap()

  • Entender el concepto de Shared Library

  • Comprender con algo de profundidad cómo funcionan algunos algoritmos sencillos

Implementación mínima:

  • Lectura de scripts y utilización del Parser del proceso ESI

  • El Planificador debe ser capaz de elegir a un ESI utilizando un algoritmo sencillo (FIFO por ej)

  • El Coordinador debe ser capaz de distribuir por Equitative Load.

  • Desarrollo de lectura y escritura de Entradas en el Instancia (Operaciones GET/SET).

Lectura recomendada:

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 4: Hilos

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 5: Planificación

Checkpoint 3 - Presencial - Laboratorio

Fecha: 9 de Junio

Tiempo estimado: 3 semanas

Distribución recomendada: 1 ESI - 2 Planificador - 1 Coordinador - 1 Instancia

Objetivos:

  • Entender las implicancias de un algoritmo de planificación real

  • Entender el concepto de productor-consumidor y sus problemas de concurrencia

  • Implementar algoritmos similares a los usados en Memoria Virtual

Implementación mínima:

  • ESI completo

  • Planificador utilizando SJF con y sin desalojo, con todas sus colas.

  • La consola del Planificador deberá poder ejecutar los comandos "Pausar/Continuar", "Bloquear", "Desbloquear" y "Listar"

  • El Coordinador deberá tener el "Log de Operaciones" funcionando. También deberá ser capaz de comunicar bloqueos.

  • La Instancia deberá implementar todas las instrucciones. A la hora de reemplazar claves, deberá implementar el algoritmo Circular

Lectura recomendada:

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 5: Planificación

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 6: Sincronización

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 8 y 9: Memoria

Checkpoint 4 - No Presencial

Fecha: 30 de Junio

Tiempo estimado: 3 semanas

Distribución recomendada: 2 Planificador - 2 Coordinador - 1 Instancia

Objetivos:

  • Entender las implicancias de un algoritmo de planificación real

  • Utilizar el concepto de "interfase" para que cada proceso planifique de forma similar, soportando diferentes algoritmos.

Implementación mínima:

  • Planificador utilizando HRRN

  • La consola del Planificador deberá poder ejecutar los comandos "kill" y "status"

  • El Coordinador deberá ser capaz de distribuir utilizando "LSU" y "KE". Implementar retardos

  • La Instancia deberá ser capaz de soportar desconexiones y reincorporaciones. Además se deberá implementar el algoritmo LRU

Lectura recomendada:

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 5: Planificación

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 6: Sincronización

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 8 y 9: Memoria

Entrega final - Presencial - Laboratorio

Fecha: 14 de Julio

Tiempo estimado: 2 semanas

Distribución recomendada: 1 Planificador - 1 Coordinador - 1 Instancia - 2 Testing general y arreglos

Objetivos:

  • Implementar un algoritmo de detección de deadlocks

  • Probar el TP en un entorno distribuido

  • Realizar pruebas intensivas

  • Finalizar el desarrollo de todos los procesos

Implementación mínima:

  • La consola del Planificador deberá poder ejecutar el comando "deadlock"

  • La Instancia deberá ser capaz de soportar dumps y compactación. Se deberá implementar el algoritmo BSU

Lectura recomendada:

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 6: Deadlock

  • Sistemas Operativos, Silberschatz, Galvin - Capítulo 10 y 11: File System

Segunda fecha de entrega: 21 de Julio

Última fecha de entrega: 4 de Agosto

Last updated