Está en la página 1de 58

Facultad de Ingeniería

CURSO: SISTEMAS DISTRIBUIDOS

TEMA: EXCLUSIÓN MUTUA

PROFESOR: MANUEL ENRIQUE SAENZ TARAZONA

GRUPO: 7

INTEGRANTES:

*Morales Segovia, Lucho Gregorio


 Quezada Vergaray, Juan Miguel
 Ramírez Carranza, Maycol Jefferson
 Tocto Espinoza, Victor Raul
CONTENIDO

INTRODUCCIÓN ........................................................................................................................ 5
OBJETIVO................................................................................................................................... 5
CAPITULO I ................................................................................................................................ 6
1 EXCLUSIÓN MUTUA ........................................................................................................ 6
1.1 Funciones básicas de exclusión mutua ............................................................. 9
1.2 Propiedades: ........................................................................................................... 11
1.3 Rendimiento: ........................................................................................................... 11
1.4 Ejemplo ..................................................................................................................... 15

CAPITULO 2 .............................................................................................................. 16
2 ALGORITMO CENTRALIZADOS ................................................................................. 16
2.1 Ventajas .................................................................................................................... 17
2.2 Desventajas ............................................................................................................. 17
2.3 Rendimiento............................................................................................................. 18
2.3.1 Algoritmos centralizados ............................................................................. 18
2.3.2 Algoritmos centralizados Inconvenientes ............................................... 19
2.4 Ejemplo ..................................................................................................................... 19

CAPITULO 3 .............................................................................................................. 21
3 ALGORITMO DE ANILLO DE FICHAS (TOKEN RING) .......................................... 21
3.1 El estándar IEEE 802.5 .......................................................................................... 22
3.2 Funcionamiento de un anillo token ................................................................... 23
3.3 Características principales .................................................................................. 26
3.3.1 Mecanismos de gestión ................................................................................ 26
3.4 Medios de Transmisión ........................................................................................ 27
3.5 Prioridades ............................................................................................................... 27
3.6 Ventajas: ................................................................................................................... 28
3.7 Desventajas: ............................................................................................................ 28
3.8 Token Passing......................................................................................................... 29
3.9 Características ........................................................................................................ 29
3.10 interfaz de datos distribuida por fibra .............................................................. 30
3.10.1 Ventajas: ........................................................................................................... 30
3.10.2 Desventajas: .................................................................................................... 31
3.11 Rendimiento: ........................................................................................................... 31
3.12 Unidad de acceso a múltiples estaciones (MAU). ......................................... 33
3.13 Ejemplos ................................................................................................................... 35
3.14 APLICACIÓN SIMULACIÓN JAVA ...................................................................... 37

CAPÍTULO 4 .............................................................................................................. 39
4 ALGORITMO DISTRIBUIDO. ........................................................................................ 39
4.1 Rendimiento: ........................................................................................................... 40
4.2 El Algoritmo Distribuido de Ricart y Agrawala: ............................................. 41
4.3 Ejemplo ..................................................................................................................... 44
4.4 Algoritmo de Maekawa.......................................................................................... 48
4.4.1 Algoritmos de maekawa, algoritmos de votación ................................. 49
4.4.2 Eclusión mutua distribuida (algoritmo de maekawa) .......................... 49
5 CONCLUSIONES............................................................................................................. 55
6 BIBLIOGRAFÍA ................................................................................................................ 56
INTRODUCCIÓN

En los sistemas distribuidos existen un conjunto de procesos que interactúan con


el fin de resolver un problema. En muchos casos, existen vínculos entre estos
procesos para trabajar en forma cooperativa; una manera de compartir el trabajo
es utilizando recursos compartidos, como pueden ser dispositivos, código, datos,
etc. Algunos de los recursos que son compartidos, en un determinado instante
de tiempo pueden ser solamente accedidos por un número limitado de procesos,
el caso más conocido que sólo un proceso pueda tener acceso a ese recurso,
denominado exclusión mutua.

La exclusión mutua es la actividad que realiza el sistema operativo para evitar


que dos o más procesos ingresen al mismo tiempo a un área de datos
compartidos o accedan a un mismo recurso.

En otras palabras, es la condición por la cual, de un conjunto de procesos, sólo


uno puede acceder a un recurso dado o realizar una función dada en un instante
de tiempo.

El método garantiza exclusión mutua. Pero tiene limitaciones. El coordinador


puede fallar y todo se viene abajo. Si un cliente no obtiene respuesta

OBJETIVO

El objetivo principal del informe es realizar un análisis de la exclusión mutua y


los tipos de algoritmos que más son empleados en los sistemas distribuidos,
algoritmo centralizado, algoritmo distribuido y algoritmo de anillo de token. Sin
dejar de lado aquellos que por su especial interés deban ser revisados, para así
poder extraer las características más destacables y poder aplicarlas en la
elección del algoritmo más adecuado a un sistema distribuido.
CAPITULO I
1 EXCLUSIÓN MUTUA

Exclusión Mutua es la comunicación requerida entre dos o más procesos que se


están ejecutando en paralelo y que necesitan a la vez el uso de un recurso no
compartible. Consiste en asignar el recurso no compartible a sólo uno de los
procesos, mientras que los otros deben permanecer a la espera hasta que
finalice la utilización de dicho recurso por el proceso al que se le asigno. Cuando
este proceso termine, el recurso será asignado a uno de los procesos en espera.
Se asegura el correcto uso del recurso.1

Los algoritmos de exclusión mutua (comúnmente abreviada como mutex por


mutual exclusión) se usan en programación concurrente para evitar que
fragmentos de código conocidos como secciones críticas accedan al mismo
tiempo a recursos que no deben ser compartidos.

La mayor parte de estos recursos son las señales, contadores, colas y otros
datos que se emplean en la comunicación entre el código que se ejecuta cuando
se da servicio a una interrupción y el código que se ejecuta el resto del tiempo.
Se trata de un problema de vital importancia porque, si no se toman las
precauciones debidas, una interrupción puede ocurrir entre dos instrucciones
cualesquiera del código normal y esto puede provocar graves fallos.

La técnica que se emplea por lo común para conseguir la exclusión mutua es


inhabilitar las interrupciones durante el conjunto de instrucciones más pequeño
que impedirá la corrupción de la estructura compartida (la sección crítica). Esto
impide que el código de la interrupción se ejecute en mitad de la sección crítica.2

En un sistema multiprocesador de memoria compartida, se usa la operación


indivisible test-and-set sobre una bandera, para esperar hasta que el otro

1
Galeón, Pro-Concurrente.
2
Exclusión mutua (informática), Wikipedia.
procesador la despeje. La operación test-and-set realiza ambas operaciones sin
liberar el bus de memoria a otro procesador. Así, cuando el código deja la
sección crítica, se despeja la bandera. Esto se conoce como spin lock o espera
activa.

Algunos sistemas tienen instrucciones multioperación indivisibles similares a las


anteriormente descritas para manipular las listas enlazadas que se utilizan para
las colas de eventos y otras estructuras de datos que los sistemas operativos
usan comúnmente.

La mayoría de los métodos de exclusión mutua clásicos intentan reducir la


latencia y espera activa mediante las colas y cambios de contexto. Algunos
investigadores afirman que las pruebas indican que estos algoritmos especiales
pierden más tiempo del que ahorran.

A pesar de todo lo dicho, muchas técnicas de exclusión mutua tienen efectos


colaterales. Por ejemplo, los semáforos permiten interbloqueos (deadlocks) en
los que un proceso obtiene un semáforo, otro proceso obtiene el semáforo y
ambos se quedan a la espera de que el otro proceso libere el semáforo. Otros
efectos comunes incluyen la inanición, en el cual un proceso esencial no se
ejecuta durante el tiempo deseado, y la inversión de prioridades, en el que una
tarea de prioridad elevada espera por otra tarea de menor prioridad, así como la
latencia alta en la que la respuesta a las interrupciones no es inmediata.

La mayor parte de la investigación actual en este campo pretende eliminar los


efectos anteriormente descritos. Si bien no hay un esquema perfecto conocido,
hay un interesante esquema no clásico de envío de mensajes entre fragmentos
de código que, aunque permite inversiones de prioridad y produce una mayor
latencia, impide los interbloqueos.3

Algunos ejemplos de algoritmos clásicos de exclusión mutua son:

3
Wikipedia, Exclusión mutua (informática).
Algoritmo de dekker

El algoritmo de Dekker es un algoritmo de programación concurrente para


exclusión mutua, que permite a dos procesos o hilos de ejecución compartir un
recurso sin conflictos. Fue uno de los primeros algoritmos de exclusión mutua
inventados, implementado por Edsger Dijkstra.

Si ambos procesos intentan acceder a la sección crítica simultáneamente, el


algoritmo elige un proceso según una variable turno. Si el otro proceso está
ejecutando en su sección crítica, deberá esperar su finalización.

Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los primeros
cuatro. La versión 5 es la que trabaja más eficientemente, siendo una
combinación de la 1 y la 4.

 Versión 1: Alternancia estricta. Garantiza la exclusión mutua, pero su


desventaja es que acopla los procesos fuertemente, esto significa que los
procesos lentos atrasan a los procesos rápidos.
 Versión 2: Problema interbloqueo. No existe la alternancia, aunque ambos
procesos caen a un mismo estado y nunca salen de ahí.
 Versión 3: Colisión región crítica no garantiza la exclusión mutua. Este
