SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
Lector escritor UPSE
1. PROBLEMA DE LECTORES ESCRITORES
Evelyn Flores1, Carmen Loor2, Alexis Carvajal3, Leonardo Tomalo4, Jazmín
Limón5.
evelyn_flores1312@hotmail.com1,carmenk74@hotmail.com2, donalexisdr@gmail.com3, leo.tomalo@gmail.com4,
jazminlimon-07@hotmail.com5.
Facultad de Sistemas y Telecomunicaciones
Universidad Estatal Península de Santa Elena
La Libertad – Ecuador
dquirumbay@upse.edu.ec
Sistemas Operativos
PROBLEMA DE LECTORES ESCRITORES.
RESUMEN
En los problemas clásicos de comunicación de procesos, existen varios, pero en este
documento analizaremos “EL PROBLEMA DE LECTORES ESCRITORES”.
Tanto lectores y escritores pueden tener acceso a archivos pero no al mismo tiempo, todo
es de la siguiente manera:
Si el escritor hace modificaciones entonces el lector deberá esperar o viceversa.
Ambos pueden hacer las veces de lector pero no escritor a la vez.
Al terminar de realizar un proceso escritor, este debe permitir el acceso al
siguiente proceso en este caso a los lectores, que se pueden convertir en
escritores pero teniendo en cuenta sus restricciones.
Existen restricciones que se deben seguir para que el proceso escritor no interfiera con
los procesos lectores.
Memoria compartida con la restricción antes mencionada.
Escritores preferencias.
Bloqueo de datos compartidos dentro de un límite de tiempo.
Dentro de cada uno de las restricciones se detalla el algoritmo que ha de seguirse para
su solución, es importante asimilar y tener en cuidado de que ningún proceso se
sobrepone a otros o al mismo tiempo para lograr su acción.
2. I Introducción
Con frecuencia, los procesos
necesitan comunicarse con otros
procesos. Por ejemplo, en una
canalización del Shell, la salida del
primer proceso se debe pasar al
segundo proceso y así
sucesivamente. Por ende, existe una
necesidad de comunicación entre
procesos, de preferencia en una
forma bien estructurada sin utilizar
interrupciones.
Sin embargo, existen algunos
problemas de comunicación de
procesos, en este caso detallaremos
el problema de lectores escritores,
propuesto por Courtois en 1971.
En este problema existe un
determinado objeto que puede ser un
archivo, un registro dentro de un
archivo, etc., que va a ser utilizado y
compartido por una serie de procesos
concurrentes. Algunos de estos
procesos sólo van a acceder al objeto
sin modificarlo, mientras que otros
van a acceder al objeto para
modificar su contenido. Esta
actualización implica leerlo, modificar
su contenido y escribirlo. A los
primeros procesos se les denomina
lectores y a los segundos se les
denomina escritores.
Si tomamos el ejemplar de una
enorme base de datos, un sistema de
reservaciones de una línea aérea,
con muchos procesos en
competencia, que intentan leer y
escribir en ella. Se puede aceptar que
varios procesos lean 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 procesos
deberá tener acceso a esta, ni
siquiera los lectores. El problema es
como programar a los lectores y
escritores.
Se deben considerar las siguientes
reglas de acceso a la base de datos:
Solamente puede haber un escritor al
mismo tiempo, si un escritor o un
lector quiere utilizar la base de datos
y hay un escritor utilizándola,
entonces debe esperar.
Puede haber varios lectores
utilizando la base de datos al mismo
tiempo, pero si un escritor quiere usar
la base de datos mientras los lectores
la usan, deberá esperar.
3. El último lector en usar la base de
datos debe habilitarla para que pueda
ingresar el siguiente escritor que
estaba esperando la base de datos o
en todo caso al siguiente proceso que
requiera usarla.
II Desarrollo
“El problema de los lectores y
escritores (Courtois et al., 1971), que
modela el acceso a una base de
datos”. [1]
Este tipo de conflicto se da cuando un
usuario quiere acceder a la misma
acción que accede el otro usuario.
Por lo que no puede llamar al mismo
ya que está siendo ocupado.
Generalmente se presenta en lo que
respecta a base de datos, cuando se
quiere realizar las acciones de
escribir y ver lo que se tiene en la
base de datos; por lo que, si algún
usuario solo realiza la acción de
observar el contenido la base de
datos y otro usuario puede estar
intentando modificar la misma; al
usuario que quiere realizar la opción
de modificar la base de datos tiene
que esperar hasta que el usuario que
ingreso primero no estén realizando
ya la acción.
Y si es en el caso contrario el o los
usuarios no podrán leer el contenido
de la base de datos por lo que está
siendo modificada, y hasta que este
termine no podrán acceder.
Existe una solución de prioridad en la
cual los lectores son los superiores a
los escritores (modificadores).
Otro ejemplo de este tipo de
problemas es:
“Hay un objeto de datos (fichero de
texto) que es utilizado por varios
procesos, unos leen y otro
que escribe. Solo puede utilizar el
recurso un proceso y solo uno, es
decir, o bien un proceso estará
escribiendo o bien leyendo, pero
nunca ocurrirá simultáneamente
(teniendo en cuenta que si no lo está
utilizando nadie, tendrá preferencia el
escritor ante el lector). ” [2]
Cuando un escritor va a realizar su
tarea debe estar preparado para no
interferir los procesos lectores, las
mismas que presentan las siguientes
restricciones.
4. En este tipo de problemas existen
varias restricciones que han de
seguirse:
Sólo se permite que un escritor
tenga acceso al objeto al
mismo tiempo. Mientras el
escritor esté accediendo al
objeto, ningún otro proceso
lector ni escritor podrá acceder
a él.
Se permite, sin embargo, que
múltiples lectores tengan
acceso al objeto, ya que ellos
nunca van a modificar el
contenido del mismo. En este
tipo de problemas es necesario
disponer de servicios de
sincronización que permitan a
los procesos lectores y
escritores sincronizarse
adecuadamente en el acceso
al objeto.
PRIMER PROBLEMA DE LOS
LECTORES-ESCRITORES [3]
Como primer problema tenemos un
área de memoria compartida con las
restricciones detalladas
anteriormente. Podemos proteger los
datos compartidos detrás de una
exclusión mutua, en cuyo caso no
hay dos hilos donde pueden acceder
a los datos al mismo tiempo. Sin
embargo, esta solución no es óptima,
ya que un lector de R 1 pudiera tener
la cerradura, y luego otro lector
de R solicitudes de acceso. Es por
esto la restricción de que ningún
lector se hizo esperar si la
participación está abierta actualmente
para la lectura.
Figura 1: Lectores-escritores
SEGUNDO PROBLEMA DE LOS
LECTORES-ESCRITORES [3]
La motivación para el segundo
problema de los lectores-escritores
es, en la que se añade la restricción
de que ningún escritor, una vez
añadido a la cola, se hizo esperar
más de lo necesario. Esto también
se llama escritores preferencia.
5. Figura 2: Lectores-escritores
TERCER PROBLEMA DE LOS
LECTORES-ESCRITORES [3]
El tercer problema de los lectores-
escritores, añade la restricción de
que ningún hilo se permitirá a morir
de hambre; es decir, la operación de
obtener un bloqueo en los datos
compartidos siempre terminará en
una cantidad limitada de tiempo.
Figura 3: lectores-escritores
CONCLUSIONES.
Este problema de lectores y
escritores se debe tomar en cuenta
en la creación de un Sistema
Operativo para el control de
concurrencias, ya que esto no se
trata de solo bloquear y habilitar
recursos compartidos para los
procesos que los utilizan, sino
también es importante diferenciar
entre las operaciones que se realizan
en esas áreas compartidas, tales
como: en variables, en memoria,
registros, archivos, tablas, etc. Se
debe saber cuáles son de lectura y
cuales son de escritura, este proceso
es muy crítico, porque si la operación
que se está realizando sobre los
archivos es de lectura y no afecta el
valor de la variable o el contenido de
un archivo, debería poder compartirse
el archivo de manera simultánea
como al de un proceso, lo critico es
(cuidando la consistencia y la
coherencia de los datos de un
archivo), que se escriba sobre ellos.
De esta manera los Sistemas
Operativos tienen muy bien
programados sus algoritmos de
lectura y escritura, no solo para saber
si el recurso está siendo utilizado por
6. un proceso, sino también para saber
qué tipo de operación se está
realizando sobre el mismo.
Por eso se deben satisfacer las
siguientes condiciones o reglas:
Cualquier número de lectores
puede leer el archivo
simultáneamente.
o Esto quiere decir que si solo se
está leyendo el archivo,
cualquier cantidad de procesos
pueden también estar leyendo
al mismo tiempo.
Solo puede escribir en el
archivo un escritor en cada
instante.
o Esto se refiere a que si se está
escribiendo el archivo solo se
puede estar haciendo este
proceso, los demás procesos
podrían quedarse como ciclos
pendientes en la programación
del Sistema Operativo.
Si un escritor está accediendo
al archivo, ningún lector puede
leerlo.
o De alguna manera, si se está
escribiendo, nadie puede leer
el archivo porque está siendo
modificado, es por eso que no
se puede acceder al archivo.
RECOMENDACIONES.
Los lectores y escritores, es un tipo
de problema clásico de comunicación
entre procesos, que a su vez es de
suma importancia en el momento de
empezar a crear un Sistema
Operativo para el control de
concurrencias. Por eso, si se va a
diseñar un Sistema Operativo se
debe tomar en cuenta este tipo de
problema en su creación y diseño,
observando y analizando
detenidamente el algoritmo que se
enfrasca en el problema de lectores y
escritores.
Biografía
Edsger W. Dijkstra
Nació el 11 de Mayo de 1930 en
Rotterdam, Netherlands, Falleció el 6
de Agosto de 2002 a los 72 años en
Nuenen, Netherlands.
Holandés Informático y Matemático,
trabajó como Programador en
Mathematisch Centrum en
Amsterdam (1952 1962), fue profesor
de Matemáticas en Eindhoven
University of Technology(1962-1984)
En 1968 Dijkstra fue quien dio una
solución al problema de la exclusión
7. mutua, con la introducción del
concepto de semáforo binario. Está
herramienta de sincronización brinda
una solución al problema de la
exclusión mutua restringiendo el
acceso simultáneo a los recursos
compartidos [4]
Trabajos citados
[2] Comunicacion entre procesos S.O. (s.f.).
Obtenido de
https://www.scribd.com/doc/91486
274/Problema-de-Comunicacion-
Entre-Procesos-Sistemas-Operativos-
1#scribd
DISCA/DSIC, E. d. (s.f.). Comunicacion y
sincronizacion de procesos. Obtenido
de http://www.redes-
linux.com/apuntes/so1/teoria/tema
4.pdf
[3] Problemas Clasicos comunicación entre
procesos. (s.f.). Obtenido de
http://lsi.vc.ehu.es/pablogn/docenci
a/manuales/SO/TemasSOuJaen/CON
CURRENCIA/4ProblemasClasicosdeC
omunicacionentreProcesos.htm
[2] Wiki. (s.f.). Obtenido de Enciclopedia
Libre:
https://es.wikipedia.org/wiki/Edsger
_Dijkstra
[4] Wikipedia. (s.f.). Obtenido de
Enciclopedia Libre:
https://en.wikipedia.org/wiki/Reader
s%E2%80%93writers_problem