1 Añadir soporte de concurrencia a un juego.

  • 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…).

2 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 p9 y dentro de ella estarán el código y archivos de texto o PDF donde detallas tu trabajo. Esta carpeta la comprimes en un archivo llamado p9.tgz p.e. así usando el terminal:

    tar cfz p9.tgz p9