Sie sind auf Seite 1von 5

COMUNICACION ENTRE PROCESOS 1 La comunicacin procesos, es una funcin bsica de los sistemas operativos.

El sistema operativo provee mnimamente dos primitivas, enviar y recibir, normalmente llamadas send y receive. Asimismo, debe implementarse un enlace de comunicacin entre los procesos de la comunicacin. Este enlace puede ser unidireccional o multidireccional segn permita la comunicacin en solo uno o en varios sentidos. Los procesos pueden comunicarse entre s a travs de compartir espacios de memoria, ya sean variables compartidas o buffers, o a travs de las herramientas provistas por las rutinas de IPC (a traves de un mecanismo). La comunicacin se establece siguiendo una serie de protocolos de comunicacin. 2 Los protocolos desarrollados para internet son los mayormente usados: IP (capa de red), protocolo de control de transmisin (capa de transporte) y protocolo de transferencia de hipertexto (capa de aplicacin). I. TIPOS DE COMUNICACIN 1. Sncrona Quien enva permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio 2. Asncrona Quien enva contina con su ejecucin inmediatamente despus de enviar el mensaje al receptor. 3. Persistente El receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicacin, el mensaje se almacena tanto tiempo como sea necesario para poder ser entregado (Ej.: e-Mail). 4. Momentnea (transient) El mensaje se descarta si el receptor no est operativo al tiempo que se realiza la comunicacin. Por lo tanto no ser entregado. 5. Directa Las primitivas enviar y recibir explicitan el nombre del proceso con el que se comunican. Ejemplo: enviar (mensaje, A) enva 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 bsicas Send y Receive se definen de la siguiente manera: Send (P, mensaje); enva un mensaje al proceso P (P es el proceso destino). Receive (Q,

mensaje); espera la recepcin 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 quin va dirigido y cul es el mensaje. 6. Indirecta La comunicacin indirecta se implementa mediante puertos, en alguna bibliografa se lo denomina buzones. 7. Simtrica Todos los procesos pueden enviar o recibir. Tambin llamada bidireccional para el caso de dos procesos. 8. Asimtrica Un proceso puede enviar, los dems procesos solo reciben. Tambin llamada unidireccional. Suele usarse para hospedar servidores en Internet. II. USO DE BUFFERS AUTOMTICO El transmisor se bloquea hasta que el receptor recibe el mensaje (capacidad cero). 1. Comunicacin orientada a mensajes Las comunicaciones RPC se basan en la idea que el receptor est operativo para poder invocar una cierta funcin, no podemos suponer que el receptor siempre estar operativo y esperando a comunicarse. La solucin es definir la comunicacin en trmino de paso de mensajes. Mensajes momentneos vs. mensajes persistentes a) Momentneos: no soportan el envo de mensajes persistentes. Sockets, Message-passing interface (MPI). Sockets Berkeley Sistema fuertemente acoplado a las redes TCP/IP Sockets API: 1. 2. 3. 4. 5. 6. 7. 8. socket: crea una nueva comunicacin. bind: aade la direccin local al socket. listen: queda en espera de conexiones. accept: queda bloqueado hasta la llegada de un pedido de conexin. connect: pedido de establecimiento de conexin. send: enviar datos por la conexin. receive: recibir datos por la conexin. close: desvincula el socket la direccin local.