algoritmo no evita que dos procesos puedan acceder al mismo tiempo a
la región critica.
 Versión 4: Postergación indefinida. Aunque los procesos no están en
interbloqueo, un proceso o varios se quedan esperando a que suceda un
evento que tal vez nunca suceda. 4

Algoritmo de peterson

El algoritmo de Peterson es un algoritmo de programación concurrente para


exclusión mutua, que permite a dos o más procesos o hilos de ejecución
compartir un recurso sin conflictos, utilizando sólo memoria compartida para la
comunicación.

4
Wikipedia, Algoritmo de Dekker.
Peterson desarrolló el primer algoritmo (1981) para dos procesos que fue una
simplificación del algoritmo de Dekker para dos procesos. Posteriormente este
algoritmo fue generalizado para que funcione para N procesos.5

1.1 Funciones básicas de exclusión mutua

La exclusión mutua es la actividad que realiza el sistema operativo para evitar


que dos o más procesos ingresen al mismo tiempo a un área de datos
compartidos o accedan a un mismo recurso.

En otras palabras, es la condición por la cual, de un conjunto de procesos, sólo


uno puede acceder a un recurso dado o realizar una función dada en un instante
de tiempo.

En sistemas de multiprogramación con un único procesador, los procesos se


intercalan en el tiempo para dar la apariencia de ejecución simultánea.

Uno de los grandes problemas que nos podemos encontrar es que el hecho de
compartir recursos está lleno de riesgos.

Por ejemplo, si dos procesos hacen uso al mismo tiempo de una variable global
y ambos llevan a cabo tanto operaciones de lectura como de escritura sobre
dicha variable, el orden en que se ejecuten estas lecturas y escrituras es crítico,
puesto que se verá afectado el valor de la variable.6

Enter(): Acceso a la región critica (bloqueo). se denomina sección crítica o


región crítica, en programación concurrente de ciencias de la computación, a la
porción de código de un programa de ordenador en la que se accede a un
recurso compartido (estructura de datos o dispositivo) que no debe ser accedido
por más de un proceso o hilo en ejecución. La sección crítica por lo general
termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que
esperar un período determinado de tiempo para entrar. Se necesita un
mecanismo de sincronización en la entrada y salida de la sección crítica para

5
Wikipedia, Algoritmo de Peterson.
6
Cidecame, Exclusión Mutua
asegurar la utilización en exclusiva del recurso, por ejemplo un semáforo,
monitores, el algoritmo de Dekker y Peterson, los candados.

El acceso concurrente se controla teniendo cuidado de las variables que se


modifican dentro y fuera de la sección crítica. La sección crítica se utiliza por lo
general cuando un programa multihilo actualiza múltiples variables sin un hilo de
ejecución separado que lleve los cambios conflictivos a esos datos. Una
situación similar, la sección crítica puede ser utilizada para asegurarse de que
un recurso compartido, por ejemplo, una impresora, pueda ser accedida por un
solo proceso a la vez.

La manera en cómo se implementan las secciones puede variar dependiendo de


los diversos sistemas operativos.

Sólo un proceso puede estar en una sección crítica a la vez.

El método más común para evitar que dos procesos accedan al mismo tiempo a
un recurso es el de la exclusión mutua.7

Operations(): Manipulación de los recursos compartidos. La clave para


evitar problemas aquí y en muchas otras situaciones en las que se involucran la
memoria compartida, los archivos compartidos y todo lo demás compartido es
buscar alguna manera de prohibir que más de un proceso lea y escriba los datos
compartidos al mismo tiempo. Dicho en otras palabras, lo que necesitamos es
exclusión mutua, cierta forma de asegurar que, si un proceso está utilizando una
variable o archivo compartido, los demás procesos se excluirán de hacer lo
mismo. La dificultad antes mencionada ocurrió debido a que el proceso B
empezó a utilizar una de las variables compartidas antes de que el proceso A
terminara con ella. La elección de operaciones primitivas apropiadas para lograr
la exclusión mutua es una cuestión de diseño importante en cualquier sistema
operativo y un tema que analizaremos con mayor detalle en las siguientes
secciones.8

7
Wikipedia, sección crítica.
8
Castellanos Luis, Sistemas Operativos
Exit(): Liberación del recurso (despierta a procesos en espera). En un
sistema con un solo procesador, la solución más simple es hacer que cada
proceso deshabilite todas las interrupciones justo después de entrar a su región
crítica y las rehabilite justo después de salir. Con las interrupciones
deshabilitadas, no pueden ocurrir interrupciones de reloj. Después de todo, la
CPU sólo se conmuta de un proceso a otro como resultado de una interrupción
del reloj o de otro tipo, y con las interrupciones desactivadas la CPU no se
conmutará a otro proceso. Por ende, una vez que un proceso ha deshabilitado
las interrupciones, puede examinar y actualizar la memoria compartida sin temor
de que algún otro proceso intervenga.9

1.2 Propiedades:
 Seguridad: Como máximo un proceso puede estar ejecutado en la
sección crítica a la vez.
 Vivacidad: Eventualmente se producen entradas y salidas en la
sección crítica.
 Ordenación: Los procesadores acceden a la región crítica en base a
unos criterios de ordenación (causalidad temporal/Lamport).

1.3 Rendimiento:
 Ancho de banda: Proporcional al número de mensajes transmitidos.

• El protocolo consume 2(N-1) mensajes. N-1 para la petición y N-1


respuestas. Si existen comunicación multicast sólo N mensajes.
• El acceso al recurso implica dos mensajes (aunque el recurso esté
libre).

 Retardo del cliente: En la ejecución de cada una de las operaciones


enter()y en cada operación exit().

9
Castellanos Luis, Sistemas Operativos.
 Throughput del sistema: Ratio de acceso al recurso por una batería de
procesos que lo solicitan. Evalúa el retardo de sincronización entre
clientes.

• Si dos procesos compiten por el acceso a la sección critica ambos


habrán recibido N 2 respuestas El de menor reloj tendrá la
respuesta El de menor reloj tendrá la respuesta del otro. Al salir
éste el siguiente se indicará con sólo 1 mensaje.
• La finalización de un acceso a la región critica implica un mensaje
de salida y un OK al siguiente proceso en espera.

 Tolerancia a fallos: Comportamiento del algoritmo ante diferentes


modalidades de fallo.

Cierre de exclusión mutua


En ciencias de la computación, los cierres de exclusión mutua son un mecanismo
de sincronización que limita el acceso a un recurso compartido por varios
procesos o hilos en un ambiente de ejecución concurrente, permitiendo así la
exclusión mutua.

Cuando un elemento es compartido por más de un hilo, pueden ocurrir


condiciones de carrera si el mismo no es protegido adecuadamente. El
mecanismo más simple para la protección es el cierre o lock. En general cuando
debe protegerse un conjunto de elementos, se le asocia un lock. Cada
proceso/hilo para tener acceso a un elemento del conjunto, deberá bloquear, con
lo que se convierte en su dueño. Esa es la única forma de ganar acceso. Al
terminar de usarlo, el dueño debe desbloquear, para permitir que otro
proceso/hilo pueda tomarlo a su vez. Es posible que mientras un proceso/hilo
esté accediendo a un recurso (siendo por lo tanto dueño del lock), otro
proceso/hilo intente acceder. Esta acción debe ser demorada hasta que el lock
se encuentre libre, para garantizar la exclusión mutua. El proceso/hilo solicitante
queda entonces en espera o pasa a estado de bloqueo según el algoritmo
implementado. Cuando el dueño del lock lo desbloquea puede tomarlo alguno
de los procesos/hilos que esperaban.
Este mecanismo se puede ver en un ejemplo de la vida real. Supongamos un
baño público, donde sólo puede entrar una persona a la vez. Una vez dentro, se
emplea un cierre para evitar que entren otras personas. Si otra persona pretende
usar el baño cuando está ocupado, deberá quedar esperando a que la persona
que entró anteriormente termine. Si más personas llegaran, formarían una cola
(del tipo FIFO) y esperarían su turno. En informática, el programador no debe
asumir este tipo de comportamiento en la cola de espera.

El lock, usado de esta manera, forma una sección crítica en cada proceso/hilo,
desde que es tomado hasta que se libera. En el ejemplo del baño, dentro de la
sección crítica se encuentran las funciones que se realizan generalmente dentro
de este tipo de instalaciones sanitarias. Como garantizan la exclusión mutua,
muchas veces se los denomina mutex (por mutual exclusión).

En general hay un número de restricciones sobre los locks, aunque no son las
mismas en todos los sistemas. Estas son:

• Sólo el dueño de un lock puede desbloquearlo


• La readquisición de un lock no está permitida

Algo muy importante es que todos los procesos/hilos deben utilizar el mismo
protocolo para bloquear y desbloquear los locks en el acceso a los recursos, ya
que, si mientras dos procesos/hilos utilizan el lock de forma correcta, existe otro
que simplemente accede a los datos protegidos, no se garantiza la exclusión
mutua y pueden darse condiciones de carrera y errores en los resultados.

Primitivas y uso

Las funciones de los locks en general son tres: init(), lock() y unlock(). El lock se
inicializa con la función init(). Luego cada proceso/hilo debe llamar a la función
lock() antes de acceder a los datos protegidos por el cierre. Al finalizar su sección
crítica, el dueño del lock debe desbloquearlo mediante la función unlock(). 10

