Posteriormente a consultar expertos en el tema, programadores de varias áreas y maestros hemos dado con la solución a la interrogande y la dejamos plasmada en esta publicación.
Solución:
Es una diferencia bastante simple. En un modelo de memoria compartida, varios trabajadores operan con los mismos datos. Esto abre muchos de los problemas de concurrencia que son comunes en la programación paralela.
Los sistemas de paso de mensajes hacen que los trabajadores se comuniquen a través de un sistema de mensajería. Los mensajes mantienen a todos separados, de modo que los trabajadores no pueden modificar los datos de los demás.
Por analogía, digamos que estamos trabajando con un equipo en un proyecto juntos. En un modelo, todos estamos apiñados alrededor de una mesa, con todos nuestros papeles y datos dispuestos. Solo podemos comunicarnos cambiando cosas en la mesa. Debemos tener cuidado de no tratar todos de operar con el mismo dato a la vez, o se volverá confuso y las cosas se complicarán. mixed arriba.
En un modelo de paso de mensajes, todos nos sentamos en nuestros escritorios, con nuestro propio juego de papeles. Cuando queramos, podemos pasar un papel a otra persona como un “mensaje”, y ese trabajador ahora puede hacer lo que quiera con él. Solo tenemos acceso a lo que tenemos frente a nosotros, por lo que nunca tenemos que preocuparnos de que alguien se acerque y cambie uno de los números mientras estamos en medio de resumirlos.
Ok, analogía tonta!
- En el modelo de memoria compartida, la memoria es compartida por procesos cooperantes, que pueden intercambiar información leyendo y escribiendo datos, pero en el paso de mensajes, la comunicación se lleva a cabo mediante mensajes intercambiados entre los procesos cooperantes.
- La memoria compartida ayuda a ejecutar procesos simultáneamente, pero el paso de mensajes no.
- La función de paso de mensajes tiene dos operaciones: enviar (mensaje) y recibir (mensaje). El proceso de que tiene tamaño fijo o variable.
- El paso de mensajes es útil para intercambiar pequeñas cantidades de datos, porque no es necesario evitar conflictos. El paso de mensajes también es más fácil de implementar que la memoria compartida para la comunicación entre procesos.
- En los sistemas de memoria compartida, las llamadas al sistema solo se requieren para establecer regiones de memoria compartida. Una vez que se establece la memoria compartida, todos los accesos se tratan como accesos de memoria de rutina y no se requiere asistencia del kernel.
Más rápido
La memoria compartida permite la máxima velocidad y conveniencia de la comunicación, ya que se puede hacer a la velocidad de la memoria cuando se encuentra dentro de una computadora. La memoria compartida es más rápida que el paso de mensajes, ya que los sistemas de paso de mensajes generalmente se implementan mediante llamadas al sistema y, por lo tanto, requieren la tarea más lenta de la intervención del kernel.
Los modelos de paso de mensajes (Erlang, por ejemplo) no tienen ningún estado compartido; toda la sincronización y comunicación se realiza mediante el intercambio de mensajes. Los modelos de memoria compartida se comunican mediante lectura/escritura en bloques de memoria compartida, que están protegidos por semáforos o similares.
Si guardas alguna incertidumbre o capacidad de afinar nuestro división te recomendamos ejecutar un comentario y con gusto lo interpretaremos.