Varios métodos principales de comunicación entre procesos en Linux y Windows

Método de comunicación del proceso de Linux:

a) Pipe (Pipe): Pipe con nombre: Las tuberías se pueden utilizar para la comunicación entre procesos con afinidades. La famosa tubería supera la limitación de que la tubería no tiene nombre. Por lo tanto, además de las funciones de la tubería, también permite Comunicación entre procesos no relacionados;
b) Señal (Señal): La señal es un método de comunicación más complejo, que se utiliza para notificar al proceso de recepción que ha ocurrido un determinado evento. Además de la comunicación entre procesos, el proceso también puede enviar señales al proceso en sí mismo; además de admitir la semántica de señales Unix temprana, Linux Además de la función sigal, también admite la función de señal sigaction cuya semántica se ajusta al estándar Posix.1 (de hecho, esta función se basa en BSD. Para realizar un mecanismo de señal fiable, BSD puede unificar la interfaz externa y volver a implementar la función de señal con la función sigaction);
c) Mensaje (cola de mensajes): la cola de mensajes es una lista enlazada de mensajes, incluida la cola de mensajes del sistema de cola de mensajes Posix V. Los procesos con permisos suficientes pueden agregar mensajes a la cola y los procesos con permisos de lectura pueden leer mensajes en la cola. La cola de mensajes supera las deficiencias de la señal que transporta menos información, la tubería solo puede transportar un flujo de bytes sin formato y el tamaño de búfer limitado.
d) Memoria compartida: permite que múltiples procesos accedan al mismo espacio de memoria, que es la forma más rápida de IPC disponible. Está diseñado para la baja eficiencia de otros mecanismos de comunicación. A menudo se usa en combinación con otros mecanismos de comunicación, como semáforos, para lograr la sincronización y la exclusión mutua entre procesos.
e) Semáforo: Se utiliza principalmente como medio de sincronización entre procesos y diferentes hilos del mismo proceso.
f) Socket: Un mecanismo de comunicación entre procesos más general que se puede utilizar para la comunicación entre procesos entre diferentes máquinas. Fue desarrollado originalmente por la rama BSD del sistema Unix, pero ahora generalmente se puede portar a otros sistemas similares a Unix: tanto Linux como las variantes de System V admiten sockets.

Comunicación entre hilos de Linux: mutex, semáforos, variables de condición
Comunicación entre hilos de Windows: sección crítica (sección crítica), mutex (Mutex), semáforo (semáforo), evento (evento)
Comunicación entre procesos de Windows: canalizaciones, uso compartido de memoria, colas de mensajes, semáforos, sockets
Lo que los procesos e hilos de Windows tienen en común: semáforos y mensajes (eventos)

Que tu corazón sea como flores y árboles

Supongo que te gusta

Origin blog.csdn.net/nbcsdn/article/details/104281994
Recomendado
Clasificación