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
p7y 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 llamadop7.tgzp.e. así usando el terminal:tar cfz p7.tgz p7