Escolar Documentos
Profissional Documentos
Cultura Documentos
Pgina 1
ndice
1 Conceptos bsicos 2 Tipos de comunicacin 2.1 Sncrona 2.2 Asncrona 2.3 Persistente 2.4 Momentnea (transient) 2.5 Directa 2.6 Indirecta 2.7 Simtrica 2.8 Asimtrica 2.9 Uso de buffers automtico 3 RPC 3.1 Paso de parmetros 3.2 Invocacin remota de mtodos (RMI) 4 Comunicacin orientada a mensajes 4.1 Mensajes momentneos vs. mensajes persistentes 4.1.1 Sockets Berkeley 4.1.2 Message-passing interface (MPI) 5 Implementaciones 5.1 Message-oriented middleware o Message-queuing systems 6 Comunicacin orientada a streams 7 Comunicacin entre procesos Linux 8 Comunicacin multicast 9 Tabla de mtodos de IPC 10 Referencias
Conceptos bsicos
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.
Tipos de comunicacin
La comunicacin puede ser: Sncrona o asncrona Persistente (persistent) o momentnea (transient) Directa o indirecta Simtrica o asimtrica Con uso de buffers explcito o automtico
http://es.wikipedia.org/wiki/Comunicaci%C3%B3n_entre_procesos
Comunicacin entre procesos - Wikipedia, la enciclopedia libre Envo por copia del mensaje o por referencia Mensajes de tamao fijo o variable
Pgina 2
Sncrona
Quien enva permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio.
Asncrona
Quien enva contina con su ejecucin inmediatamente despus de enviar el mensaje al receptor.
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).
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.
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.
Indirecta
La comunicacin Indirecta: Es aquella donde la comunicacin est basada en una herramienta o instrumento ya que el emisor y el receptor estn a distancia.
Simtrica
Todos los procesos pueden enviar o recibir. Tambin llamada bidireccional para el caso de dos procesos.
Asimtrica
Un proceso puede enviar, los dems procesos solo reciben. Tambin llamada unidireccional. Suele usarse para hospedar servidores en Internet.
RPC
(Remote Procedure Call / llamada a un procedimiento remoto) Permitir que los programas realicen llamadas a funciones localizadas en otras mquinas. Los programadores no se tienen que preocupar por los detalles de la programacin de la red. Conceptualmente simple. Desde el punto de vista de un programador la llamada a una funcin remota es y funciona de la misma manera que lo hara si la llamada fuese local. En este sentido, se logra transparencia. Cada funcin pasa a tener dos partes: cliente, la mquina local donde se implementa la interface (prototipo de una funcin) para invocar las funciones remotas. Servidor, implementacin de las funciones propiamente dichas.
http://es.wikipedia.org/wiki/Comunicaci%C3%B3n_entre_procesos
Pgina 3
Paso de parmetros
No debera de existir ningn problema si dos mquinas son homogneas, sin embargo la realidad no suele ser sta. Pueden surgir problemas de diferentes codificacin de caracteres (ej.: mainframe IBM: EBCDIC, IBM PC: ASCII) o diferentes tipos de ordenacin de bytes (ej.: Intel: little endian, Sun SPARC: big endian). Como solucin a estos problemas es importante lograr un acuerdo del protocolo usado. La parte encargada de generar los mensajes no debe de presuponer el uso de un lenguaje de programacin especfico.
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.
Persistentes: el mensaje se encola y se entrega cuando se pide. (1) 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)
http://es.wikipedia.org/wiki/Comunicaci%C3%B3n_entre_procesos
Comunicacin entre procesos - Wikipedia, la enciclopedia libre 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:
Pgina 4
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 cola un dispositivo que avisar cuando un nuevo mensaje se inserte en la cola.
http://es.wikipedia.org/wiki/Comunicaci%C3%B3n_entre_procesos
Pgina 5
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 region de memoria compartida puede ser ledo por cualquier otro proceso que haya mapeado dicha region 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.
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.
Referencias
Sistemas Operativos:ISBN 968-444-310-2 Autores: Siverschatz - Galvin Sistemas Operativos:ISBN 84-205-4462-0 Autor: Stallings daaa. Obtenido de http://es.wikipedia.org/w/index.php?title=Comunicacin_entre_procesos&oldid=62987082 Categora: Sistemas operativos Esta pgina fue modificada por ltima vez el 15 ene 2013, a las 01:40. El texto est disponible bajo la Licencia Creative Commons Atribucin Compartir Igual 3.0; podran ser aplicables clusulas adicionales. Lanse los trminos de uso para ms informacin. Wikipedia es una marca registrada de la Fundacin Wikimedia, Inc., una organizacin sin nimo de lucro.
http://es.wikipedia.org/wiki/Comunicaci%C3%B3n_entre_procesos