Paso de mensajes
Cuando se quiere comunicar y sincronizar procesos que ejecutan en maquinas distintas es necesario recurrir al paso de mensajes . En este tipo de comunicación los procesos intercambian mensajes entre ellos.
Utilizando paso de mensajes como mecanismo de comunicación entre procesos no es necesario recurrir a variables compartidas, únicamente debe existir un enlace de comunicación entre ellos.
Los procesos se comunican mediante dos operaciones básicas:
· SEND (destino, mensaje): envía un mensaje al proceso destino.
· RECEIVE (origen, mensaje): recibe un mensaje del proceso origen.
Existen múltiples implementaciones de sistemas con paso de mansajes. A continuación se describen algunos aspectos de diseño relativos a este tipo de sistemas.
- Tamaño del mensaje
- Flujo de datos
- Nombrado
- Sincronización
- Almacenamiento
| INTERBLOQUEOS |
| Un ínterbloqueo supone un |
| bloqueo permanente de un conjunto de procesos que compiten por recursos o bien se |
| comunican o sincronizan entre sí. |
| Los interbloqueos que aparecen cuando se utilizan mecanismos de comunicación y |
| sincronización se deben a un mal uso de los mismos. CONCURRENCIA En computación, la concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí. Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que se están ejecutando a la vez. Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros también en ejecución, el número de caminos de ejecución puede ser extremadamente grande, resultando en un comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programación y conceptos que permitan hacer la concurrencia más manejable. |