10
Suzely, Karen Temas operativos procesos concurrentes – unidad III
Requisitos para la Exclusión Mutua
Los recursos no compartibles, ya sean periféricos, ficheros, o datos en memoria,
pueden protegerse del acceso simultáneo por parte de varios procesos evitando
que éstos ejecuten de forma concurrente sus fragmentos de código a través de
los cuales llevan a cabo este acceso. Estos trozos de código reciben el nombre
de secciones o regiones críticas, pudiéndose asimilar el concepto de exclusión
mutua en el uso de estos recursos a la idea de exclusión mutua en la ejecución
de las secciones críticas. Así, por ejemplo, puede implementarse la exclusión
mutua de varios procesos en el acceso a una tabla de datos mediante el recurso
de que todas las rutinas que lean o actualicen la tabla se escriban como
secciones críticas, de forma que sólo pueda ejecutarse una de ellas a la vez. En
el ejemplo previo de la cuenta bancaria los fragmentos de código a1a2a3 y
b1b2b3 constituyen dos secciones críticas mutuamente excluyentes, esto
significa que una vez que se ha comenzado la ejecución de una sección crítica,
no se puede entrar en otra sección crítica mutuamente excluyente.

Idear soluciones que garanticen la exclusión mutua es uno de los problemas


fundamentales de la programación concurrente. Muchas son las alternativas y
tipos de mecanismos que se pueden adoptar. A lo largo de este tema veremos
diferentes soluciones software y alguna hardware ; unas serán sencillas y otras
complejas, algunas requieren la cooperación voluntaria de los procesos y otras
que exigen un estricto ajuste a rígidos protocolos. La selección de las
operaciones primitivas adecuadas para garantizar la exclusión mutua de las
secciones críticas es una decisión primordial en el diseño de un sistema
operativo. Al menos, una solución apropiada debería cumplir las cuatro
condiciones siguientes:

• 1. Que no haya en ningún momento dos procesos dentro de sus


respectivas secciones críticas.
• 2. Que no hagan suposiciones a priori sobre las velocidades relativas
de los procesos o el número de procesadores disponibles.
• 3. Que ningún proceso que esté fuera de su sección crítica pueda
bloquear a otros.
• 4. Que ningún proceso tenga que esperar un intervalo de tiempo
arbitrariamente grande para entrar en su sección crítica.11

1.4 Ejemplo

Descripción del Ejemplo:

En el ejemplo se visualiza diferentes ordenadores tratando de conectarse a una


única impresora (Sección crítica). La exclusión mutua solo permitirá ingresar a
un único ordenador para que realice la impresión (operation). Cuando el
ordenador logra ingresar, la sección crítica cambia su estado a indisponible para
que el recurso sea solo de un proceso. Después de realizada la impresión el
ordenador sale de la sección critica dejándolo disponible nuevamente para que
otro proceso pueda hacer uso de ella. Este proceso se repite n veces con la
finalizad de no sobrecargar un recurso y así evitar futuras complicaciones.

11
Galeón, Pro-Concurrente.
CAPITULO 2
2 ALGORITMO CENTRALIZADOS

Es el proceso que se va a encargar de definir si un proceso tiene la posibilidad


de entrar a ejecutarse dentro la sección crítica. Siempre que un proceso desea
acceder a un recurso compartido, envía un mensaje de petición al coordinador
mencionando el recurso al que desea acceder, y solicita permiso. Sin embargo,
un proceso dentro de la sección crítica, el coordinador no responde dejando
bloqueado al proceso que desea entrar y la solicitud se almacena en una cola
para su procesamiento posterior.

Se elige un proceso coordinador y cuando un proceso desea entrar a la región


crítica, envía un mensaje de solicitud al coordinador donde indica la región crítica
a la que desea entrar y pide permiso. Si ningún otro proceso está por el momento
en esa región crítica, el coordinador le otorga el permiso. Si existe un proceso en
la región crítica, el servidor no contesta y el proceso se bloquea. El servidor forma
en una fila la solicitud del proceso bloqueado por el momento. Cuando el primer
proceso sale de la sección crítica, el servidor le avisa al proceso bloqueado que
ya puede entrar a la sección crítica.

El método garantiza exclusión mutua. Pero tiene limitaciones. El coordinador


puede fallar y todo se viene abajo. Si un cliente no obtiene respuesta, ¿cómo
distingue entre un servidor muerto o la negación del permiso? Se podría enviar
un mensaje de negación de permiso.12

 La forma más directa de lograr la exclusión mutua en un sistema


distribuido es simular a la forma en que se lleva a cabo en un sistema
monoprocesador.
 Se elige un proceso coordinador.
 Cuando un proceso desea ingresar a una región crítica:
 Envía un mensaje de solicitud al coordinador:

12
Hilda, Sincronización en Sistemas Distribuidos.
 Indicando la región crítica.
 Solicitando permiso de acceso.
 Si ningún otro proceso está en ese momento en esa región crítica:
 El coordinador envía una respuesta otorgando el permiso.
 Cuando llega la respuesta el proceso solicitante entra a la región
crítica.
 Si un proceso pide permiso para entrar a una región crítica ya asignada a
otro proceso:
 El coordinador no otorga el permiso y encola el pedido.
 Cuando un proceso sale de la región crítica envía un mensaje al
coordinador para liberar su acceso exclusivo:
 El coordinador extrae el primer elemento de la cola de solicitudes
diferidas y envía a ese proceso un mensaje otorgando el permiso, con
lo cual el proceso queda habilitado para acceder a la región crítica
solicitada.

2.1 Ventajas

• Es un esquema sencillo y fácil de implementar.


• Garantiza la exclusión mutua.
• La poca cantidad de mensajes que es necesario generar por cada
acceso (solamente 3).

2.2 Desventajas

• El coordinador puede ser un cuello de botella.


• El coordinador se abstiene a responder la petición de un recurso hasta
que se encuentre disponible.
• El proceso en cola tiene que esperar hasta que el otro proceso que
está usando el recurso libere su acceso exclusivo.
• El coordinador es un solo punto de falla, ya que, si falla, todo el sistema
cae
2.3 Rendimiento

 Ancho de banda

 El acceso al recurso implica dos mensajes (aunque el recurso este


libre).
 Retardo al cliente

 enter(): El retardo de transmisión de los dos mensajes


 exit(): Con comunicación asincrónica no implica retrasos al cliente.

 La entrada en la sección critica requiere de N-1 mensajes.


 La salida no implica ningún mensaje.

 Throughput del sistema

 Retardo de respuesta elevado o perdida de mensajes: Se reduce por


medio de mensajes NO-OK (asentimientos negativos).13
 La caída del elemento de control es crítica (al g. de elección).
 La caída de los clientes o la perdida de mensajes se puede solucionar
por medio de temporizadores.

 Tolerancia a fallos

 La caída del coordinador de control es crítica. En cambio, la caída de


los clientes o la perdida de mensajes se pueden solucionar por medio
de temporizadores.

2.3.1 Algoritmos centralizados

Cada cierto tiempo cada nodo envía a un nodo central, RCC (Routing Control
Center), la información de estado que ha podido recoger localmente, como una
lista de nodos adyacentes, longitudes actuales de sus colas, tráfico procesado
por línea, etc. Basado en toda la información, el RCC calcula la mejor ruta para

13
Sistemas Operativos Distribuidos, Sincronización, Concurrencia y Transacciones.
cada par de nodos, por ejemplo, con un algoritmo Shortest Path, construye las
tablas de encaminamiento y las envía a los nodos. Ventajas: El RCC posee una
información muy completa, por lo que sus decisiones son casi perfectas. Se
libera a los nodos de tener que ejecutar algoritmos de encaminamiento.

2.3.2 Algoritmos centralizados Inconvenientes

Si el tráfico y la topología son muy cambiantes son necesarios cálculos muy


frecuentes con el consiguiente exceso de carga en la red. Vulnerabilidad del
RCC: Problemas si se cae el RCC o si algún nodo no puede comunicarse con el
RCC, por caídas en la ruta usada para tal efecto. Los nodos próximos al RCC
pueden sufrir un peor servicio al estar las líneas más cargadas con tráfico de
control. Los nodos próximos al RCC conocen las nuevas tablas antes que los
más alejados, lo que puede dar lugar a inconsistencias en el encaminamiento. 14

2.4 Ejemplo

El proceso 1 solicita permiso al coordinador para acceder a un recurso


compartido. El permiso es otorgado. Luego el proceso 2 solicita permiso
para acceder al mismo recurso. El coordinador no responde. Finalmente,
cuando el proceso 1 libera el recurso, éste se lo indica al coordinador
que después le responde a 2.15

14 Departamento de Enxenera Telemática Sistemas de Conmutación Encaminamiento.


15Tanenbaun y Van. (2008). Sistemas Distribuidos Principios y Paradigmas, México: Pearson
Educación.
Figura 1: Algoritmos Centralizados
CAPITULO 3
3 ALGORITMO DE ANILLO DE FICHAS
(TOKEN RING)
Token Ring es una arquitectura de red desarrollada por IBM en los años 1970
con topología lógica en anillo y técnica de acceso de paso de testigo, usando un
frame de 3 bytes llamado token que viaja alrededor del anillo. Token Ring se
recoge en el estándar IEEE 802.5 (Instituto de Ingenieros Eléctricos y
Electrónicos). En desuso por la popularización de Ethernet; actualmente no es
empleada en diseños de redes.16

