Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porcarlos torrez vega Modificado hace 5 años
2
Exclusión Mutua
3
Repaso Tema relacionado a la sesión anterior: Sincronización del reloj
4
Logro de aprendizaje Al final de la sesión, el alumno analiza y comprende los diferentes algoritmos relacionados con sincronización, exclusión mutua, así como la importancia de estos en el diseño de sistemas distribuidos.
5
Agenda EXCLUSIÓN MUTUA Algoritmo centralizado Algoritmo distribuido Algoritmo de anillo de token
6
Exclusión Mutua El problema de la exclusión mutua en sistemas distribuidos surge cuando se tiene acceso concurrentemente a recursos compartidos por varios nodos de procesamiento. En sistemas de una sola computadora, el estado de un recurso compartido y el estado de un usuario es más accesible por la existencia de una memoria compartida y se pueden implementar fácilmente soluciones a la exclusión mutua, haciendo uso de variables compartidas como los semáforos.
7
Exclusión Mutua Sin embargo, en sistemas distribuidos los recursos compartidos y los usuarios pueden estar distribuidos y no existe una memoria compartida entre ellos; consecuentemente, los enfoques basados en variables compartidas no son aplicables a los sistemas distribuidos, en su lugar; se deben utilizar enfoques basados en el paso de mensajes. Cuando un proceso requiere leer o actualizar ciertas estructuras de datos compartidas, primero entra a una sección crítica (SC) para lograr la exclusión mutua asegurándose que ningún otro proceso utilice las mismas estructuras al mismo tiempo.
8
Exclusión Mutua Las soluciones definidas para estos problemas son: Algoritmos centralizados. Algoritmos distribuidos. Algoritmos de anillo de token.
9
Exclusión Mutua Funciones básicas de exclusión mutua: enter(): Acceso a la región critica (bloqueo). operations(): Manipulación de los recursos compartidos. exit(): Liberación del recurso (despierta a procesos en espera). 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).
10
Exclusión Mutua La evaluación de los algoritmos de exclusión mutua se evalúa en base a los siguientes factores: Ancho de banda: Proporcional al número de mensajes transmitidos. Retardo del cliente: En la ejecución de cada una de las operaciones enter()y en cada operación exit(). 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. Tolerancia a fallos: Comportamiento del algoritmo ante diferentes modalidades de fallo.
11
Algoritmo Centralizado 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: 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.
12
Algoritmo Centralizado 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.
13
Algoritmo Centralizado Es un esquema sencillo, justo y con pocos mensajes de control. La limitante es que el coordinador puede ser un cuello de botella y puede fallar y bloquear a los procesos que esperan una respuesta de habilitación de acceso 0 enter OK C 1 2 No hay respuespuesta (bloquea al cliente) 0 enter C 1 2 OK 0 exit C 12 1 Cola de Espera 1 2 2
14
Algoritmo Centralizado Rendimiento: Ancho de banda: El acceso al recurso implica dos mensajes (aunque el recurso esté libre). Retardo del cliente: enter(): El retardo de transmisión de los dos mensajes. exit(): Con comunicación asíncrona no implica retraso en cliente.
15
Algoritmo Centralizado Throughput del sistema: 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: La caída del elemento de control es crítica (alg. de elección). La caída de los clientes o la perdida de mensajes se puede solucionar por medio de temporizadores.
16
Algoritmo Centralizado Ventajas: Se puede generalizar para asignación de recursos en general. Es justo, las peticiones son atendidas en el orden que son realizadas. Requiere sólo de tres mensajes (requerir, otorgar, liberar) Desventajas: Centralizado Si el coordinador no envía respuesta ante la negación, el solicitante no sabe si la respuesta no le llega por negación o por falla.
17
Algoritmo de Anillo de Fichas (Token Ring) Los procesos se organizan por software formando un anillo lógico asignándose a cada proceso una posición en el anillo. Cada proceso sabe cuál es el siguiente luego de él. token Al inicializar el anillo se le da al proceso “0” una ficha (token) que circula en todo el anillo, que se transfiere del proceso “k” al “k + 1” en mensajes puntuales.
18
Algoritmo de Anillo de Fichas (Token Ring) Cuando un proceso obtiene la ficha de su vecino verifica si intenta entrar a una región crítica: En caso positivo: El proceso entra a la región crítica, hace el proceso necesario y sale de ella. Después de salir pasa la ficha a lo largo del anillo: No se puede entrar a una segunda región crítica con la misma ficha (token o permiso). En caso negativo: La vuelve a pasar.
19
Algoritmo de Anillo de Fichas (Token Ring) En un instante dado solo un proceso puede estar en una región crítica. Si la ficha se pierde debe ser regenerada, pero es difícil detectar su perdida: La cantidad de tiempo entre las apariciones sucesivas de la ficha en la red no está acotada, por ello es difícil decidir si está perdida o demorada en algún proceso que no la libera.
20
Algoritmo de Anillo de Fichas (Token Ring) La falla de un proceso es detectada cuando su vecino intenta sin éxito pasarle la ficha: Se lo debe eliminar del grupo y pasar la ficha al siguiente proceso activo. To dos los procesos deben mantener la configuración actual del anillo.
21
Algoritmo de Anillo de Fichas (Token Ring) La falla de un proceso es detectada cuando su vecino intenta sin éxito pasarle la ficha: Se lo debe eliminar del grupo y pasar la ficha al siguiente proceso activo. To dos los procesos deben mantener la configuración actual del anillo.
22
Algoritmo de Anillo de Fichas (Token Ring) La falla de un proceso es detectada cuando su vecino intenta sin éxito pasarle la ficha: Se lo debe eliminar del grupo y pasar la ficha al siguiente proceso activo. To dos los procesos deben mantener la configuración actual del anillo.
23
Algoritmo de Anillo de Fichas (Token Ring) Rendimiento: Ancho de banda: El algoritmo consume ancho banda de forma continua. Retardo del cliente: La entrada en la sección critica requiere de 0 a N mensajes. La salida sólo implica un mensaje.
24
Algoritmo de Anillo de Fichas (Token Ring) Throughput del sistema: La entrada del siguiente proceso tras la salida del que ocupa la región critica implica de 1 a N mensajes. Tolerancia a fallos: Perdida del token: Detección y regeneración Caída de un elemento del anillo: Reconfiguración del anillo.
25
Algoritmo Distribuido 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
26
Algoritmo Distribuido Si el receptor no está en la región crítica y no desea entrar a ella, envía de regreso un mensaje o.k. 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 o.k. Si su propio mensaje tiene una marca menor el receptor no envía nada y encola el pedido.
27
Algoritmo Distribuido 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 o.k. 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.
28
Algoritmo Distribuido de Ricart y Agrawala 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 puede entrar.
29
Algoritmo Distribuido de Ricart y Agrawala Los procesos 1 y 3 quieren acceder a la sección crítica. Los relojes lógicos son respectivamente 23 y 21. 1 2 3 23 21 WANTED OK 23 WANTED
30
Algoritmo Distribuido de Ricart y Agrawala Rendimiento: 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. Retardo del cliente: La entrada en la sección critica requiere de N-1 mensajes. La salida no implica ningún mensaje.
31
Algoritmo Distribuido de Ricart y Agrawala 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. Tolerancia a fallos: Retardo de respuesta elevado o perdida de mensajes: Se reduce por medio de mensajes NO-OK.
32
Algoritmo Distribuido de Maekawa 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
33
Algoritmo Distribuido de Maekawa
34
Práctica Elaborar un mapa mental con los conceptos planteados en clase.
35
Preguntas
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.