5

Lectores y escritores

Embed Size (px)

Citation preview

Imaginemos una enorme base de datos, conmuchos procesos en competencia, que intentanleer y escribir en ella.

Se puede aceptar que varios procesos lean labase de datos al mismo tiempo

Si uno de los procesos está escribiendo en labase de datos, ninguno de los demás procesosdeberá tener acceso a esta, ni siquiera loslectores.

El problema es como programar a los lectores yescritores.

Lector n

› Si semáforo ==0

Ocupa recurso (verde)

› Sino

No ocupa recurso (rojo)

Escritor n

› Si semáforo==n

Ocupa recurso (verde)

› Sino

No ocupa recurso (rojo)

Procesos=0;

Hacer› Si semáforo==0 ||semáforo==1

||semáforo==2

Lector 1 (semáforo);

Lector n (semáforo);

Escritor 1 (semáforo);

Escrito n (semáforo);

Semáforo++;

Procesos++;

Mientras (procesos<x)