Una red de anillo token (token ring) es una red de área local (LAN) en la que
todos los ordenadores están conectados en una topología de anillo o estrella y
pasan uno o más tokens lógicos de host a host. Sólo un host que contiene un
token puede enviar datos y los tokens se liberan cuando se confirma la recepción
de los datos. Las redes token ring evitan que los paquetes de datos choquen en
un segmento de red porque los datos sólo pueden ser enviados por un titular de
tokens y el número de tokens disponibles está controlado.

Los protocolos de anillos token más ampliamente desplegados fueron los de


IBM, lanzados a mediados de los años ochenta, y la versión estandarizada
conocida como IEEE 802.5, que apareció a finales de los años ochenta. La
versión estándar IEEE proporciona velocidades de transferencia de datos de 4,
16 o 100 Mbps.

Token Ring fue ampliamente utilizado en las redes LAN, pero ha sido casi
totalmente desplazado por Ethernet gracias a la fijación de precios –los
productos token ring tendían a ser más caros que Ethernet a velocidades
similares– y gracias al desarrollo de la conmutación Ethernet y a los enlaces
dúplex completos, lo que eliminó las colisiones como una preocupación práctica
en la mayoría de las situaciones.

16
Wikipedia, Token Ring
3.1 El estándar IEEE 802.5

El IEEE 802.5 es un estándar por el Institute of Electrical and Electronics


Engineers (IEEE), y define una red de área local LAN en configuración de anillo
(Ring), con método de paso de testigo (Token) como control de acceso al medio.
La velocidad de su estándar es de 4 o 16 Mbps.

El diseño de una red de Token Ring fue atribuido a E. E. Newhall en el año 1969.
International Business Machines (IBM) publicó por primera vez su topología de
Token Ring en marzo de [1982], cuando esta compañía presentó los papeles
para el proyecto 802 del IEEE. IBM anunció un producto Token Ring en 1984, y
en 1985 éste llegó a ser un estándar de ANSI/IEEE.

Es casi idéntica y totalmente compatible con la red del token ring de IBM. De
hecho, la especificación de IEEE 802.5 fue modelada después del token ring, y
continúa sombreando el desarrollo del mismo. Además, el token ring de la IBM
especifica una estrella, con todas las estaciones del extremo unidas a un
dispositivo al que se le llama "unidad del acceso multiestación" (MSAU). En
contraste, IEEE 802.5 no especifica una topología, aunque virtualmente todo el
IEEE 802.5 puesto en práctica se basa en una estrella, y tampoco especifica un
tipo de medios, mientras que las redes del token ring de la IBM utilizan el tamaño
del campo de información de encaminamiento.

El IEEE 802.5 soporta dos tipos de frames básicos: tokens y frames de


comandos y de datos. El Token es una trama que circula por el anillo en su único
sentido de circulación. Cuando una estación desea transmitir y el Token pasa
por ella, lo toma. Éste sólo puede permanecer en su poder un tiempo
determinado (10 ms). Tienen una longitud de 3 bytes y consiste en un delimitador
de inicio, un byte de control de acceso y un delimitador de fin. En cuanto a los
Frames de comandos y de datos pueden variar en tamaño, dependiendo del
tamaño del campo de información. Los frames de datos tienen información para
protocolos mayores, mientras que los frames de comandos contienen
información de control.17

3.2 Funcionamiento de un anillo token

1. Los sistemas en la LAN están dispuestos en un anillo lógico; cada sistema


recibe tramas de datos de su predecesor lógico en el anillo y las envía a su
sucesor lógico. La red puede ser un anillo real, con cableado que conecta cada
nodo directamente a sus vecinos, pero más a menudo es una estrella, con el
anillo existente sólo lógicamente en el armario de cableado dentro de la "unidad
de multiacceso" a la que todos los hosts se conectan.

2. Los cuadros de información vacíos se circulan continuamente en el anillo, junto


con los cuadros que contienen datos reales; cualquier nodo que reciba una trama
vacía y que no tenga nada que enviar simplemente reenvía el marco vacío.

3. Cuando un equipo tiene un mensaje que enviar, espera un marco vacío.


Cuando tiene uno, hace lo siguiente:

a) Inserta un token que indica que está enviando datos en la trama –esto
puede ser tan simple como cambiar un cero a uno en la sección token de
la trama, aunque otros esquemas son posibles y se dice que "sostienen
el token" para ese marco.

b) Inserta los datos que quiere transmitir en la sección de carga útil del
marco.

c) Establece un identificador de destino en el marco.

4. Cuando una computadora recibe una trama que contiene datos (indicada por
el token) sabe que no puede transmitir datos propios y hace lo siguiente:

a) Si no es el remitente o el destino, simplemente retransmite el marco,


enviándolo al siguiente host en el anillo.

b) Si es el destino del mensaje, copia el mensaje del marco y borra el


token para indicar la recepción.

17
INFORMACION DE REDES
c) Si es el remitente (y asumiendo que el nodo de destino ha indicado la
recepción de la trama borrando el token) ve que el mensaje ha sido
recibido, elimina la carga útil del mensaje del cuadro (restaurándolo al
estado "vacío") y envía el marco vacío alrededor del anillo.18

¿Cómo funciona Token Ring?

La red Token Ring consta de un conjunto de nodos conectados en forma de


anillo. Cada estación, en su interface de red, conoce el protocolo para acceder
el medio Todos los nodos ven todos los frames. El nodo al que va dirigido el
frame hace una copia cuando este pasa por allí A, B, C, D Flujo de los datos Los
datos siempre fluyen en la misma dirección. Cada nodo recibe frames del nodo
que le antecede y envía frames al nodo que le sigue. El anillo es un medio
compartido: sólo un nodo (aquel que posee el token) transmite frames durante
cierto tiempo.

El frame de Token Ring

Un elemento importante de Token Ring es el frame que utiliza para llevar los
datos entre las estaciones. El frame organiza los bits que transmite en varios
campos (delimitador de comienzo y de final de frame, control de acceso,
dirección MAC destino y origen, datos, chequeo del frame, etcétera) El frame
Token Ring tiene varios formatos: token (cuando no lleva datos), abort token

18
Rouse, Margaret Token Ring
(para terminar a la fuerza una transmisión previa) y frame (cuando lleva datos y
puede clasificarse en dos tipos: el frame LLC y el frame MAC)

 Delimitador de Inicio
 Delimitador de finalización
 Control de acceso
El token El token es el mecanismo utilizado para acceder el anillo. El formato del
token consta de tres bytes:

 Delimitador de inicio (SDEL): 8 bits (1 byte) que informan donde comienza


el frame de token.
 Control de acceso (AC): 8 bits (1 byte), sirve como método de control para
ganar el acceso a la red. (tres bits indican la prioridad, tres se utilizan para
reservación, uno es el token bit y otro es el monitor bit).
 Delimitador de finalización (EDEL): 8 bits (1 byte), informan donde termina
el frame de token.19

19
Pablo Turmero, Token Ring. Tecnología para redes de área local
3.3 Características principales

 Utiliza una topología lógica en anillo, aunque por medio de una unidad de
acceso de estación múltiple (MSAU), la red puede verse como si fuera
una estrella. Tiene topología física estrella y topología lógica en anillo.
 Utiliza cable especial apantallado, aunque el cableado también puede ser
par trenzado.
 La longitud total de la red no puede superar los 366 metros.
 La distancia entre una computadora y el MAU no puede ser mayor que
100 metros.
 A cada MAU se pueden conectar ocho computadoras.
 Estas redes alcanzan una velocidad máxima de transmisión que oscila
entre los 4 y los 16 Mbps.
 Posteriormente el High Speed Token Ring (HSTR) elevó la velocidad a
100 Mbps, pero la mayoría de las redes no la soportan.

3.3.1 Mecanismos de gestión

Las redes Token Ring utilizan varios mecanismos para detectar y compensar las
fallas en la red. Uno de los mecanismos consiste en seleccionar una estación de
la red Token Ring como el monitor activo. Esta estación actúa como una fuente
centralizada de información de tiempo para las estaciones de otro anillo y realiza
una serie de funciones de mantenimiento del anillo. La estación de monitoreo
activo potencialmente puede ser cualquier estación de la red. Una de las
funciones de esta estación es la de eliminar la circulación continua de los marcos
del anillo.

Cuando un dispositivo falla el envío, su estructura puede continuar la vuelta al


anillo y evitar que otras estaciones de transmisión de sus propios marcos, lo que
puede bloquear la red. El monitor activo puede detectar estas tramas, eliminarlas
del anillo, y generar un nuevo token.

3.4 Medios de Transmisión

El cable que se utiliza habitualmente para la transferencia de datos es el par


trenzado, con o sin blindaje, no obstante, también se puede utilizar el cable
coaxial o la fibra óptica.

Las estaciones de trabajo se unen al anillo


mediante unidades de interface al anillo (RIU).
Pueden estar en dos estados, repetidor que
reenvía lo que le llega y transmisor que envía y lee
del anillo.
Figura 1:Tipos par trenzado
Si el cable se llega a romper en algún lugar el anillo
desaparece, esto se resuelve utilizando centro de cableado en estrella, que
pueden detectar y corregir automáticamente fallos en el cableado. Si llegara a
romperse al anillo, se puede continuar operando si se puntea el segmento
dañado. Con estos se mejora la fiabilidad y el mantenimiento de la red.20

3.5 Prioridades

