Pregunta

es un mecanismo IPC se utiliza la memoria compartida y semáforos para la sincronización simple como tuberías o dúplex como colas de mensajes?

¿Fue útil?

Solución

Si mi comprensión de su pregunta es correcta, es dúplex.

Con la memoria compartida, ambos procesos podrían comunicarse en ambos sentidos, no sólo con uno como el lector y uno como escritor. Tubos sólo permiten leer o escribir, pero se puede superar esto mediante el uso de dos tubos (aunque las colas de mensajes son una mejor opción).

Otros consejos

Un semáforo funciona así ... proc un: "¿Es el recurso esté disponible?" semáforo = -2 Sí. semáforo ++ proc b: "¿Es el recurso ..." semáforo = -1 Sí. semáforo ++ proc c: "es el recurso ..." semáforo = 0 No. (no pasa nada)

En este punto, Proc c puede poner en cola (dependiendo de su API, esto podría ser un bucle ocupado o puede ser una devolución de llamada, o simplemente puede ser que generará un subproceso de espera y escribir su propia devolución de llamada)

proc un: "im hecho" semáforo -;

c proc se dará cuenta de que el semáforo está disponible, a través de algo probablemente similar a lo que he mencionado anteriormente.

la razón por la que escribí todo eso es por lo que podría decir, su tanto. Es como una cola de mensajes en el que se puede tener subprocesos en espera de un recurso (memoria compartida controlado por un semáforo) que desencadenan algún tipo de acción, incluso un mensaje del sistema real, cuando consiguen el recurso. O podría simplemente ocupado: espere hasta que se hace, y que sería como tuberías.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top