DESARROLLO DAI

Páginas: 23 (5600 palabras) Publicado: 19 de octubre de 2013
Sistema Operativo – Comunicación y Sincronización entre procesos en Linux

COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS EN LINUX
Los medios de comunicación entre procesos (Inter-Process Communication o IPC) de Linux proporcionan un
método para que múltiples procesos se comuniquen unos con otros. Hay varios métodos de IPC disponibles en
Linux:
o Pipes UNIX Half-duplex
o FIFOs (pipes connombre)
o Colas de mensajes estilo SYSTEM V
o Semáforos estilo SYSTEM V
o Segmentos de memoria compartida estilo SYSTEM V

Pipes UNIX Semi-duplex
La forma más simple de IPC en Linux son los pipes o tuberías, han estado presentes desde los primeros orígenes
del sistema operativo UNIX y proporcionan un método de comunicaciones en un sentido (unidirecional, semiduplex) entre procesos.
Unatubería (pipe) es simplemente un método de conexión que une la salida estándar de un proceso a la entrada
estándar de otro. Para esto se utilizan “descriptores de archivos” reservados, los cuales en forma general son:




0: entrada estándar (stdin).
1: salida estándar (stdout).
2: salida de error (stderr).

Este mecanismo es ampliamente usado, incluso en la línea de comandos UNIX (en lashell):
ls | sort | lp

Lo anterior es un ejemplo de “pipeline”, donde se toma la salida de un comando ls como entrada de un
comando sort, quien a su vez entrega su salida a la entrada de lp. Los datos corren por la tubería semi-duplex,
viajando (virtualmente) de izquierda a derecha por la tubería.
Cuando un proceso crea una tubería, el kernel instala dos descriptores de archivos para que losuse la tubería. Un
descriptor se usa para permitir un camino de entrada a la tubería (write), mientras que la otra se usa para obtener
los datos de la tubería (read). A estas alturas, la tubería tiene un pequeño uso practico, ya que la creación del
proceso solo usa la tubería para comunicarse consigo mismo. Se podría considerar esta representación de un
proceso y del kernel después de que sehaya creado una tubería:
in
Proceso

Kernel
out

Del diagrama anterior, es fácil ver como se conectan los descriptores. Si el proceso envía datos por la tubería
(fd0), tiene la habilidad obtener (leer) esa información de fd1. Sin embargo, hay un objetivo más amplio sobre el
esquema anterior. Mientras una tubería conecta inicialmente un proceso a si mismo, los datos que viajan por latubería se mueven por el kernel.

1

Sistema Operativo – Comunicación y Sincronización entre procesos en Linux

A estas alturas, la tubería es bastante inútil. ¿Para que crear una tubería si solo estamos hablando con nosotros
mismos? Ahora, el proceso de creación bifurca un proceso hijo. Como un proceso hijo hereda cualquier
descriptor de archivo abierto del padre, ahora tenemos la base para lacomunicación multiprocesos (entre padre e
hijo). La versión actualizada del esquema simple quedaría como:

in
Proceso
Padre

in
Kernel

out

Proceso
Hijo
out

Arriba, se ve que ambos procesos ahora tienen acceso al descriptor del archivo que constituye la tubería. En ésta
fase se debe tomar una decisión critica. ¿En que dirección se quiere que viajen los datos? ¿El proceso hijoenvía
información al padre, o viceversa? Se debe proceder a "cerrar" el extremo de la tubería que no interesa.
Suponiendo que el hijo ejecuta su código, y devuelve información por la tubería al padre. El esquema ya
revisado aparecería como:

in
Proceso
Padre

in
Kernel

out

Proceso
Hijo
out

Ahora la construcción de la tubería esta completa. Lo único que queda por hacer es usar latubería. Para acceder
a una tubería directamente, se puede usar la misma llamada al sistema que se usa para un archivo E/S de bajo
nivel.
Para enviarle datos a la tubería, se usa la llamada al sistema write(), y para recuperar datos de la tubería, se usa la
llamada al sistema read(). Se debe tener presente que ciertas llamadas al sistema, como por ejemplo lseek(), no
trabaja con...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • daiara
  • de dai
  • PROGRAMA DAI
  • Dai Linda
  • Mp Dai
  • Adiccion Dai
  • opus dai
  • Examen dai

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS