Sie sind auf Seite 1von 9

Escuela: sistemas

Tema: Problemas clásicos de IPC


(lectores y escritores)
Integrantes: Gabriel Calderón
Lectores y Escritores
En el presente trabajo resolveremos un
problema clásico dentro del mundo de los
sistemas operativos.
Resolvemos el problema de Lectores/Escritores
con prioridad Lectores.
Presentaremos un programa que muestra por
pantalla la información que posee el archivo
pasado como parámetro por el usuario.
ANALISIS DEL PROBLEMA
Existe un área de datos compartida entre una serie de
procesos, algunos sólo leen los datos (lectores) y otros sólo
escriben datos (escritores). El problema es satisfacer las
siguientes condiciones:
1. Cualquier número de lectores puede leer el archivo
simultáneamente.
2. En el archivo sólo puede escribir un escritor en cada
instante.
3. Si un escritor está accediendo al archivo, ningún lector
puede leerlo.
El problema general de exclusión mutua, consiste en permitir
a cualquiera de los procesos (lectores o escritores) leer o
escribir en el área de datos.
PLANTEAR SOLUCION

En esta solución, el primer lector que obtiene el


acceso a la base de datos realiza un while sobre
el semáforo bd. Los lectores siguientes sólo
incrementan un contador, rc. Al salir los lectores,
éstos decrementan al contador, y el último en
salir realiza un signal sobre el semáforo, lo que
permite entrar a un escritor bloqueado, si existe.
PRIORIDAD A LOS LECTORES
• Es una solución que utiliza semáforos para
respetar la exclusión mutua. Se permite el acceso
a varios lectores, pero mientras que un
escritor está accediendo a los datos compartidos,
no se permite acceder a ningún escritor o lector.
• El primer lector que intenta acceder debe
esperar en el semáforo, Cuando haya al menos un
lector, los lectores siguientes no necesitan
esperar para entrar, se les da prioridad.
PRIORIDAD A LOS ESCRITORES
• Esta solución garantiza que no se permitirá
acceder a los datos a ningún nuevo lector una
vez que, al menos, un escritor haya declarado su
deseo de escribir. Se utilizan los mismos
semáforos que en la solución anterior y se
añaden otros más.
ALGORITMO
Lector
Esperar a que no haya escritores
acceder a la b.d.
Avisar a los escritores que esperan

Escritor
Esperar a que no haya lectores ni escritores
acceder a la b.d.
Avisar a los lectores o escritores que esperan
CODIGO
/' usa su imaginecidn “/
/• co‹›troia el acceeo a 're’ "/
/' controls el acceeo a la base de datos ’/
/” mm. de procesoe ‹yze teen o quieten leer “/

/" repetlr indefkiidarrierite “/


/" obtener acceso excluslvo a 're' “/
/" ahora un Botor rn&s ’/
If (re - J) down(6db): /” ai éste es M mirror lector ... "/
n liberar at ac‹›eso exciueivo a 'in’ "/

/" obtener acoeso cxclusivo a ’re’ “/


/" ahora un lector menos ’/
/” 614ete es & iXtIrr›o leotor ... "/
/” libarar at exclusivo a 're' “/
/" mgidn no critics "/

/" repetir in‹ tinkJernwite "/


/” regidn no crftice ’/
/" obtencr eocoso exclueivo “/
/" ectualizar foe datoe "/
/' iibe‹ar el ecceso exdusivo "/

zs 2•t9. U s solucién xl prcblcma dc lcctxxcs y cscritorcs.

Das könnte Ihnen auch gefallen