Añadir soporte de concurrencia a un juego

  • Esta práctica consiste en modificar la implementación de un juego para darle soporte de concurrencia. Se trata de la versión en C++ del juego Galaga para GNU/Linux + X11: Xgalaga++.
  • Descarga la última versión disponible de Xgalaga++, compílalo y ejecútalo en GNU/Linux. Debería funcionar sin problemas.
  • El código está escrito siguiendo un esquema orientado a objetos, haciendo uso en determinadas partes genericidad así como algún patrón de desarrollo software (Singleton).
  • Toda la ejecución del juego se realiza en un solo hilo y aquí es donde entra el desarrollo de esta práctica optativa:
    • Estudia el código e identifica qué partes del mismo son susceptibles de ejecutarse concurrentemente.
    • Elije alguna o algunas de ellas e implementa el soporte de concurrencia mediante el uso de hilos de la biblioteca estándar de C++.
    • Analiza las pegas que has encontrado para implementar tu código así como el resultado final (¿observas mejores tiempos de ejecución?, ¿hay deadlocks?, ¿aparece algún fallo que en la versión mono-hilo no había?, etc…).

Entrega

  • Se realiza en pracdlsi en las fechas allí indicadas. Puedes entregar tantas veces como quieras, solo se corrige la ultima entrega.
  • Crea una carpeta llamada p7 y dentro de ella estarán el código y archivos de texto o PDF donde contestas a las preguntas. Esta carpeta la comprimes en un archivo llamado p7.tgz p.e. así usando el terminal: tar cfz p7.tgz p7