Problema lectores-escritores con monitores

Problema lectores-escritores con monitores

de Matteo Fernando Naccarato Rossi -
Número de respuestas: 1

Hola, buenas tardes,

No sé si ya se discutió en la clase teórica sobre un posible error que hay en la solución propuesta al problema de lectores-escritores, pero, leyéndola, me di cuenta de que tranquilamente puede darse el caso en el que los lectores que se hayan bloqueado sean despertados a pesar de que haya escritores bloqueados, cuando claramente esta es una condición bloqueadora de lectores. Pues, cuando un escritor termina de escribir, se fija únicamente si hay lectores bloqueados y, en caso de ser así, despierta a uno.

¿No debería preguntarse también si la cantidad de escritores bloqueados es 0 para despertar a los lectores? No sé, quizás entiendo mal el tema y realmente no tienen por qué esperar a que las condiciones que hacían que se bloqueen sean todas falsas, pero se me hace raro que, al ser estas justamente condiciones del if por las cuales estos lectores se bloquean, puedan despertarse a pesar de que alguna de esas condiciones siga siendo verdadera.

Desde ya, muchas gracias y saludos.

En respuesta a Matteo Fernando Naccarato Rossi

Re: Problema lectores-escritores con monitores

de Jorge Merlino -

Esa solución dice específicamente que no da prioridad ni a los lectores ni a los escritores. Es intencional que los escritores despiertan con prioridad a los lectores si hay alguno esperando para dejarles lugar. Y lo mismo al revés hacen los lectores. Esa condición en el IF que comentás es por la misma idea de que cada proceso trata de darle prioridad al otro.

El problema de los lectores-escritores está bien resuelto siempre que no se mezclen los lectores con los escritores y no haya más de un escritor a la vez. Las prioridades son un agregado pero no son parte del problema en sí.

Saludos