Hilo

Páginas: 5 (1212 palabras) Publicado: 22 de junio de 2010
Comunicación entre Procesos
TALLER DE PROGRAMACIÓN AVANZADA UNIDAD III MC. GERARDO BELTRÁN GUTIÉRREZ PROFESOR

Tuberías (Pipes)
 Las tuberías o “pipes” simplemente conectan la salida estándar de un

proceso con la entrada estándar de otro. Normalmente las tuberías son de un solo sentido.
 Las tuberías suelen ser “half-duplex”, es decir, de un único sentido, y se

requieren dostuberías “half-duplex” para hacer una comunicación en los dos sentidos, es decir “full-duplex”.
 Las tuberías son, por tanto, flujos unidireccionales de bytes que

conectan la salida estándar de un proceso con la entrada estándar de otro proceso.

Tuberías (Pipes)
 Una tubería tiene en realidad dos descriptores de archivo: uno para el

extremo de escritura y otro para el extremo de lectura.int p[2]; pipe(p);

 Una vez creado un pipe, se podrán hacer lecturas y escrituras de

manera normal, como si se tratase de cualquier archivo.  Para asegurar la unidireccionalidad de la tubería, es necesario que tanto padre como hijo cierren los respectivos descriptores de archivos que no serán usados.

Tuberías (Pipes) Ejemplo: Unidireccional
#include main(int argc, char *argv[]) { FILE*da; // Descriptor de archivos tipo FILE int suma=0, p[2]; Descriptor de tuberia char valor1[20], valor2[20]; // Variables de trabajo pipe(p); // Crea Tuberia int hijo=fork(); //Crea proceso hijo if(hijo==0) { // Codigo el proceso hijo close(p[1]); //cierra la escritura para el hijo da=fdopen(p[0],"r"); //convierte a descriptor a FILE fscanf(da,"%s %s", valor1, valor2); //recibe los datos a sumardesde el padre printf("La suma es = %d\n", atoi(valor1)+atoi(valor2)); //Imprime resultado close(p[0]); //Cierra tuberia } else { //Codigo del proceso padre close(p[0]); //cierra la lectura da=fdopen(p[1],"w"); fprintf(da,"%s %s", argv[1],argv[2]); // Envia por la tuberia los datos al proceso hijo } }

Tuberías (Pipes)
 La implementación de una comunicación bidireccional entre dos

procesosmediante tuberías, requiere la creación de dos tuberías diferentes (a[2] y b[2]), una para cada sentido de la comunicación.
 En cada proceso habrá que cerrar descriptores de archivo diferentes

que no serán utilizados.

Tuberías (Pipes) Ejemplo: Bidireccional
#include main(int argc, char *argv[]) { FILE *da; // Descriptor de archivos tipo FILE int suma=0, a[2], b[2]; //Descriptores detuberias char valor1[20], valor2[20]; // Variables de trabajo pipe(a); // Crea Tuberia pipe(b); // Crea Tuberia int hijo=fork(); //Crea proceso hijo if(hijo==0){ // Codigo el proceso hijo close(a[1]); //cierra la escritura para el hijo close(b[0]); //cierra la lectura para el hijo da=fdopen(a[0],"r"); //convierte a descriptor a FILE fscanf(da,"%s %s", valor1, valor2);//recibe datos a sumar desde elproceso padre suma = atoi(valor1)+atoi(valor2); fclose(da); da=fdopen(b[1],"w"); fprintf(da, "%d", suma); close(a[0]); //Cierra tuberia

Tuberías (Pipes) Ejemplo: Bidireccional
else { //Codigo del proceso padre close(a[0]); //cierra la lectura close(b[1]); //cierra la escritura da=fdopen(a[1],"w"); fprintf(da,"%s %s", argv[1],argv[2]); // Envia los datos al proceso hijo fclose(da);da=fdopen(b[0],"r"); fscanf(da,"%d", &suma); printf ("la suma es = %d",suma); } }

Comunicación por red

 Muchas de las aplicaciones que usamos todos los

días, como el correo electrónico o los navegadores web, utilizan protocolos de red para comunicarse.
 El protocolo mas utilizado para estas aplicaciones

esta basado en el modelo TCP/IP

El modelo TCP/IP
 El modelo TCP/IP, influenciado porel modelo OSI,

también utiliza el enfoque modular (utiliza módulos o capas), pero sólo contiene cuatro:

El modelo TCP/IP
 capa de acceso a la red: especifica la forma en la

que los datos deben enrutarse, sea cual sea el tipo de red utilizado;  capa de Internet: es responsable de proporcionar el paquete de datos (datagrama);  capa de transporte: brinda los datos de enrutamiento,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Hilos
  • hila
  • hilos
  • Hila
  • Hilos
  • HILO
  • hila
  • Hilos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS