Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/01/2012, 01:33
fare63
 
Fecha de Ingreso: enero-2012
Ubicación: Barquisimeto
Mensajes: 1
Antigüedad: 12 años, 3 meses
Puntos: 0
problema productor consumidor

ayuda quiero que me asesoren en un programa que tengo que realizar y quiero aprender sobre semaforos y los procesos concurrentes para poder estudiar, el problema es el suiguiente:
se requiere relaizar una aplicaion en lenguaje c o java donde el algoritmo consta de 3 modulos:
1) Maestro(amo).
2) Productor.
3) Consumidor.

cuando el mudulo maestro es ejecutado este pide los suiguientes datos:
1) el tamaño del bufer.
2) el numero de secuencis de productos consumidores.
3) el numero de productores y consumidores en cada secuecia.

el programa maestro genera los procesos productores y consumidores. dependiendo por una secuencia determinada por uno de los datos de estrada, el programa maestro ejecuta un procedimiento que interactua con los mudulos de productor y consumidor. si por ejemplo la secuencia de entrada es PPPPCPCPPC hay 3 secuencias 1) PPPPC, 2)PC ,3)PPC. estas secuencias son las que determinan el orden que seran eecutados los procedimientos mencionados.

el maestro envia al proceso productor un valor que indica la posicion del buffer donde puede colocar lo producido, el tamaño, el estado del vector buffer, posteriormente el el maesrto espera los datos del proceso, uno indica que el proceso completo su codigo y el otro indica el estado delen que encontro el buffer, si el estado esta en 0 indicaes indicacion que el porductor pudo producir, si essenal de que encontro el buffer lleno. en este ultimo caso el maestro le da el control del bufer al consumidor para que consuma y despues se lo devuelva al productor . si el maestro no encuentra ningun consumidor al cual darle el control elimina el proceso productor (solo ese proceso).

si el proceso productro ouede producir entonces envia al maestro el estado en cero, despues modifica el bufer y envia al maestro el estado del buffer yla posicion que modifico. el maestro recibe los mensajes del productor e imprime el estado del buffer.

para el consumidor el manejo es simiar con la diferencia que si el consumidor encuentra el buffer vacio, el maestro llama a un productor y luego devuelve el control al consumidor,. si el maestro no encuentra mas procesos productores entonces cancela el proceso consumidor.

cuando el consumidor puedo consumir sin problemas envia los mensajes correspondientes al maestro(posicion consumida y valor consumido)y este recibe los mensaje sy e imprime los valores consumidos.

la implementacion elejida debe garantizar que solamente un proceso productor y consumidor acceden al buffer.

en realida no se ni como empezar y entiendo poco, por no decir nada de lo que tengo que realizar asi que no me cae nada mal una ayudita gracias.

Última edición por fare63; 11/01/2012 a las 22:11