Está en la página 1de 10

COMUNICACIÓN

ENTRE PROCESOS
¿Que es comunicación entre procesos?

Los procesos que se ejecutan pueden ser independientes o cooperativos.


Los procesos independientes son aquellos que no afectan ni son afectados
por los otros procesos que se ejecutan en el sistema. Los procesos
cooperativos si son aquellos que sí afectan o son afectados por los demás
procesos que se ejecutan en el sistema.
Existen varias razones para proporcionar un entorno que permita la
cooperación entre procesos:

 Compartir información. Dado varios usuarios, pueden estar interesados en la


misma información, (p.e., un archivo compartido).
 Acelerar cálculos. Si queremos que una tarea se ejecute rápidamente,
debemos dividirlas en subtareas, ejecutándose cada una de ellas en paralelo
con las demás.
 Modularidad. Se divide las funciones del sistemas en diferentes procesos o
hebras.
 Conveniencia. Un solo usuario puede trabajar en muchas tareas al mismo
tiempo,
Comunicación de procesos utilizando
señales
Una señal es una notificación a un proceso que un evento ocurrió. Muchas veces a las
señales se les conoce como interrupciones software porque ocurren por requerimiento de
usuario o programador. Usualmente las señales son asincrónicas, lo que significa que un
proceso no sabe con anticipación que un evento ocurrirá.

Las señales son mensajes enviados por el sistema operativo al proceso en ejecución.
También puede verse como una forma de atender eventos, es decir,  permiten interrumpir
la ejecución de un proceso para atender la ocurrencia de un evento. 
Un proceso puede especificar un manejador de señales para ser invocado
cuando se recibe una señal. Cuando un manejador es invocado para recibir
una señal, se dice que atiende la señal. Un proceso puede realizar las
siguientes acciones cuando recibe la señal:

- Proceso puede realizar acción por defecto


- Proceso puede bloquear la señal (algunas pueden ignorarse)
- Proceso puede atender señal con un manejador
Comunicación de procesos utilizando
tuberías
Es el método más sencillo y antiguo de comunicación entre dos procesos donde la salida de
un programa es la entrada del otro (pipeline). Una Tuberia o pipe, es una estructura de
datos interna que ofrece el kernel, que pueden contener un conjunto limitado de datos ( 4
a 8 K), a la que se accede mediante operaciones de lectura y escritura sobre dos
descriptores, uno de abierto para lectura y otro para escritura Se implementa un modelo
productor - consumidor, más que cliente - servidor. Permite una comunicación Simplex
(unidireccional.)
Existen dos tipos de tuberías:

- Con nombre(FIFO): tienen una entrada de directorio asociada y, por tanto, pueden ser
accedidas por cualquier proceso que tenga los permisos adecuados.
- Sin nombre: no tienen entrada de directorio asociada. Sólo pueden acceder a ella
procesos que las hayan heredado en un fork().
Comunicación de procesos utilizando
sockets
Un socket se define como un punto terminal de una comunicación. Una pareja de procesos
que se comunican a través de una red emplea una pareja de sockets, uno para cada
proceso. Cada socket se identifica mediante una dirección IP concatenada con un número
de puerto. En general, los sockets usan una arquitectura cliente-servidor.

Un cliente se comunica con el servidor creando un socket y conectándose al puerto en el


que el servidor está escuchando. El cliente crea un socket y solicita una conexión con el
servidor de la dirección IP 127.0.0.1 a través del puerto 6013. Una vez establecida la
conexión, el cliente puede leer en el socket usando instrucciones de E/S normales. Después
de recibir los datos del servidor, el cliente cierra el socket y sale.
La comunicación a través de sockets, se considera una forma de bajo nivel de
comunicación entre procesos distribuidos. Una razón es que los sockets sólo permiten que
se intercambie un flujo no estructurado de bytes entre las hebras en comunicación. Es
responsabilidad de la aplicación cliente o servidor imponer una estructura a los datos.
Referencias ■ http://www.inf.udec.cl/~chernand/sc/labs/senale
s.htm

■ http://sopa.dis.ulpgc.es/progsis/material-didactic
o-teorico/tema5_1transporpagina.pdf

■ http://biblioteca.univalle.edu.ni/files/original/246
6e8c69e588a8a615cc22fc71d883e4b930b37.pdf

■  Fundamentos de sistemas operativos, Abraham


Silberschatz

También podría gustarte