1. Las redes Token Ring utilizan un sofisticado sistema de prioridad que


permite designarles a los usuarios un tipo de prioridad en base a su uso

20
Ecured, Token Ring
de la red. Los frames en redes Token Ring tienen dos campos que
controlan la prioridad: el campo de prioridad y un campo reservado.
2. Solo las estaciones que posean un valor de prioridad igual o mayor al
contenido en el token pueden seccionar éste.
3. Una vez que el token está seccionado y la información del frame
cambiada, sólo las estaciones con una prioridad mayor a la que transmitió
el token puede reservar el token para la siguiente pasada a través de la
red.
4. Cuando el siguiente token es generado, este incluye la prioridad más
grande anteriormente reservada por la estación.
5. Después de que se efectuó su entrega la estación que mandó debe
regresar la prioridad del token a como lo había encontrado.21

3.6 Ventajas:

 No requiere de enrutamiento.
 Requiere poca cantidad de cable.
 Fácil de extender su longitud, ya que el nodo está diseñado como
repetidor, por lo que permite amplificar la señal y mandarla más lejos.
 No existen colisiones de datos ya que un equipo siempre necesita tener
el Token Passing para acceder al bus.
 Asegura igualdad entre los nodos.
 Cuenta con sistema para dar prioridades.
 Buen rendimiento en alta velocidad de la red.
 Gestiona de mejor manera los entornos con mucho tráfico que las redes
con bus

3.7 Desventajas:

 Altamente susceptible a fallas.


 Una falla en un nodo deshabilita toda la red
 El software de cada nodo es mucho más complejo.

21
Información de redes
 La caída de una estación interrumpe toda la red. Actualmente no hay
conexiones físicas entre estaciones, sino que existen centrales de
cableado o MAU que implementa la lógica de anillo sin que estén
conectadas entre sí evitando las caídas.
 Se necesita MAUs (Unidad de acceso para múltiples estaciones) ya que
contienen internamente el anillo y si falla una conexión automáticamente
la ignora para mantener cerrado el anillo;
 Cabe mencionar que si algún nodo de la red se cae (termino informático
para decir que está en mal funcionamiento o no funciona para nada) la
comunicación en todo el anillo se pierde.
 problema de este método de acceso reside en el tiempo que debe esperar
una computadora para obtener el Token sin utilizar.
 El token circula muy rápidamente, pero obviamente esto significa que la
mayor parte de las veces, los dispositivos tendrán que esperar algo antes
de poder mandar un mensaje.
 No debe usarse con fibra óptica.
 Nuevos nodos no se pueden conectar directamente primero tiene que
romperse el anillo para añadir más computadoras.22

3.8 Token Passing

En esta arquitectura se controla el acceso al medio utilizando un testigo


electrónico que se pasa a cada host. Cuando un host recibe el testigo puede
transmitir datos si los tiene. Si no pasa el testigo al siguiente host.

3.9 Características

 Todas las estaciones pueden transmitir periódicamente.


 Su longitud total no puede superar los 185 metros
 Red de banda ancha que modula sus señales en el nivel físico.
 Pasa a la estación siguiente en orden descendente de numeración

22
DELTA_NET, TOKEN PASSING
Figura 2:Token Passing

3.10 interfaz de datos distribuida por fibra

FDDI Es un conjunto de estándares Organización Internacional de Normalización


(ISO) e Instituto Nacional Estadounidense de Estándares (ANSI) para la
transmisión de datos en redes de computadoras de área extendida o local
mediante cable de fibra óptica. Se basa en la arquitectura token ring y permite
una comunicación tipo Full Dúplex.

 Tiene un ciclo de reloj de 125 MHz y utiliza un esquema de codificación


4B/5B que permite al usuario obtener una velocidad máxima de
transmisión de datos de 100 Mb/s.
 Permiten que existan un máximo de 500 ordenadores.
 Utilizan una dirección de 45 bytes, definida por la IEEE

3.10.1 Ventajas:

 Es posible transmitir las señales a larga distancia sin necesidad de


repetidores o poner estos muy separados entre ellos.
 Gran capacidad para transmitir
 Inmunidad frente a interferencias electromagnéticas radiaciones.
 Asegura el aislamiento eléctrico del cable y permite su empleo y
manipulación sin peligro en instalaciones de alta tensión.
 Puede servir como red de conexión entre LAN's

3.10.2 Desventajas:

 Mayor costo
 Una falla en un nodo deshabilita toda la red
 El software de cada nodo es mucho más complejo23

3.11 Rendimiento:

3.11.1 Ancho de banda

El algoritmo consume ancho banda de forma continua, ya que redes de anillo no


conmutada Token no experimentan colisiones de paquetes de datos, ya que la
señal viaja por todo el anillo en una dirección. Esto permite que las redes Token
Ring para lograr la utilización del ancho de banda de alrededor del 80 por ciento.
No redes de conmutación de Ethernet, por otra parte, saturar a aproximadamente
35 por ciento de utilización. Esta elevada utilización de ancho de banda de las
redes Token Ring fue una de las principales razones de competencia entre las
dos tecnologías era tan feroz a principios de 1990.24

3.11.2 Retardo del cliente:

 La entrada en la sección critica requiere de 0 a N mensajes.


 La salida sólo implica un mensaje.

3.11.3 Throughput del sistema:

En redes de comunicaciones, se llama throughput a la tasa promedio de éxito en


la entrega de un mensaje sobre un canal de comunicación. Este dato puede ser

23
Resumen Arquitecturas - Token Ring, Token Pass, Ethernet, Fast Ethernet, FDDI
24
Tecnología, Características de las redes Token Ring
entregado sobre un enlace físico o lógico, o a través de un cierto nodo de la red.
Por regla general, el throughput es medido en bits por segundo (bit/s o bps), y a
veces en paquetes de datos por segundo o paquetes de datos por franja de
tiempo.

El througput es la capacidad efectiva de transferencia de datos sobre el enlace.25

 La entrada del siguiente proceso tras la salida del que ocupa la región
critica implica de 1 a N mensajes.

3.11.4 Tolerancia a fallos:

Una red en anillo es una topología de red en la que cada estación tiene una
única conexión de entrada y otra de salida de anillo. Cada estación tiene un
receptor y un transmisor que hace la función de traductor, pasando la señal a la
siguiente estación.

En este tipo de red la comunicación se da por el paso de un token o testigo,


que se puede conceptualizar como un cartero que pasa recogiendo y
entregando paquetes de información, de esta manera se evitan eventuales
pérdidas de información debidas a colisiones.

En un anillo doble (Token Ring), dos anillos permiten que los datos se envíen
en ambas direcciones (Token passing). Esta configuración crea redundancia
(tolerancia a fallos).26

 Perdida del token:


 Detección y regeneración
 Caída de un elemento del anillo: Reconfiguración del anillo.

25
Cualquier cosa de tecnología, Qué es Throughput.
26
Wikipedia, Red en anillo 19 oct 2018.
3.12 Unidad de acceso a múltiples estaciones (MAU).

La Multistation Access Unit (MAU o MSAU), unidad de acceso a múltiples


estaciones, es un concentrador de cableado al cual se conectan todas las
estaciones finales de una red Token Ring (IEEE 802.5).

La MAU es un dispositivo multi-puerto del equipamiento en el que se conectan


las estaciones (o puestos) de trabajo. La MAU brinda un control centralizado de
las conexiones en red. Mueve las señales desde una estación hasta la siguiente
estación de trabajo activa en el anillo. También presenta un relé incorporado
capaz de impedir que se corte el servicio de la red si fallase una única conexión
o dispositivo.

Además de los pórticos existentes para las conexiones a las estaciones de


trabajo, las MAU poseen una entrada y una salida del anillo para poder
conectarse a otras MAU y poder expandir la red, son el «puerto RI» (Ring-In) y
el «puerto RO» (Ring-Out). El cable para unir las MAU se denomina patch
cord (cable de conmutación).

En cambio, en una red Ethernet de cable coaxial, la MAU solamente emplea un


cable para efectuar las dos operaciones (transmisión de datos y recepción). Con
una Ethernet 10BaseT, la MAU debe alojar dos pares de cables (un par para
transmitir y otro par para recibir).

Por otra parte, una MAU puede soportar hasta 72 computadoras conectadas.
Los cables que unen los nodos con la MAU se denominan lobe cables (lóbulos)
y no deben superar los 100 metros.27

27
Wikipedia, Multistation access unit.
Ilustración 3:MAU

Ilustración 4:MAU FISICO


3.13 Ejemplos

Red WAN en: BanAhorro, “el banco pensado en tus necesidades”

El banco BanAhorro, es una empresa que piensa en sus clientes y que hoy en
día ha crecido nacionalmente ya que cuenta con varias sucursales alrededor del
país.

BanAhorro aparte es una empresa interdepartamental, que consta de


departamentos como productos bancarios (tarjetas, cuentas de ahorro, cuentas
corrientes, etc.), prestamos (de vivienda, carros, etc.), servicios (banca en línea,
cajeros automáticos, centro de atención al cliente, etc.).

En nuestra empresa las redes que conectan cada uno de nuestros


establecimientos, están conectadas por una topología de árbol, esto quiere decir
que uno de los establecimientos corresponde a la red principal, de esta red salen
ramificaciones, donde casi siempre hay un hub o switch, y a partir de este hub
saldrán más ramificaciones, que se conectan a otras redes o nodos. Nosotros,
para conectar todas nuestras redes, utilizamos cables de par trenzados, porque
además de permitirnos enviar datos a mayor velocidad, al estar trenzados de dos
en dos, disminuyen las posibilidades de que los cables interfieran unos con otros.

