Please enable JavaScript.
Coggle requires JavaScript to display documents.
Mecanismos de Sincronización - Coggle Diagram
Mecanismos de Sincronización
Modelos de comunicación
Estado compartido
Arquitectura Monolitca
Intercambio de Mensajes
Sistemas Distribuidos
Lock
Funcionamiento
Envuelve un bloque de código que solo puede ser ejecutado por un hilo a la vez, al tiempo que bloquea y restringe el acceso al objeto toda vez que ha sido ocupado.
Características
Es un mecanismo de mutua exclusion para un objeto determinado.
El Lock condiciona a los hilos a acceder al objeto en cuestion a ser accedido solamente uno a la vez en una instancia de tiempo.
Implementación
Se hace uso de la palabra clave lock y se envuelve algun bloque decodigo debajo de esta sentencia. Todo lo que este dentro de este codigo puede ser ejecutado por un solo hilo a la vez.
Algoritmo de ejemplo
Monitor
Implementación
Se da mediante el uso de la clase Monitor de la libreria System.Threading.Tasks.
Algoritmo de ejemplo
Funcionamiento
Funciona al agregar un Lock a los objetos, es decir a los Reference Types (Clases, Strings, Interfaces, Delegates)
Características
Sincroniza el acceso a objetos
Utiliza la implementacion de Lock, y lo incorpora en una clase concreta "Monitor" que expone la funcionalidad Enter, TryEnter, Exit para sincronizar el acceso a lso objetos
Se asocian estrictamente a un objeto que se encuentra bajo demanda concurrente
Se puede llamara desde cualquier contexto de una aplicación
La clase Monitor es static (No se puede instanciar)
Semáforo
Funcionamiento
Este mecanismo expone metodos para que los hilos intenten acceder a un pool de recursos de forma ordenada. Y se encarga de controlar el estado de los recursos al conocer cuando un lugar ha sido desocupado y permitirle la entrada a un nuevo hilo
Implementación
Se hace uso de la clase Sempahore de la libreria System.Threading. En donde debes crear una nueva instancia de la clas Semaphore, y definir el numero de hilos que pueden tener acceso a traves de el (0 a n).
Algoritmo de ejemplo
Características
Mecanismo que limita el numero de hilos que tienen acceso a un pool de recursos.
Esta intimamente relacionado con un pool de recursos y no con un objeto en particular, a diferencua de un Monitor
Transacción
Características
Secuencias de operaciones que deben trabajar como una unidad logica de trabajo
Mecanismo que sirve para asegurar la atomicidad, consistencia y aislamiento de datos
Funcionamiento
Funcionan como un bloque de codigo que permite definir diferentes procesos que deben interactuar como un solo evento.
Implementación
Se hace uso de la libreria System.Transactions en la cual delimitas el alcanze de la transaccion, el nivel de aislamiento y demarcas el bloque de codigo que debe actuar como un solo evento.
Algoritmo de Ejemplo