Beruflich Dokumente
Kultur Dokumente
Este es un problema que modela el acceso a una base de datos. Supóngase una base de
datos, con muchos procesos que compiten por leer y escribir en ella. Se puede permitir que
varios procesos lean de la base de datos al mismo tiempo, pero si uno de los procesos está
escribiendo (es decir, modificando) la base de datos, ninguno de los demás debería tener
acceso a ésta, ni siquiera los lectores. De igual modo si existe un lector en la base de datos, el
escritor no posee acceso.
Para que el problema se considere resuelto un escritor debe realizar su tarea lo antes
posible, si interferencia de los lectores.
2
Posible solución
En este caso nos encontramos con unas condiciones de que puede haber múltiples
lectores accediendo al recurso, pero únicamente un escritor por vez en el recurso.
Una posible solución es implementar un semáforo que les dé prioridad a los escritores
al momento de acceder al recurso, y para evitar que haya un bloqueo en el que los lectores se
quedan en espera de forma indefinida hasta que no haya más escritores, se podría implementar
una condición de que él sea más corto vaya primero, si la lectura será más rápida que la
escritura, el lector ira primero. Ahora bien, si existe una lectura que sea larga se le dará
prioridad al escritor hasta acumularse una cantidad establecida de lectores en cola (por
ejemplo 3), al ocurrir esto, ellos pasarían a leer de forma conjunta con un estado de prioridad.
Ejemplificación