Algo curioso que se da en nuestra red, es que, no solamente se una topología


de árbol, también si observamos podemos encontrar una topología de anillo.

Una topología de anillo es aquella en la que cada nodo es conectado a otros dos
más formando un patrón de anillo. Extender este tipo de redes es más caro que
extender una red punto-a-punto ya que se necesita al menos un enlace más.

Utilizamos , respecto a nuestra topología, el cable de par trenzado, porque


disminuye las posibilidades de que los cables interfieran unos con otros ya que
si pueden observar, en nuestra topología se dan muchas ramificaciones, muchos
enlaces y este tipo de cable nos ayuda, además, también porque se compone
de varios conductores de cobre, recubiertos por un material plástico aislante y
algunas veces pueden estar cubiertos por una malla trenzada de hilos metálicos
que lo protegen de las interferencias externas tales como en el caso de STP.
En nuestra topología podemos observar que hay un router en cada sucursal, en
una de las sucursales vemos como las tres computadoras están unidas para
luego llegar al router es porque en esta sucursal se trabaja un servicio diferente
que a los demás.

No en todas las sucursales encontramos las mismas computadoras y ni las


mismas cantidades, esto se da por las diferentes funciones que se dan en esta
empresa. Algo que si no debe faltar es la impresora/scanner, que está colocada
en dos de las sucursales y que están conectadas a los diferentes computadores
de las sucursales para realizar su función.

Lo más importante de esta topología es su seguridad, ya que nos ofrece tres


niveles de seguridad, el medio, básico y el alto.

Para esta empresa utilizamos el básico porque según lo que creemos, decimos
que este tipo de seguridad nos ayuda para emplear las distintas funciones que
realizan los diferentes departamentos de la empresa.

Un nivel básico en donde se la información más habitual, son los datos definidos,
tales como: D.N.I. o N.I.F., nombre, apellidos, direcciones, teléfonos, firma/
huella u otra información biométrica, imagen i voz, e-mal, nombre de usuario,
firma electrónica, número de tarjeta, etc.,28

28
Topologias de redes, Red WAN en: BanAhorro, “el banco pensado en tus necesidades”
3.14 APLICACIÓN SIMULACIÓN JAVA
CAPÍTULO 4
4 ALGORITMO DISTRIBUIDO.

Este algoritmo requiere de un orden total de todos los eventos en el sistema.


Para cualquier pareja de mensajes debe quedar claro quién ocurrió primero.

Cuando un proceso desea entrar a la región crítica, construye un mensaje con el


nombre de ésta, su número de proceso y la hora actual, y la envía a todos los
demás procesos y de forma conceptual a él mismo. Se puede utilizar
comunicación en grupo confiable.

Cuando un proceso recibe un mensaje de solicitud de otro proceso para entrar a


una región crítica, debe distinguir tres casos:

1. Si el receptor no está en la región crítica y no desea entrar a ella, envía


de regreso un mensaje ok al emisor.
2. Si el receptor desea entrar a la región crítica, no responde, sino que forma
la solicitud en una fila.
3. Si el receptor desea entrar a la región crítica, pero no lo ha logrado
todavía, compara la marca de tiempo en el mensaje recibido con la marca
contenida en el mensaje que envió a cada uno. La menor de las marcas
gana. Si el mensaje recibido es menor, el receptor envía un mensaje ok.
Si su propio mensaje tiene una marca menor, el receptor forma la solicitud
en una fila y no envía nada.
Un proceso puede entrar a la región crítica si obtiene permiso de todos. Si es
así, entra y cuando sale envía mensajes ok a todos los procesos de su fila y
elimina los elementos de la fila.

Con este método la exclusión mutua queda garantizada sin bloqueo ni inanición.
El número de mensajes necesarios por entrada es de 2(n-1), donde n es el
número total de procesos en el sistema.

 El objetivo es no tener un único punto de fallo (el coordinador central).


 Se requiere un orden total de todos los eventos en el sistema para saber
cuál ocurrió primero.
 Cuando un proceso desea entrar a una región crítica:
 Construye un mensaje con el nombre de la región crítica, su
número de proceso y la hora actual.
 Envía el mensaje a todos los demás procesos y de manera
conceptual a él mismo.
 Se supone que cada mensaje tiene un reconocimiento
Si el receptor no está en la región crítica y no desea entrar a ella, envía de regreso un
mensaje ok. al emisor. Si el receptor ya está en la región crítica no responde y encola la
solicitud.

 Si el receptor desea entrar a la región crítica pero aún no lo logró,


compara:
 La marca de tiempo del mensaje recibido con, la marca contenida
en el mensaje que envió a cada uno, la menor de las marcas gana.
 Si el mensaje recibido es menor el receptor envía un ok.
 Si su propio mensaje tiene una marca menor el receptor no envía
nada y encola el pedido.
• Luego de enviar las solicitudes un proceso:

 Espera hasta que alguien más obtiene el permiso.


 Cuando llegan todos los permisos puede entrar a la región crítica.
• Cuando un proceso sale de la región crítica:

 Envía mensajes ok. a todos los procesos en su cola.


 Elimina a todos los elementos de la cola.
• La exclusión mutua queda garantizada sin bloqueo ni inanición.

4.1 Rendimiento:

4.1.1 Ancho de banda:

El protocolo consume 2(N-1) mensajes. N-1 para la petición y N-1 respuestas. Si


existen comunicación multicast sólo N mensajes.
4.1.2 Retardo del cliente:

 La entrada en la sección critica requiere de N-1 mensajes.


 La salida no implica ningún mensaje.

4.1.3 Throughput del sistema:

Si dos procesos compiten por el acceso a la sección critica ambos habrán recibido N-2
respuestas. El de menor reloj tendrá la respuesta del otro. Al salir éste el siguiente se
indicará con sólo 1 mensaje.

4.1.4 Tolerancia a fallos:

Retardo de respuesta elevado o perdida de mensajes: Se reduce por medio de


mensajes NO-OK.

4.2 El Algoritmo Distribuido de Ricart y Agrawala:

Ricart y Agravala presentaron en 1981 un algoritmo de exclusión mutua


distribuido. Consideramos un conjunto de N procesos con una estructura sencilla
en la que alternan los cálculos fuera de la región crítica y dentro de la región
crítica. Las condiciones de los algoritmos son las siguientes:

Un proceso que quiere entrar en sección crítica (SC) envía mensaje de solicitud
a todos los procesos.

 Cuando un proceso recibe un mensaje


 Si receptor no está en SC ni quiere entrar envía OK al emisor
 Si receptor ya está en SC no responde
 Si receptor desea entrar, mira marca de tiempo del mensaje:
 Si menor que marca tiempo de su mensaje de solicitud: envía OK.
 En caso contrario será él el que entre.
 Cuando un proceso recibe todos (N-1) los mensajes pueden entrar.

 Los procesos 1 y 3 quieren acceder a la sección crítica.

 Los relojes lógicos son respectivamente 23 y 21.

1. Los procesos se comunican mediante mensajes de capacidad no nula.


2. Los mensajes pueden llegar a un proceso en cualquier punto de la ejecución,
bien dentro o bien fuera de la región crítica. De cualquier modo, una interrupción,
excepción, manejador de señal, etc., se encarga de procesar la llegada del
mensaje.

3. Se asume que la comunicación es fiable y los mensajes entre 2 procesos son


entregados en el orden en el que fueron enviados.

4. Es preciso una relación de orden total entre los eventos de todo el sistema.

Consideremos que para que un proceso entre en la región crítica deben tener el
permiso todos y cada uno del resto de los procesos, permiso que solicita
enviando un mensaje a todos ellos, vía multicasting, difusión o uno a uno. El
mensaje acarrea una etiqueta temporal que es el valor del reloj lógico local
correspondiente a su envío. Cuando un proceso recibe un mensaje de solicitud
de permiso, la acción que toma el proceso de receptor es la siguiente:
1. Si el receptor no está en su región crítica y no desea entrar en ella, se dice
que está en situación de permiso concedido (CONCEDIDO) y envía
inmódicamente un mensaje de réplica al proceso que solicito el permiso.

2. Si el receptor está ejecutando en su región crítica se dice que tiene el permiso


(OTORGADO), no envía réplica al emisor y encola la petición. Como vemos, si
un proceso no contesta significa que no concede el permiso de entrada.

3. Si el receptor desea también entrar a la región critica, pero aún no lo ha


conseguido se dice que está en estado de solicitud (SOLICITANDO), compara
el reloj del mensaje entrante con el del mensaje que ha enviado al resto de los
procesos para solicitar el permiso. El más bajo gana. Si gana el emisor del
mensaje entrante, el receptor envía a este la réplica. Si gana el receptor, encola
el mensaje y no envía réplica

La figura 3.6 describe el algoritmo más formalmente. Si el grupo de procesos


