Está en la página 1de 13

Comunicacin entre procesos

Comunicacin entre procesos

Erwin Meza Vega

Universidad del Cauca

Comunicacin entre procesos

Outline

Introduccin

Comunicacin Local

Comunicacin remota

Comunicacin entre procesos


Introduccin

Concepto de comunicacin entre procesos

Mecanismo que permite pasar datos (informacin) entre


procesos
Comunicacin

entorno

Local:

Los procesos se ejecutan en el mismo

(sistema operativo)

Comunicacin

entornos,

Remota:

Los procesos se ejecutan en diferentes

potencialmente sobre diferente hardware (o

diferentes sistemas operativos)

Comunicacin entre procesos


Comunicacin Local

Seales

Permiten el paso de alertas entre procesos.


Slo permiten enviar un conjunto predenido de alertas.
El comportamiento por defecto de un proceso, al recibir la
seal, es terminar. Por esta razn el comando para enviar
seales en POSIX se denomina

kill.

Funciones POSIX: kill, sigaction

Comunicacin entre procesos


Comunicacin Local

Archivos
Mecanismo bsico para comunicar dos o ms procesos
Secuencia:
Un proceso abre y escribe los datos en un archivo
Uno o ms procesos abren el archivo y leen los datos de ste.

Se puede implementar mediante

memoria

tuberas.

archivos mapeados en

En el caso de usar archivos mapeados a memoria, se debe


establecer un mecanismo

explcito

de sincronizacin, para

evitar que los procesos traten de leer datos antes que el


proceso que est escribiendo haya terminado.
En el caso de usar tuberas, la sincronizacin se realiza de
forma implcita.

Comunicacin entre procesos


Comunicacin Local

Archivos mapeados en memoria

Permiten acceder al contenido de un archivo directamente en


memoria.
Luego de obtener un descriptor al archivo (mediante

open),

hace uso de la llamada mmap para mapear el archivo a una


regin de memoria administrada por el sistema operativo
Los procesos pueden modicar la informacin del archivo
directamente en la memoria, usando punteros (C).
Funciones: fopen, leno, open, read, write, close, fclose

se

Comunicacin entre procesos


Comunicacin Local

Memoria compartida
La memoria compartida permite que varios procesos diferentes

fuera de su espacio de memoria


implementa como un archivo virtual mapeado

tengan acceso a una regin


Bsicamente se

en memoria, este archivo es administrado por el sistema


operativo.
Secuencia:
Un proceso crea la regin de memoria compartida (fuera de su
espacio de memoria), la

mapea

a su espacio de memoria y

luego escribe datos en ella


Otros procesos abren la regin de memoria, la

mapean

a su

espacio de memoria y luego pueden leer los datos almacenados


en ella.

Funciones: shm_open, ftruncate, mmap, smh_unlink

Comunicacin entre procesos


Comunicacin Local

Tuberas
Son archivos

especiales,

administrados por el sistema operativo

Se reciben dos descriptores de archivo, uno para lectura y otro


para escritura
Como los descriptores de archivo se preservan al realizar un

fork, se pueden usar como mecanismo de comunicacin padre hijo


Secuencia:
El proceso padre crea la tubera

fork para crear una copia


hereda la tubera creada, por lo

Luego, invoca
La copia

cual puede leer o

escribir datos en la tubera


La tubera se usa en un solo sentido, si se requiere
comunicacin bidireccional se debe crear otra tubera.

Funciones: pipe, read, write, close


Tuberas con nombre: mkfo

Comunicacin entre procesos


Comunicacin Local

Colas de mensajes

Mecanismo mediante el cual los procesos envan mensajes a


una estructura central denominada cola de mensajes, en la
cual son procesados por un proceso especco.
Cada mensaje tiene un tamao predenido, y pueden existir
diferentes tipos de mensajes en una cola
Funciones: mqopen , mqclose , mqnotify , mqsend , mqreceive ,
mqunlink

Comunicacin entre procesos


Comunicacin Local

Sockets

Mecanismo de comunicacin local / remota


Un

socket es un conector que permite acceder a un extremo de

una conexin (local o remota)


Una vez que se ha realizado la conexin, se puede leer y
escribir del socket como si se tratara de un archivo
En el esquema local, un socket funciona como un

archivo.

Funciones: socket, bind, listen, accept, connect, send, recv,


shutdown

Comunicacin entre procesos


Comunicacin remota

Sockets

En el esquema remoto, la direccin a la que se conecta el


socket es una direccin de

internet.

Una vez creado y conectado, se maneja exactamente igual a


un socket local.
Sobre los sockets se pueden implementar

protocolos

ms

sosticados, como HTTP, FTP, etc.


A su vez, sobre estos protocolos funcional los programas ms
comunes hoy en da: pginas web, multimedia, mensajera, etc.
Funciones: socket, bind, listen, accept, connect, send, recv,
shutdown, htons, inetaddr

Comunicacin entre procesos


Comunicacin remota

Tuberas

con nombre

(WinNT) *

Son usadas en sistemas Windows para permitir comunicacin


remota entre procesos.
De forma similar a POSIX, una vez se ha obtenido acceso a la
tubera se puede usar con rutinas bsicas para la lectura /
escritura de datos en archivos.

Comunicacin entre procesos


Comunicacin remota

Referencias

1 A. D. Marshall. Programming in C UNIX System Calls and


Subroutines using C.
[http://www.cs.cf.ac.uk/Dave/C]

También podría gustarte