La comunicación entre procesos de Linux (IPC) tiene varias formas, las siguientes describirán brevemente:
una. Pipe
Pipeline es el modo IPC inicial admitido por Linux. Los tubos se pueden dividir en canales sin nombre, canales con nombre, etc.
(1) Canalización anónima, que tiene varias características:
1) El canal es semidúplex y solo puede admitir un flujo de datos en una sola dirección; debe establecerse cuando se requiere la comunicación entre dos procesos. Dos tuberías;
2) Las tuberías sin nombre se crean utilizando la función pipe () y solo se pueden usar entre procesos primarios e hijos o entre procesos hermanos;
3) Canalizaciones para ambos extremos de la comunicación En otras palabras, es esencialmente un archivo separado que solo existe en la memoria;
4) Operaciones de lectura y escritura de datos: un proceso escribe datos en la canalización y los datos escritos se agregan al final del búfer de tubería. Otro proceso lee los datos en la cabecera del búfer en la tubería.
(2) Canalizaciones con nombre
Una tubería con nombre también es semidúplex, pero permite la comunicación entre procesos que no están relacionados. Específicamente, la canalización conocida proporciona un nombre de ruta asociado con él, y existe en el sistema de archivos en forma de FIFO (primero en entrar, primero en salir). Esto permite que incluso los procesos no relacionados se comuniquen entre sí a través de FIFO, siempre y cuando tengan acceso a las rutas ya proporcionadas.
Vale la pena señalar que solo tiene sentido escribir datos en la tubería cuando la tubería tiene un final de lectura. De lo contrario, el proceso que escribe datos en la tubería recibe la señal SIGPIPE del kernel, la aplicación puede personalizar el manejador de señales o ignorar la señal directamente.
Dos. Semáforos
Los semáforos son contadores que controlan el acceso simultáneo de los recursos mediante múltiples procesos o subprocesos en los procesos. A menudo se implementa como un mecanismo de bloqueo. Esencialmente, el semáforo es una variable protegida y solo se puede acceder a través de la inicialización y dos operaciones atómicas estándar (P /V).
(Las operaciones P, V también se suelen denominar espera (s), señal (es)) y
tres. Señales
Las señales son uno de los métodos más antiguos de comunicación entre procesos que se utilizan en los sistemas Unix. El sistema operativo señala a un proceso determinado que se ha producido un evento predeterminado, el proceso que recibe la señal puede elegir procesar la señal de diferentes maneras. Primero, se puede usar el mecanismo de procesamiento predeterminado &mdash, el proceso se interrumpe o sale y el proceso se ignora. La señal, así como la función de procesamiento que personaliza la señal, realiza la acción correspondiente.
El kernel produce señales para que los procesos respondan a diferentes eventos, que son la fuente de la señal. La fuente de la señal puede ser: excepción, otros procesos, interrupción de terminal (Ctrl-C, Ctrl + \\, etc.), control de trabajo (frente, administración de procesos en segundo plano, etc.), problema de la cantidad de asignación (tiempo de espera de la CPU o archivo demasiado grande, etc.), kernel Notificaciones (como I /O Ready, etc.), alarmas (temporizadores).
Cuatro. Cola de mensajes
Una cola de mensajes es una lista enlazada de mensajes que permite que uno o más procesos le escriban mensajes y uno o más procesos leen mensajes. Linux mantiene una tabla de vectores de cola de mensajes: msgque para representar todas las colas de mensajes en el sistema.
Message Queue Server supera la falta de información de señalización, y la canalización solo puede soportar las desventajas de flujos de bytes sin formato y limitaciones de búfer.
Cinco. Memoria compartida
La memoria compartida se asigna a una parte de la memoria a la que pueden acceder otros procesos. Esta memoria compartida se crea mediante un proceso y luego se pueden montar otros procesos en esta memoria compartida. La memoria compartida es el mecanismo de IPC más rápido, pero como el mismo Linux no puede implementar el control síncrono y requiere un programa de usuario para el control de acceso concurrente, generalmente combina otros mecanismos de comunicación para lograr la comunicación entre procesos, como los semáforos.
Cinco. Sockets
Los sockets también son un mecanismo de comunicación entre procesos, pero la principal diferencia entre este y otros métodos de comunicación es que puede implementar la comunicación de procesos entre diferentes hosts. Un socket se puede considerar como un punto final para la comunicación entre procesos. El nombre de cada socket es único, otros procesos pueden acceder, conectarse y comunicar datos.
Para Linux principiante (también lo soy), no quiero meterme con Linux en la máquina virtual, y no qu
IAP, el nombre completo es Programación en la aplicación, el chino se interpreta como Programación
un resumen en la empresa para llevar a cabo una gestión unificada de las cuentas y contraseñas pa
Cuando se trata de problemas de Oracle en el entorno de producción real, a veces se necesita una i
Consideraciones sobre la partición de Linux
Cómo obtener la ruta absoluta del archivo de configuración en Linux
Los fundamentos de usar el shell en Linux tutorial
Tutorial de extensión imagick de instalación de Linux
Instalación y desinstalación básica del sistema operativo Linux RPM y TAR
Cómo modificar el nombre de host de Linux
Configuración del servicio de acceso telefónico VPN para usuarios de telecomunicaciones
El propietario o el permiso del archivo (o carpeta) de modificación por lotes bajo Linux
Error de compilación del kernel de Linux error fatal: linux /config.h: No existe tal archivo o
Linux dispone de espacio reservado para el ajuste de la capacidad del disco
Cuantas más particiones Win7, ¿peor?
Win2003 viene con la configuración del servidor de correo
Potente función de limpieza de disco de Windows
La inextricable relación entre el ratón y el "ayudante"
¿Cómo agregar amigos de wechat? ¿Cómo agregar amigos a WeChat?
La función de escaneo de fax del sistema Win7 no se puede utilizar normalmente
WP8.1 exposición del panel frontal de la nueva máquina, con botones virtuales