Message-passing interface (MPI) Diseado para aplicaciones paralelas crea un nivel de abstraccin ms alto que el provisto por sockets. Provee una interface con primitivas ms avanzadas. Por el contrario cuenta con una gran cantidad de implementaciones (librera y protocolos) propietarias lo que genera la necesidad de una interface standard. MPI API: 1. 2. 3. 4. 5. 6. 7. 8. MPI_bsend: vincula la salida de mensajes con el buffer de salida local. MPI_send: enva un mensaje y espera hasta que es copiado al buffer. MPI_ssend: enva un mensae y espera hasta que el receptor inicie. MPI_sendrecv: enva un mensaje y espera respuesta. MPI_isend: pasa la referencia de un mensaje y contina. MPI_issend: para la referencia de un mensaje y espera hasta que el receptor inicie. MPI_recv: recibe un mensaje; se bloquea en el caso de no haberlo. MPI_irecv: verifica si hay mensajes entrantes; no se bloquea. b) Persistentes: el mensaje se encola y se entrega cuando se pide. Message-oriented middleware (MOM) Implementaciones Hay un nmero de APIs que pueden ser usadas por IPC. Un nmero de plataformas independientes de APIs incluidas las siguientes: Tuberas Annimas y con nombre Common Object Request Broker Architecture (CORBA) Distributed Computing Environment (DCE) Message Bus (MBUS) (especificado en RFC 3259) ONC RPC Sockets XML XML-RPC or SOAP ZeroC's Internet Communications Engine (ICE) Las siguienteas son plataformas especficas de APIs: Apple Computer's Apple events (previamente conocido como Interapplication Communications (IAC)). Freedesktop.org's D-Bus KDE's Desktop Communications Protocol (DCOP) Libt2n parar C++ solamente, manejos de objetos y excepciones complejos. The Mach kernel's Mach Ports Microsoft's ActiveX, Component Object Model (COM), Distributed Component Object Model (DCOM), Dynamic Data Exchange (DDE), Object Linking and Embedding (OLE), anonymous pipes, named pipes, Local Procedure Call Novell's SPX POSIX mmap, message queues, semaphores, and Shared memory RISC OS's messages Solaris's Doors System V's message queues, semaphores, and Shared memory

Message-oriented middleware o Message-queuing systems Aparece un tercer componente de la conexin que realiza tareas de almacenamiento de mensajes. Esto permite que el emisor y el receptor estn inactivos. Permite comunicaciones persistentes asncronas. Transferencia de mensajes que duren minutos a comparacin de segundos o milisegundos. La aplicacin ms conocida que utiliza dicho modelo es el correo electrnico (e-Mail). La idea bsica consiste en insertar (putting) o quitar (taking) mensajes en una cola. Al emisor slo se le puede garantizar que el mensaje ha sido insertado correctamente en la cola. No existen garantas de cundo ser ledo dicho mensaje. No est ligado a ningn tipo especfico de modelo de red. Message-queuing system API: 1. 2. 3. 4. put: aadir un mensaje a una cola. get: bloquear hasta que la cola no est vaca, luego quitar el primer elemento. poll: verificar si hay mensaje, quitar el primero. Nunca se bloquea. notify: instalar en la cosa un dispositivo que avisar cuando un nuevo mensaje se inserte en la cola. 2. Comunicacin orientada a streams Los modelos RPC, RMI y MOM realizan comunicaciones independientes del tiempo. Existen tambin sistemas donde el tiempo es crucial en la comunicacin, o los resultados de salida sern incorrecto; es as el caso de trasmisin de audio, video, sensor de datos, etc. (comunicacin continua de datos) donde cortes de comunicacin generan retardos no deseados.

3. Comunicacin entre procesos Linux La comunicacin puede simplemente ser cuestin de dejar que otro proceso sepa que ha ocurrido algn evento, o puede implicar la transferencia de datos de un proceso a otro. Seales El mecanismo estndar para informar a un proceso que ha ocurrido un evento es la seal. Se pueden enviar seales de un proceso a otro pero sin enviar informacin. Las seales no necesitan ser generadas por otro proceso, tambin puede ser generada por el kernel. Linux tambin implementa un mecanismo de semforos. Un proceso puede esperar un semforo tan fcilmente como espera una seal. Paso de datos entre procesos El mecanismo de tubera (pipe) estndar permite a un proceso hijo heredar un canal de comunicacin con su padre; los datos que se escriben en un extremo de la tubera se leen en el otro. Tambin define un conjunto de servicios para trabajo en red que pueden enviar flujos de datos tanto a procesos locales como remotos. Hay otro mtodo que es la memoria compartida que ofrece una forma extremadamente rpida de comunicar cantidades grandes o pequeas de datos; cualquier dato escrito por un proceso en una regin de memoria compartida puede ser ledo por cualquier otro proceso que haya mapeado dicha regin en su espacio de direcciones.

Freedesktop Para comunicacin entre aplicaciones grficas existe D-Bus, usado por GNOME y KDE entre otros. Permite fcilmente comunicar unas aplicaciones con otras o controlar cualquier elemento de una interfaz grfica desde consola a con un programa hecho al efecto.

4. Comunicacin multicast Es la abstraccin de diseminacin de datos. Utilizando el soporte de difusin (broadcast) en las redes locales para realizar tareas como protocolos epidmicos.

Das könnte Ihnen auch gefallen