interesados en la región crítica tiene n procesos, obtener el permiso lleva 2(n-1)
mensajes, n-1 para solicitarlo y otros tantos para concederlo. En el algoritmo
centralizado anterior son necesarios 2 mensajes únicamente. Uno para solicitarlo
y otro para concederlo, algo que lo hace mucho más eficiente que el algoritmo
de Ricart y Agrawala. Por otra parte, en ese último todo proceso está involucrado
en todas las solicitudes de entrada en la región crítica, para las que debe aportar
ciclos de UCP, lo cual resta aún más eficiencia al algoritmo de Ricart y Agrawala.
El algoritmo reemplaza un punto de fallo del algoritmo anterior por n puntos de
fallo. Si un proceso termina inesperadamente, no responderá a ninguna solicitud
de entrada, por lo que bloqueará al resto, ya que la probabilidad de que uno de
los N procesos caiga es n veces superior a que caiga el servidor del algoritmo
anterior, es algoritmo de Ricart y Agrawala es n veces menos robusto que el
algoritmo del servidor.

En conjunto, el algoritmo es más lento, más complicado y menos robusto que el


algoritmo centralizado, de modo que ¿por qué molestarte estudiándolo? Porque
demuestra que el algoritmo distribuido, sin un control es posible, lo que estimula
el estudio de soluciones distribuidas más avanzadas.

4.3 Ejemplo

Supongamos que tenemos 4 procesos numerados del 0 al 3, los procesos 1 y 3


desean entrar a la región crítica, 0 no desea entrar a la región crítica y 2 está
dentro de la región crítica. Los procesos 1 y 3 envían mensaje casi al mismo
tiempo, pero la marca de 3 es menor a la de 1 (1 tiene marca de tiempo igual a
3 y 3 tiene marca de tiempo igual a 2). Cuando 0 recibe el mensaje de 3 le otorga
el permiso, como la marca de tiempo de 3 es menor que la de 1 entonces 1 debe
enviar un mensaje de ok a 3, 2 está dentro de la región crítica por lo que forma
el mensaje de 3 en una fila.
Cuando 0 recibe el mensaje de 1 le responde con un ok, 3 al recibir el mensaje
de 1 checa su propia marca de tiempo, como su marca de tiempo es menor que
la de 1 entonces forma la solicitud de 1 es una fila y no responde nada. El proceso
2 al recibir mensaje de 1, forma el mensaje en una fila ya que 2 está en la r.c.
El proceso 3 tiene el permiso de 0 y 1 para entrar a la región crítica, y el proceso
1 tiene el permiso de 0. Cuando 2 sale de la región crítica envía mensajes de ok
a los procesos de su fila, en este caso, a los procesos 3 y 1.

El proceso 3 ya tiene el permiso de todos por lo tanto puede entrar a la r.c.,


mientras que el proceso 1 debe esperar a que 3 salga de la región crítica. Cuando
3 salga de la región crítica debe enviar un mensaje de ok al proceso 1.
Ahora existen n puntos de falla. Si no hay respuesta, se interpretará como una
negación de permiso, aun cuando el proceso haya muerto, podría haber
bloqueos.
Una posible modificación es la siguiente, cada vez que se haga una solicitud
debe haber una respuesta negativa o positiva.
Funciona bien con comunicación en grupo, donde se tenga un registro de los
integrantes del grupo, quiénes entran y quiénes han salido o han fallado.
Funciona bien con grupos pequeños.

El algoritmo es más lento, más complejo y más caro y menos robusto que el
centralizado. Pero sirve para estimular a investigadores a producir algoritmos
útiles.29

29
SISTEMAS DISTRIBUIDOS, Algoritmo de exclusión mutua (Distribuido).
4.4 Algoritmo de Maekawa

1985, Mamoru Maekawa observó que para que un proceso entrase en la


sección crítica no era necesario que todos los procesos de categoría pareja a la
suya le permitiesen el acceso.

Un proceso debe recoger suficientes votos para entrar en la sección crítica.

Llamado también algoritmo de votación.

 Análogo al algoritmo de relojes lógicos pero reduce el número de


mensajes:
 El procesador elegido es aquel que obtiene la mitad más 1 votos.
 Cada procesador es consultado sobre la elección emitiendo un voto.
 Para reducir el número de mensajes cada uno de los procesadores
que intentan acceder a la sección critica tiene un distrito (), tal que: De
esta forma sólo se necesitan N mensajes
4.4.1 Algoritmos de maekawa, algoritmos de votación

Análogo al algoritmo de relojes lógico, pero reduce el número de mensajes:

 El procesador elegido es aquel que obtiene la mitad más 1 votos.


 Cada procesador es consultado sobre la elección emitiendo un voto.
 Para reducir el número de mensajes cada uno de los procesadores que
intentan acceder a la sección crítica tiene un distrito (Si), tal que:
Si ∩ Sj ≠ ∅ para todo 1 ≤i, j≤N

 De esta forma sólo se necesitan √N mensajes.

VARIANTES

Para solucionar los problemas de interbloqueo de los algoritmos de acceso a


regiones críticas en base a mecanismos de votación tradicionales (Maekawa)
existen otras alternativas, por ejemplo:

• Saunders: Algoritmos de votación con marcas de tiempo:


• Previene problemas de interbloqueo entre 3 o más procesos.
• Permite retirar votos si la nueva petición tiene una marca de tiempo
menor.

4.4.2 xEclusión mutua distribuida (algoritmo de maekawa)

Las peticiones tienen una prioridad que está determinada por un número de
secuencia y el identificador del nodo.

 Cuando un proceso recibe una petición (request) de un nodo i, la


almacena en una cola ordenada por prioridad.
 Si no ha concedido la exclusión a otro, envía un mensaje para
conceder (locked) la exclusión mutua.
 Si ya la ha concedido, comprueba si i tiene menos prioridad que el
proceso al que se la ha concedido, si es así, contesta a i con un
mensaje de fallo (failed).
 Si i tiene más prioridad, se envía un mensaje al proceso al que se le
dio permiso preguntando (inquire) si ha obtenido permiso del resto de
los procesos.
 Cuando un proceso recibe un mensaje preguntando contesta con un
mensaje liberar (relinquish),si ha recibido algún mensaje de fallo.
 Cuando un proceso recibe un mensaje liberar (relinquish), almacena
en la cola la petición a la que había concedido la exclusión mutua y se
la concede al proceso de mayor prioridad de la cola (envía un mensaje
conceder).

¿Cómo funciona?

Observación: se debe pedir acceso a todos Es posible pedir acceso sólo a un


subconjunto.

• Siempre que los subconjuntos se traslapen

Proceso se convierten en candidatos que recolectan votos

• Procesos en la intersección de los subconjuntos ayudan a discriminar

Cada proceso tiene un voting set Vi C {p1; p2; : : : ; pN}, construidos de manera
que:

 pi є Vi
 Vi ∩ Vj ≠ ø
 |Vi| = K
 Cada proceso pi pertenece a M conjuntos Vi
Solución óptima se obtiene con K ~ √𝑁 y M = K

Maekawa demostró que la solución óptima, que minimiza K y permite a los


procesos conseguir la exclusión mutua, tiene K ~ √N y M = K, de tal forma que
cada proceso está en tantos conjuntos de votantes como elementos hay en cada
uno de esos conjuntos.
El cálculo de los conjuntos óptimos Ri no es trivial, una manera simple de
encontrar estos conjuntos Ri tales que |Ri |= - 2√N es colocar los procesos en
una matriz de √N por √N y hacer que Vi sea la unión de la fila y la columna
que contiene a pi

El algoritmo de Maekawa para poder entrar en la sección crítica, un proceso pi


envía mensajes de petición a todos los K - 1 miembros de Vi, pi no puede entrar
a la sección crítica hasta que no haya recibido K – 1 mensajes de respuesta.

Cuando un proceso pj en Vi recibe un mensaje de petición de pi, envía un


mensaje de respuesta inmediatamente, a no ser que su estado sea TOMADA o
que haya contestado, votado, desde que recibió el último mensaje de liberada.

Si no es este el caso, guarda en una cola de mensajes de petición, en el orden


de llegada, pero no responde todavía.

Cuando un proceso recibe un mensaje de liberada, elimina la cabeza de su cola


de peticiones pendientes, si la cola no está vacía, y envía un mensaje de
respuesta, un voto. Para dejar la sección crítica, pi envía un mensaje de liberada
a los K - 1 miembros de Vi.

Resumen del algoritmo


Para entender el algoritmo hay que pensar en la red como un subconjunto de
nodos (Si), y que para que un nodo pueda acceder a la sección crítica este debe
haber bloqueado anteriormente a los demás pertenecientes al mismo
subconjunto. Cuando el nodo i trate de bloquear a todos los demás nodos, si lo
consigue podrá acceder a la sección crítica, pero si no tendrá que esperar a que
todos los demás nodos estén libres para poder volver a intentarlo.

Para evitar el posible interbloqueo de los nodos debido a varias peticiones


simultáneas de distintos nodos se utilizará una prioridad de dicha petición para
dar el permiso a un nodo o a otro. Esta prioridad será una marca de tiempo o
número de secuencia (timestamp), que cuanto más baja sea, mayor prioridad le
otorgará a la petición
1. Cuando un nodo desea acceder a una sección crítica envía un mensaje
de tipo REQUEST a todos los nodos pertenecientes a su subconjunto
para tratar de bloquearlos. Este mensaje llevará asociada una prioridad,
que será una marca de tiempo o número de secuencia (timestamp) y que
será siempre mayor que cualquier otra prioridad que el nodo haya
enviado o recibido.

Cuando un nodo j recibe un mensaje de tipo REQUEST de un


