Please enable JavaScript.
Coggle requires JavaScript to display documents.
Exclusión mutua = (Tu turno) - Coggle Diagram
Exclusión mutua = (Tu turno)
Exclusión mutua
Es una propiedad de un sistema distribuido que permite un control concurrente a sus recursos
paralelismo: Hacer muchas cosas a la vez
Concurrencia: capacidad para lidiar con muchas cosas a la vez
Su propósito es evitar que los accesos concurrentes corrompan los recursos o los vuelvan inconsistentes
Soluciones basadas en token
Algoritmo Token-ring
¿Cómo funciona?
Cuando se inicia el anillo, se le asigna un token al proceso 0
El token circula por el anillo pasando por todos los procesos
Cuando el proceso recibe el token, revisa si requiere acceder al recurso. Si lo requiere, se queda con el token hasta que termine de usar el recurso y libera el token
Ventajas
Garantiza la exclusión mutua
No se produce inanición
Sencillo de implementar y se recupera bien de las fallas
Rápido y eficiente cuando pocos nodos requieren acceso.
Concepto
Se basa en el uso de un anillo lógico vía software
En el anillo, cada proceso tiene asignado un orden numérico y solamente conoce cuál es el número del siguiente nodo
Desventaja
No es escalable
Soluciones basadas en permisos
Algoritmo Centralizado
Concepto
Similar a un sistema cliente/servidor donde el servidor otorga permisos
Los procesos eligen a un coordinador (sevidor) y los demás procesos (que actúan como clientes) enviando consultas.
Ventajas
Garantiza la exclusión mutua
Las peticiones se atienden en orden de llegada
No hay inanición
Fácil de implementar
¿Cómo funciona?
Si el proceso 2 solicita permiso al recurso, el coordinador no le responde, ni le da acceso al recurso, pero almacena el identificador de proceso en una cola (lo pone en espera).
El proceso 1 realiza una liberación o desbloqueo del recurso, el coordinador inmediatamente atiende al proceso 2
El proceso 1 solicita permiso al coordinador para acceder a un recurso compartido. Se le otorga el acceso
Desventaja
Si el coordinador el sistema de exclusión mutua
Algoritmo Descentralizado
¿Cómo funciona?
Los nombre de los recursos son utilizados para generar claves hash
Todos los nodos mantienen una tabla con todas las claves de todos los nodos
Se utiliza un sistema basado en HDT (DistributedHash Table) en el que el recurso se replica n veces
Cada nodo por lo tanto, puede buscar a cada nodo responsable de una réplica y controlar el acceso a esa réplica
Concepto
Utiliza réplicas de los recursos
Es un algoritmo de votación, donde cada réplica tiene su propio coordinador
Para acceder al recurso, se tiene que lograr un voto mayoritario
Desventaja
Es costoso de implementar
Es mas lento que los algoritmos centralizados
Ventaja
sistema robusto, continuidad de servicio
Tolerante a fallos
Algoritmo Distribuido
Concepto
Está basado en los trabajo de Lamport sobre la sincronización y el acceso a los recursos se consigue consiguiendo entrar a una “sección critica”
Los nodos consiguen la sección crítica sólo si los demás nodos le conceden acceso, y cuando se libera el recurso, se les notifica a todos
¿Cómo funciona?
El proceso 1 no está interesado y les responde con un OK a todos. Los procesos 0 y 2 comparan sus tiempos y el proceso 2 concede el permiso y el proceso 0 gana acceso y guarda en cola la petición del proceso 2
Cuando el proceso 0 libera el recurso, notifica al proceso 2 que puede usar el recurso
El proceso 0 y 2 envían a todos en simultaneo una petición de acceso con un timestamp de 8 y 12 respectivamente
Ventajas
Garantiza la exclusión mutua
No produce deadlocks(estado de espera continua entre varios procesos sin fin)
No ocasionan cuellos de botella
Desventaja
Es mas lento que los algoritmos centralizados
Clasificación
Soluciones basadas en permisos
Los procesos solicitan permisos entre sí
Soluciones basadas en token
Solo hay 1 token disponible, el que lo tiene,accede al recurso
Usa mensajes especiales llamados token