Please enable JavaScript.
Coggle requires JavaScript to display documents.
Mécanismos de sincronización y comunicación - Coggle Diagram
Mécanismos de sincronización y comunicación
Sincronización
Los mecanismos de sincronización permiten forzar a un proceso a detener su ejecución hasta que ocurra un evento en otro proceso.
Define ordenes estrictas de ejecución
Forma de comunicación eficiente
Hilos de comunicación
Semáforo
Los semáforos se emplean para permitir el acceso a diferentes partes de programas (llamados secciones críticas) donde se manipulan variables o recursos que deben ser accedidos de forma especial.
Tipos
Semáforo contador
valor entero que puede variar en un dominio no restringido – uso: existen varias instancias de un recurso
Semáforo binario
valor entero que sólo puede variar entre 0 y 1.
Ejemplos de uso
• Implementar cierres de exclusión mutua o locks
• Barreras
• Permitir a un máximo de N threads acceder a un recurso, inicializando el semáforo en N
• Notificación. Inicializando el semáforo en 0 puede usarse para comunicación entre threads sobre la disponibilidad de un recurso
Monitor
Los monitores son estructuras de datos utilizadas para sincronizar dos o más procesos o hilos de ejecución que usan recursos compartidos
Componentes
• Datos privados: contiene los procedimientos privados, que sólo pueden ser usados desde dentro del monitor y no son visibles desde fuera
• Procedimientos del monitor: son los procedimientos que pueden ser llamados desde fuera del monitor.
• Inicialización: contiene el código a ser ejecutado cuando el monitor es creado
• Cola de entrada: contiene a los threads que han llamado a algún procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos aún.
Tipos
Tipo Hoare
El monitor toma entonces el lock y se lo entrega al thread durmiente, que reanuda la ejecución. Más tarde cuando el monitor quede libre nuevamente el thread que cedió el lock volverá a ejecutar.
Tipo mesa
Modelos de comunicación
La comunicación entre procesos (IPC-InterProcess Comunication) mediante paso de mensajes es necesaria cuando los procesos no comparten memoria común (no comparten variables comunes)
Cliente establece una conexión
Servidor estable un puerto
Cliente y el servidor se comunican
Candados
Todo monitor tiene un candado. Cerrar el candado
(lock)
abrir el candado
(unlock)
(obviamente correspondiendo a las operaciones P y V respectivamente).
Transacciones
Begintransaction y end-transaction
Relación entre dos estados
Objeto del primer estado
Operación
Objeto del segundo estado