nodo i comprobará si ya se encuentra bloqueado por otra petición anterior
de un nodo k. En caso de que no lo esté, se bloquea y responde al
nodo i del que recibió la petición con un mensaje de tipo LOCKED, y si
por el contrario sí que se encuentra bloqueado, añadirá la petición
recibida de i a una cola de espera. Cuando haya añadido esta última
petición a la cola comprobará si la petición con la que se encuentra
bloqueado o alguna de las que ya tiene en la cola de espera tiene mayor
prioridad que la petición que acaba de añadir. Si esto sucede, responderá
al nodo i con un mensaje de tipo FAILED. Si ninguna de las peticiones
tiene una prioridad mayor, el nodo bloqueado enviará un mensaje de
tipo INQUIRE al nodo que le envió la petición para comprobar si este
último ha conseguido bloquear a los demás nodos del subconjunto. Si ya
se había enviado previamente un mensaje de tipo INQUIRE y todavía no
se ha obtenido respuesta, no es necesario enviarlo.

2. Cuando un nodo recibe un mensaje de tipo INQUIRE tiene dos posibles


respuestas: Si ya sabe que no va a ser capaz de bloquear todos los
demás nodos por haber recibido ya un mensaje de tipo FAILED de
cualquier otro nodo, puede responder con un mensaje de
tipo RELINQUISH. De esta forma libera al nodo para aceptar otra petición
con mayor prioridad cancelando el mensaje LOCKE recibido. (Esto sirve
para evitar interbloqueos). La otra respuesta es el mensaje de
tipo RELEASE, que se produce si el nodo que recibe el INQUIRE ha
conseguido bloquear todos los demás nodos del subconjunto y está por
tanto en la sección crítica y que se envía cuando el nodo completa la
sección crítica. Si el mensaje INQUIRE ha llegado cuando ya se ha
mando un mensaje de tipo RELEASE se ignorará, y si se recibe cuando
aún no se sabe si ha habido éxito al bloquear los demás nodos se
pospone el envío de su respuesta.
3. Cuando un nodo recibe un mensaje de tipo RELINQUISH se libera del
estado bloqueado y se vuelve a bloquear, pero esta vez con la petición
de mayor prioridad que tenga en su cola de espera, independientemente
de que petición haya originado el envío del mensaje INQUIRE anterior.
La petición que había obligado el envío del INQUIRE se añade a la cola
de espera, mientras que la petición con mayor prioridad se elimina de
esta y se le envía un mensaje de tipo LOCKED al nodo que generó dicha
petición.
4. Si todos los miembros del subconjunto han respondido a las peticiones de
un nodo con un mensaje de tipo LOCKED este nodo ya puede acceder a
la sección crítica y cuando la complete enviará un mensaje de
tipo RELEASE a todos y cada uno de los miembros del subconjunto.
5. Cuando un nodo recibe un mensaje de tipo RELEASE se desbloquea de
la petición que lo mantenía bloqueado y se vuelve a bloquear con la
petición de mayor prioridad de su cola si no está vacía, enviando un
mensaje de tipo LOCKED al nodo que envío la petición que genera el
nuevo bloqueo. Si la cola está vacía, este nodo se marca como
desbloqueado.30

30
Wikipedia, Algoritmo de Maekawa.
5 CONCLUSIONES

1. La exclusión mutua es la actividad que realiza el sistema operativo para


evitar que dos o más procesos ingresen al mismo tiempo a un área de
datos compartidos o accedan a un mismo recurso.
2. La mayoría de los métodos de exclusión mutua clásicos intentan reducir
la latencia y espera activa mediante las colas y cambios de contexto.
3. la exclusión mutua es uno de los problemas fundamentales de la
programación concurrente. Muchas son las alternativas y tipos de
mecanismos que se pueden adoptar.
4. Algoritmo centralizado es el proceso que se va a encargar de definir si un
proceso tiene la posibilidad de entrar a ejecutarse dentro la sección crítica.

5. Una red de anillo token (token ring) es una red de área local (LAN) en la
que todos los ordenadores están conectados en una topología de anillo o
estrella y pasan uno o más tokens lógicos de host a host.
6. La red Token Ring consta de un conjunto de nodos conectados en forma
de anillo.
7. Algoritmo distribuido este algoritmo requiere de un orden total de todos
los eventos en el sistema. Para cualquier pareja de mensajes debe quedar
claro quién ocurrió primero.
8. Para evitar el posible interbloqueo de los nodos debido a varias peticiones
simultáneas de distintos nodos se utilizará una prioridad de dicha petición
para dar el permiso a un nodo o a otro.
6 BIBLIOGRAFÍA

1. Galeón, Pro-Concurrente.
http://pro-concurrente.galeon.com/invc/exc-mut.doc

2. Wikipedia, Exclusión mutua (informática) 26 de mayo de 2018.


https://es.wikipedia.org/wiki/Exclusi%C3%B3n_mutua_(inform%C3%A1tica)

3. Wikipedia, Exclusión mutua (informática) 26 de mayo de 2018.


https://es.wikipedia.org/wiki/Exclusi%C3%B3n_mutua_(inform%C3%A1tica)

4. Wikipedia, Algoritmo de Dekker 12 de junio de 2014.


https://es.wikipedia.org/wiki/Algoritmo_de_Dekker

5. Wikipedia, Algoritmo de Peterson 12 de junio de 2014.


https://es.wikipedia.org/wiki/Algoritmo_de_Peterson

6. Cidecame, Exclusión Mutua


http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro26/exclusin_mutua.ht
ml

7. Wikipedia, sección crítica 10 enero 2018.


https://es.wikipedia.org/wiki/Secci%C3%B3n_cr%C3%ADtica

8. Castellanos Luis, Sistemas Operativos, 2014.


https://lcsistemasoperativos.wordpress.com/tag/exclusion-mutua/

9. Castellanos Luis, Sistemas Operativos, 2014.


https://lcsistemasoperativos.wordpress.com/tag/exclusion-mutua/

10. Suzely, Karen Temas operativos procesos concurrentes – unidad III


https://www.google.com/search?ei=jzr0W83BDIuzzwKE
6rIBQ&q=exclusion+mutua+doc&oq=exclusion+mutua+doc&gs_l=psy-
ab.3..33i160l3.10262.18688..19025...1.0..0.170.1919.0j17......0....1..gws-
wiz.....0..0j0i131j0i67j0i131i67j0i10j0i22i30.2wuCMjkr-ao#
11. Galeón, Pro-Concurrente.
http://pro-concurrente.galeon.com/invc/exc-mut.doc

12. Hilda, Sincronización en Sistemas Distribuidos.


https://www.cs.buap.mx/~hilda/sincronizacion.doc
13. Sistemas Operativos Distribuidos, Sincronización, Concurrencia y
Transacciones.
http://laurel.datsi.fi.upm.es/_media/docencia/asignaturas/sod/sincronizacion-
4pp.pdf
14. Departamento de Enxenera Telemática Sistemas de Conmutación Encaminamiento.
https://es.slideshare.net/And3es/sistemas-de-conmutacin-encaminamiento
15. Tanenbaun y Van. (2008). Sistemas Distribuidos Principios y Paradigmas, México:
Pearson Educación.
16. Wikipedia, Token Ring 3 oct 2018. https://es.wikipedia.org/wiki/Token_Ring
17. Información de redes https://redesyalgomas.es.tl/token-ring.htm
18. Rouse, Margaret Token Ring diciembre 2016.
https://searchdatacenter.techtarget.com/es/definicion/Token-Ring
19. Pablo Turmero, Token Ring. Tecnología para redes de área local.
https://www.monografias.com/trabajos105/token-ring-tecnologia-redes-area-
local/token-ring-tecnologia-redes-area-local.shtml
20. Ecured, Token Ring https://www.ecured.cu/Token_Ring
21. Información de redes https://redesyalgomas.es.tl/token-ring.htm
22. DELTA_NET, TOKEN PASSING martes, 27 de septiembre de 2011.
http://first-netpaas.blogspot.com/2011/09/
23. Resumen Arquitecturas - Token Ring, Token Pass, Ethernet, Fast Ethernet,
FDDI domingo, 19 de febrero de 2012. http://ensamblarequipo-odemaris-
a.blogspot.com/2012/02/resumen-arquitecturas-token-ring-token.html
24. Tecnología, Características de las redes Token Ring
http://www.seabrookewindows.com/BQq2NylMK/
25. Cualquier cosa de tecnología, Qué es Throughput.
https://cualquiercosadetecnologia.wordpress.com/2014/05/01/que-es-
throughput-redes-cualquiercosatecno/
26. Wikipedia, Red en anillo 19 oct 2018. https://es.wikipedia.org/wiki/Red_en_anillo
27. Wikipedia, Multistation access unit 16 feb 2016.
https://es.wikipedia.org/wiki/Multistation_access_unit

28. Topologias de redes, Red WAN en: BanAhorro, “el banco pensado en tus
necesidades” miércoles, 14 de abril de 2010
http://sotopologias12c.blogspot.com/2010/04/red-wan-en-banahorro-el-banco-
pensado.html
29. SISTEMAS DISTRIBUIDOS, Algoritmo de exclusión mutua (Distribuido)
lunes, 10 de junio de 2013. http://distribui2.blogspot.com/2013/06/algoritmo-de-
exclusion-mutua-distribuido.html
30. Wikipedia, Algoritmo de Maekawa 13 may 2018.
https://es.wikipedia.org/wiki/Algoritmo_de_Maekawa

También podría gustarte