Imprimir
Categoría: Prácticas de Linux
Visitas: 6957

Práctica del C.U.M. (UEx), que consiste en un juego desarrollado en lenguaje C con las librerías SDK, en el que se crean y administran distintos procesos de forma simultánea, debiendose utilizar una serie de herramientas que permitan intercambiar información entre los procesos.

Durante el desarrollo de este programa se han utilizado dos técnicas diferentes para comunicar los distintos procesos entre sí. Se han usado tuberías y memoria compartida.


Las tuberías nos permiten crear un canal de comunicación entre procesos emparentados, de modo que un proceso realiza la operación de escritura y otro la de lectura, compartiendo de este modo información.

 

El problema que implica el uso de tuberías, es que el proceso lector intente leer de la tubería antes de que se haya escrito ninguna información, quedandose bloqueado el proceso lector. Por este motivo es necesario ayudarnos de señales que permitan al proceso que escribe, indicar al proceso lector cuando puede acceder a la información.

 

Para lograr este objetivo, los procesos que leen cargan señales asociadas a funciones de lectura de la tubería, para que cuando el proceso escritor lo decida, active la señal y se lea la información.

La memoría compartida consiste en el uso de una región de memoria a la que pueden acceder múltiples procesos. Durante el desarrollo del programa se ha usado esta técnica con aquellos procesos que se generan varias veces, como pueden ser los procesos malevolos, y las particulas, evitando tener que crear tuberías y señales para cada uno de los 4 malevolos y 5 partículas, o crear tuberías compartidas para las coordenadas, más otra tubería que comunicase de que proceso se trata.

 

DESCARGAR