Comunicacion entre procesos
De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
La comunicación entre procesos, en inglés IPC (Inter-process Communication) es una función básica de los sistemas operativos. Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables compartidas o buffers, o a través de las herramientas provistas por lasrutinas de IPC. La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí, normalmente a través de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente.
La comunicación se establece siguiendo una serie de reglas (protocolos de comunicación). Los protocolos desarrollados para internet son los mayormente usados: IP (capa de red), protocolo decontrol de transmisión (capa de transporte) y protocolo de transferencia de archivos , protocolo de transferencia de hipertexto (capa de aplicación).
Los procesos pueden estar ejecutándose en una o más computadoras conectadas a una red. Las técnicas de IPC están divididas dentro de métodos para: paso de mensajes, sincronización, memoria compartida y llamadas de procediemientos remotos (RPC). Elmétodo de IPC usado puede variar dependiendo del ancho de banda y latencia (el tiempo desde el pedido de información y el comienzo del envió de la misma) de la comunicación entre procesos, y del tipo de datos que están siendo comunicados.
Conceptos básicos
El sistema operativo provee mínimamente dos primitivas, enviar y recibir, normalmente llamadas send y receive. Asimismo, debe implementarse unenlace de comunicación entre los procesos de la comunicación. Este enlace puede ser unidireccional o multidireccional según permita la comunicación en solo uno o en varios sentidos.
[editar] Tipos de comunicación
La comunicación puede ser:
* Síncrona o asíncrona
* Persistente (persistent) o momentánea (transient)
* Directa o indirecta
* Simétrica o asimética
* Con uso debuffers explícito o automático
* Envío por copia el mensaje o por referencia
* Mensajes de tamaño fijo o variable
[editar] Síncrona
Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio.
[editar] Asíncrona
Quien envía continúa con su ejecución inmediatamente después de enviar el mensaje al receptor.
[editar] PersistenteEl receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicación, el mensaje se almacena tanto tiempo como sea necesario para poder ser entregado (Ej.: e-Mail).
[editar] Momentánea (transient)
El mensaje se descarta si el receptor no está operativo al tiempo que se realiza la comunicación. Por lo tanto no será entregado.
[editar] Directa
Las primitivas enviar y recibirexplicitan el nombre del proceso con el que se comunican. Ejemplo:
enviar (mensaje, A) envía un mensaje al proceso A
Es decir se debe especificar cual va a ser el proceso fuente y cual va a ser el proceso Destino.
Las operaciones básicas Send y Receive se definen de la siguiente manera: Send (P, mensaje); envía un mensaje al proceso P (P es el proceso destino). Receive (Q, mensaje); espera larecepción de un mensaje por parte del proceso Q (Q es el proceso fuente).
Nota: Receive puede esperar de un proceso cualquiera, un mensaje, pero el Send sí debe especificar a quién va dirigido y cuál es el mensaje.
[editar] Indirecta
La comunicación Indirecta: Es aquella donde la comunicación está basada en una herramienta o instrumento ya que el emisor y el perceptor están a distancia.[editar] Simétrica
Todos los procesos pueden enviar o recibir. También llamada bidireccional para el caso de dos procesos.
[editar] Asimétrica
Un proceso puede enviar, los demás procesos solo reciben. También llamada unidireccional. Suele usarse para hospedar servidores en Internet.
[editar] Uso de buffers automático
El transmisor se bloquea hasta que el receptor recibe el mensaje (capacidad...
Regístrate para leer el documento completo.