¿Qué se puede utilizar para la comunicación entre procesos en Unix?
(1) Tubería (Pipe): Las tuberías se pueden utilizar para la comunicación entre procesos que tienen relaciones de afinidad, lo que permite que un proceso se comunique con otro proceso que tiene la misma relación de origen con él. .
(2) Tubería con nombre: la tubería con nombre supera la limitación de que las tuberías no tienen nombre. Por lo tanto, además de las funciones de las tuberías, también permite que procesos no relacionados se comuniquen entre sí. Las canalizaciones con nombre tienen nombres de archivo correspondientes en el sistema de archivos. Las canalizaciones con nombre se crean mediante el comando mkfifo o la llamada al sistema mkfifo.
(3) Señal: la señal es un método de comunicación relativamente complejo que se utiliza para notificar al proceso receptor de un determinado evento. Además de la comunicación entre procesos, el proceso también puede enviar señales al proceso mismo. Además de admitir la función semántica de señal temprana de Unix, también admite sigaction que se ajusta al estándar de función semántica de señal Posix.1 (de hecho, esta función se basa en BSD. Para implementar un mecanismo de señal confiable y unificar interfaces externas , BSD usa la función sigaction y reimplementa la función de señal).
(4) Cola de mensajes: la cola de mensajes es una tabla de mensajes vinculada, incluida la cola de mensajes V del sistema de cola de mensajes Posix. Un proceso con permisos suficientes puede agregar mensajes a la cola y un proceso con permisos de lectura puede leer mensajes en la cola. La cola de mensajes supera las deficiencias de las señales que transportan menos información, las canalizaciones solo pueden transportar flujos de bytes sin formato y las restricciones de tamaño del búfer
(5) *** Disfrute de la memoria: permita que múltiples procesos accedan al mismo espacio de memoria y es la forma más rápida de IPC disponible. Diseñado para funcionar de manera menos eficiente que otros mecanismos de comunicación. A menudo se utiliza junto con otros mecanismos de comunicación, como señales, para lograr sincronización y exclusión mutua entre procesos.
(6) Mapeo de memoria (memoria mapeada): el mapeo de memoria permite que cualquier número de procesos se comuniquen entre sí. Cada proceso que utiliza este mecanismo asigna el archivo disfrutado a su propio espacio de direcciones de proceso. . para lograr.
(7) Señal: Se utiliza principalmente como medio de sincronización entre procesos y entre diferentes hilos de un mismo proceso.
(8) 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. Desarrollado originalmente para la bifurcación BSD de los sistemas Unix, pero ahora es generalmente portátil a otros sistemas similares a Unix: las variantes de Linux y System V admiten sockets.