martes, 6 de diciembre de 2011

Practica 1



Consiste en un pequeño juego en el que hay que dispararle a un objetivo que se mueve horizontalmente.

La utilizacion de recursos se muestra cuando se hunde espacio y cuando
se dispara la bala. La señal que se usa es SIGUSR1,
y es para anunciarle al proceso principal que se quiere lanzar el proyectil. Tambien se realiza exclusión mutua entre los hilos mediante semáforos.

La utilización de recursos se encuentra leyendo los archivos virtuales que se crean para cada proceso y cada hilo en el sistema de archivos /proc/.

Los controles son: A para moverse a la izquierda, D a la derecha y S para disparar.

Se puede compilar con el comando "gcc -o juego juego2.c -pthread -lSDL_image $(sdl-config --libs --cflags)" si se tiene el paquete libsdl1.2-dev instalado.


Para ejecutar el juego y poder ver la información de la utilización de recursos se debe lanzar desde la consola estando en el mismo directorio en que están las imágenes (con el comando cd) y escribiendo "./juego".

Las partes mas importantes del código están comentadas de forma especial entre "//------>" para que sea más fácil identificarlas.

Los hilos se manejan con la librería pthread, que para la creación de los hilos utiliza la función clone, que a su vez es sobre la cual esta implementado fork. Esto es debido a que Linux maneja los hilos como simples procesos con algunas características especiales.

Documentación de clone. Especial énfasis en la sección CLONE_THREAD.
Documentación del sistema de archivos proc. Fijarse en proc/[pid]/status, .../stat, .../statm y proc/[pid]/task/[tid]/

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best WordPress Themes