Sincronizacion y Comunicacion de Procesos.

A

Hola buenas tengo una duda con este problema de sincronizacion y comunicacion de procesos y es que no se que tipo de problema es ( Lector-Escritor o Productor-Consumidor ).

Se tiene un puente que cruza un coche de norte a sur o al reves. El puente solo permite el paso de un coche y cada cierto tiempo ( retraso) se debe cortar el paso en un sentido y abrir el sentido contrario. Antes de abrir el sentido contrario deberan pasar todos los coches que estaban esperando hasta ese momento. De inicio se les da paso a los del Norte. Y nos pide que hagamos 3 procesos :

-Coche norte
-Coche sur
-Cambio de sentido

1)Exponer el metodo utilizado y razonarlo.
2) Implementarlo en pseudocodigo.

En primer lugar dudo que sea Productor Consumidor y me decanto mas por Lector - Escritor, el puente sería el recurso en el que los procesos escritores ( Coche norte y Coche sur ) introdujeran los coches. Lo que no se es si aqui habria algun proceso lector y que haria el proceso Cambio de sentido porque hacer solo una funcion para dar paso a uno u otro no se.

Gracias de antemano.

A

Algun alma que sepa algo acerca del problema? :(

LOc0

Hola. No entiendo exactamente qué quieres, pero para mi es un caso de productor-consumidor claro. Los coches se van "creando" en un extremo y son "consumidos" por el otro. Según van llegando desde el norte van cruzando. Faltarían 3 variables: el tiempo que tarda un coche en cruzar, cada cuánto tiempo llega un coche nuevo y cuántos coches caben en el puente al mismo tiempo (búffer). Por ejemplo, podrías tener que sólo cabe un coche en el puente a la vez, que tarda 1 seg en cruzar si viene desde el norte y 2 segundos si viene del sur y que cada seg llega un coche nuevo desde el norte y cada 2 seg viene uno del sur. El proceso cambio de sentido simplemente intercambia los roles cada cierto tiempo. Necesitarás también una cola de coches del norte y otra del sur.

Espero que esto te "aclare" algo.

Salu2 ;)

A

Yo es que al principio lo vi también como productor consumidor , pero luego me surgió la duda de que si coche norte y coche sur eran procesos productores ya que los dos "generan" coches que tienen que pasar por el puente ¿que proceso sería el consumidor? o no tiene porque haber ningun proceso consumidor y simplemente el puente es el que los consume?

LOc0

Hay varias formas de abstraer eso. Una es que el que "consume" los coches es el proceso "cambio_de_sentido". Cada coche que consume ese proceso es un coche que cruza, ya está. El proceso cambio de sentido estará consumiendo coches del lado norte hasta que dejen de llegar (y haya pasado un tiempo X). Entonces se pondrá a "consumir" coches del lado sur.

Salu2 ;)

A

Si, esa es la idea porque sino no se para qué la función de cambio de sentido. Ahora tiene mas "sentido" xdd
Bueno muchas gracias, ya pondré otro problemilla que tengo de este estilo que también me da lugar a dudas.

Un saludo y gracias de nuevo.

Usuarios habituales