Tema 4: Gestión de Procesos

Post on 27-Jun-2022

3 views 0 download

Transcript of Tema 4: Gestión de Procesos

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Tema 4:Gestión de Procesos

SSOO - Curso 2005/06

E. Domínguez C. Villarrubia

Departamento de Tecnologías y Sistemas de InformaciónEscuela Superior de Informática

Universidad de Castilla - La Mancha

Marzo de 2006

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Índice

1 Comunicación entre Procesos

2 Caso de Estudio: UNIXCreación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Tema 4: Gestión de Procesos

Sesión 3:Comunicación entre Procesos.Caso de Estudio UNIX

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Resumen de Contenidos de la Sesión Anterior

En la sesión anterior hemos vistoEsquemas de planificación simplesEsquemas de planificación avanzados

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Índice

1 Comunicación entre Procesos

2 Caso de Estudio: UNIXCreación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos

Procesos concurrentesLos procesos se pueden ejecutar de forma concurrente enel sistemaLos procesos concurrentes pueden serIndependientes: No afectan a otros ni son afectados por

ellosCooperativos: Afectan a otros o son afectados por ellos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos

Procesos concurrentesLos procesos se pueden ejecutar de forma concurrente enel sistemaLos procesos concurrentes pueden serIndependientes: No afectan a otros ni son afectados por

ellosCooperativos: Afectan a otros o son afectados por ellos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos

Procesos concurrentesLos procesos se pueden ejecutar de forma concurrente enel sistemaLos procesos concurrentes pueden serIndependientes: No afectan a otros ni son afectados por

ellosCooperativos: Afectan a otros o son afectados por ellos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos

Procesos concurrentesLos procesos se pueden ejecutar de forma concurrente enel sistemaLos procesos concurrentes pueden serIndependientes: No afectan a otros ni son afectados por

ellosCooperativos: Afectan a otros o son afectados por ellos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

Razones para permitir la cooperaciónCompartir información

Por ejemplo, compartir un archivoAceleración de los cálculos

Mediante la división de una tarea en subtareas que seejecutan en paralelo

ModularidadConvirtiendo las funciones en procesos individuales

ComodidadPermitir realizar varias tareas al mismo tiempo

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

Razones para permitir la cooperaciónCompartir información

Por ejemplo, compartir un archivoAceleración de los cálculos

Mediante la división de una tarea en subtareas que seejecutan en paralelo

ModularidadConvirtiendo las funciones en procesos individuales

ComodidadPermitir realizar varias tareas al mismo tiempo

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

Razones para permitir la cooperaciónCompartir información

Por ejemplo, compartir un archivoAceleración de los cálculos

Mediante la división de una tarea en subtareas que seejecutan en paralelo

ModularidadConvirtiendo las funciones en procesos individuales

ComodidadPermitir realizar varias tareas al mismo tiempo

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

Razones para permitir la cooperaciónCompartir información

Por ejemplo, compartir un archivoAceleración de los cálculos

Mediante la división de una tarea en subtareas que seejecutan en paralelo

ModularidadConvirtiendo las funciones en procesos individuales

ComodidadPermitir realizar varias tareas al mismo tiempo

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

RequerimientosMecanismos que permitan a los procesos comunicarseentre sí

Variables compartidas: No es posible si se dispone deespacios de memoria totalmente separadosTransferencia de mensajesArchivos compartidos: Por sí sola no es una solución válida

Mecanismos que permitan a los procesos sincronizar susacciones

Mantenimiento de la consistencia de la informaciónasegurando la ejecución ordenada de las instrucciones delos procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

RequerimientosMecanismos que permitan a los procesos comunicarseentre sí

Variables compartidas: No es posible si se dispone deespacios de memoria totalmente separadosTransferencia de mensajesArchivos compartidos: Por sí sola no es una solución válida

Mecanismos que permitan a los procesos sincronizar susacciones

Mantenimiento de la consistencia de la informaciónasegurando la ejecución ordenada de las instrucciones delos procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

RequerimientosMecanismos que permitan a los procesos comunicarseentre sí

Variables compartidas: No es posible si se dispone deespacios de memoria totalmente separadosTransferencia de mensajesArchivos compartidos: Por sí sola no es una solución válida

Mecanismos que permitan a los procesos sincronizar susacciones

Mantenimiento de la consistencia de la informaciónasegurando la ejecución ordenada de las instrucciones delos procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

RequerimientosMecanismos que permitan a los procesos comunicarseentre sí

Variables compartidas: No es posible si se dispone deespacios de memoria totalmente separadosTransferencia de mensajesArchivos compartidos: Por sí sola no es una solución válida

Mecanismos que permitan a los procesos sincronizar susacciones

Mantenimiento de la consistencia de la informaciónasegurando la ejecución ordenada de las instrucciones delos procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

RequerimientosMecanismos que permitan a los procesos comunicarseentre sí

Variables compartidas: No es posible si se dispone deespacios de memoria totalmente separadosTransferencia de mensajesArchivos compartidos: Por sí sola no es una solución válida

Mecanismos que permitan a los procesos sincronizar susacciones

Mantenimiento de la consistencia de la informaciónasegurando la ejecución ordenada de las instrucciones delos procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Comunicación entre Procesos (cont.)

RequerimientosMecanismos que permitan a los procesos comunicarseentre sí

Variables compartidas: No es posible si se dispone deespacios de memoria totalmente separadosTransferencia de mensajesArchivos compartidos: Por sí sola no es una solución válida

Mecanismos que permitan a los procesos sincronizar susacciones

Mantenimiento de la consistencia de la informaciónasegurando la ejecución ordenada de las instrucciones delos procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Índice

1 Comunicación entre Procesos

2 Caso de Estudio: UNIXCreación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Identificadores de Proceso

DescripciónCada proceso tiene un identificador de proceso (pid)Salvo el primer proceso, denominado init (pid = 1),cualquier proceso es creado por otro (proceso padre). Setiene así un sistema jerárquico de procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Identificadores de Proceso

DescripciónCada proceso tiene un identificador de proceso (pid)Salvo el primer proceso, denominado init (pid = 1),cualquier proceso es creado por otro (proceso padre). Setiene así un sistema jerárquico de procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Descriptores estándares de E/S

DescripciónLos procesos esperan normalmente

Obtener datos a través del descriptor de archivo 0 (entradaestándar)Enviar datos a través del descriptor de archivo 1 (salidaestándar)Notificar errores a través del descriptor de archivo 2 (salidade error estándar)

Típicamente estos descriptores están asociados alterminal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Descriptores estándares de E/S

DescripciónLos procesos esperan normalmente

Obtener datos a través del descriptor de archivo 0 (entradaestándar)Enviar datos a través del descriptor de archivo 1 (salidaestándar)Notificar errores a través del descriptor de archivo 2 (salidade error estándar)

Típicamente estos descriptores están asociados alterminal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Descriptores estándares de E/S

DescripciónLos procesos esperan normalmente

Obtener datos a través del descriptor de archivo 0 (entradaestándar)Enviar datos a través del descriptor de archivo 1 (salidaestándar)Notificar errores a través del descriptor de archivo 2 (salidade error estándar)

Típicamente estos descriptores están asociados alterminal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Descriptores estándares de E/S

DescripciónLos procesos esperan normalmente

Obtener datos a través del descriptor de archivo 0 (entradaestándar)Enviar datos a través del descriptor de archivo 1 (salidaestándar)Notificar errores a través del descriptor de archivo 2 (salidade error estándar)

Típicamente estos descriptores están asociados alterminal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Descriptores estándares de E/S

DescripciónLos procesos esperan normalmente

Obtener datos a través del descriptor de archivo 0 (entradaestándar)Enviar datos a través del descriptor de archivo 1 (salidaestándar)Notificar errores a través del descriptor de archivo 2 (salidade error estándar)

Típicamente estos descriptores están asociados alterminal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Índice

1 Comunicación entre Procesos

2 Caso de Estudio: UNIXCreación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva fork

1 p id_ t f o r k ( void ) ;

Objeto: Crear un nuevo proceso que será hijo del querealiza la llamadaEn caso de éxito se devuelve al proceso padre elidentificador de proceso del hijo. Al hijo se le devuelve 0Ambos procesos se ejecutan concurrentemente a partir dela instrucción siguiente a la llamadaEn caso de error se devuelve -1 al proceso que hizo lallamada (el proceso hijo no se crea)

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva fork

1 p id_ t f o r k ( void ) ;

Objeto: Crear un nuevo proceso que será hijo del querealiza la llamadaEn caso de éxito se devuelve al proceso padre elidentificador de proceso del hijo. Al hijo se le devuelve 0Ambos procesos se ejecutan concurrentemente a partir dela instrucción siguiente a la llamadaEn caso de error se devuelve -1 al proceso que hizo lallamada (el proceso hijo no se crea)

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva fork

1 p id_ t f o r k ( void ) ;

Objeto: Crear un nuevo proceso que será hijo del querealiza la llamadaEn caso de éxito se devuelve al proceso padre elidentificador de proceso del hijo. Al hijo se le devuelve 0Ambos procesos se ejecutan concurrentemente a partir dela instrucción siguiente a la llamadaEn caso de error se devuelve -1 al proceso que hizo lallamada (el proceso hijo no se crea)

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva fork

1 p id_ t f o r k ( void ) ;

Objeto: Crear un nuevo proceso que será hijo del querealiza la llamadaEn caso de éxito se devuelve al proceso padre elidentificador de proceso del hijo. Al hijo se le devuelve 0Ambos procesos se ejecutan concurrentemente a partir dela instrucción siguiente a la llamadaEn caso de error se devuelve -1 al proceso que hizo lallamada (el proceso hijo no se crea)

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva fork

1 p id_ t f o r k ( void ) ;

Objeto: Crear un nuevo proceso que será hijo del querealiza la llamadaEn caso de éxito se devuelve al proceso padre elidentificador de proceso del hijo. Al hijo se le devuelve 0Ambos procesos se ejecutan concurrentemente a partir dela instrucción siguiente a la llamadaEn caso de error se devuelve -1 al proceso que hizo lallamada (el proceso hijo no se crea)

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Espacios de Direcciones

Cuando se crea un nuevo procesoEl espacio de direcciones del hijo es una copia del espaciode direcciones del padre (zonas de código, datos y pila)El hijo hereda todos los descriptores de archivo abiertosen el padreEl hijo hereda las variables de entorno definidas en elpadre

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Espacios de Direcciones

Cuando se crea un nuevo procesoEl espacio de direcciones del hijo es una copia del espaciode direcciones del padre (zonas de código, datos y pila)El hijo hereda todos los descriptores de archivo abiertosen el padreEl hijo hereda las variables de entorno definidas en elpadre

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Espacios de Direcciones

Cuando se crea un nuevo procesoEl espacio de direcciones del hijo es una copia del espaciode direcciones del padre (zonas de código, datos y pila)El hijo hereda todos los descriptores de archivo abiertosen el padreEl hijo hereda las variables de entorno definidas en elpadre

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Índice

1 Comunicación entre Procesos

2 Caso de Estudio: UNIXCreación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva execve

1 i n t execve ( const char ∗ f i lename , char ∗const argv [ ] ,char ∗const envp [ ] ) ;

Objeto: Ejecutar un nuevo programa sobre el espacio dedirecciones de un procesofilename: Un puntero a una cadena de caracteres quecontiene el nombre del archivo donde reside el programaque debe ejecutarseargv: Un puntero a una matriz de punteros a cadenas conlos argumentos de la línea de órdenesenvp: Un puntero a una matriz de punteros a cadenas conlas definiciones de las variables de entorno que se quieranpasar al programa

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva execve

i n t execve ( const char ∗ f i lename , char ∗const argv [ ] ,2 char ∗const envp [ ] ) ;

Objeto: Ejecutar un nuevo programa sobre el espacio dedirecciones de un procesofilename: Un puntero a una cadena de caracteres quecontiene el nombre del archivo donde reside el programaque debe ejecutarseargv: Un puntero a una matriz de punteros a cadenas conlos argumentos de la línea de órdenesenvp: Un puntero a una matriz de punteros a cadenas conlas definiciones de las variables de entorno que se quieranpasar al programa

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva execve

i n t execve ( const char ∗ f i lename , char ∗const argv [ ] ,2 char ∗const envp [ ] ) ;

Objeto: Ejecutar un nuevo programa sobre el espacio dedirecciones de un procesofilename: Un puntero a una cadena de caracteres quecontiene el nombre del archivo donde reside el programaque debe ejecutarseargv: Un puntero a una matriz de punteros a cadenas conlos argumentos de la línea de órdenesenvp: Un puntero a una matriz de punteros a cadenas conlas definiciones de las variables de entorno que se quieranpasar al programa

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva execve

i n t execve ( const char ∗ f i lename , char ∗const argv [ ] ,2 char ∗const envp [ ] ) ;

Objeto: Ejecutar un nuevo programa sobre el espacio dedirecciones de un procesofilename: Un puntero a una cadena de caracteres quecontiene el nombre del archivo donde reside el programaque debe ejecutarseargv: Un puntero a una matriz de punteros a cadenas conlos argumentos de la línea de órdenesenvp: Un puntero a una matriz de punteros a cadenas conlas definiciones de las variables de entorno que se quieranpasar al programa

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva execve

i n t execve ( const char ∗ f i lename , char ∗const argv [ ] ,2 char ∗const envp [ ] ) ;

Objeto: Ejecutar un nuevo programa sobre el espacio dedirecciones de un procesofilename: Un puntero a una cadena de caracteres quecontiene el nombre del archivo donde reside el programaque debe ejecutarseargv: Un puntero a una matriz de punteros a cadenas conlos argumentos de la línea de órdenesenvp: Un puntero a una matriz de punteros a cadenas conlas definiciones de las variables de entorno que se quieranpasar al programa

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva execve (cont.)

i n t execve ( const char ∗ f i lename , char ∗const argv [ ] ,2 char ∗const envp [ ] ) ;

Tanto argv como envp deben tener como último elementoun puntero nuloEn caso de éxito la llamada no retornaEn caso de error se devuelve -1 al proceso que hizo lallamada

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva execve (cont.)

i n t execve ( const char ∗ f i lename , char ∗const argv [ ] ,2 char ∗const envp [ ] ) ;

Tanto argv como envp deben tener como último elementoun puntero nuloEn caso de éxito la llamada no retornaEn caso de error se devuelve -1 al proceso que hizo lallamada

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva execve (cont.)

i n t execve ( const char ∗ f i lename , char ∗const argv [ ] ,2 char ∗const envp [ ] ) ;

Tanto argv como envp deben tener como último elementoun puntero nuloEn caso de éxito la llamada no retornaEn caso de error se devuelve -1 al proceso que hizo lallamada

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva execve (cont.)

i n t execve ( const char ∗ f i lename , char ∗const argv [ ] ,2 char ∗const envp [ ] ) ;

Tanto argv como envp deben tener como último elementoun puntero nuloEn caso de éxito la llamada no retornaEn caso de error se devuelve -1 al proceso que hizo lallamada

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Funciones de biblioteca

Llamadas simplificadasEn UNIX hay una serie de funciones de biblioteca quepermiten llamar a execve de una forma simplificada

execlexecleexeclpexecvexecvp

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execl

i n t execl ( const char ∗path , const char ∗arg , . . . ) ;

path: Tiene el mismo significado que el primer parámetroen execvearg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execl

1 i n t execl ( const char ∗path , const char ∗arg , . . . ) ;

path: Tiene el mismo significado que el primer parámetroen execvearg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execl

1 i n t execl ( const char ∗path , const char ∗arg , . . . ) ;

path: Tiene el mismo significado que el primer parámetroen execvearg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execl

1 i n t execl ( const char ∗path , const char ∗arg , . . . ) ;

path: Tiene el mismo significado que el primer parámetroen execvearg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execlp

1 i n t execlp ( const char ∗path , const char ∗arg , . . . ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)arg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execlp

1 i n t execlp ( const char ∗path , const char ∗arg , . . . ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)arg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execlp

1 i n t execlp ( const char ∗path , const char ∗arg , . . . ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)arg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execlp

1 i n t execlp ( const char ∗path , const char ∗arg , . . . ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)arg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execlp

1 i n t execlp ( const char ∗path , const char ∗arg , . . . ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)arg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execle

1 i n t execle ( const char ∗path , const char ∗arg , . . . ,char ∗const envp [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execvearg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloenvp: Tiene el mismo significado que el tercer parámetroen execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execle

i n t execle ( const char ∗path , const char ∗arg , . . . ,2 char ∗const envp [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execvearg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloenvp: Tiene el mismo significado que el tercer parámetroen execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execle

i n t execle ( const char ∗path , const char ∗arg , . . . ,2 char ∗const envp [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execvearg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloenvp: Tiene el mismo significado que el tercer parámetroen execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execle

i n t execle ( const char ∗path , const char ∗arg , . . . ,2 char ∗const envp [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execvearg, . . . : Corresponde a la serie de argumentos de la líneade órdenes. El último argumento debe ser un puntero nuloenvp: Tiene el mismo significado que el tercer parámetroen execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execv

i n t execv ( const char ∗path , char ∗const argv [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execveargv: Tiene el mismo significado que el segundoparámetro en execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execv

1 i n t execv ( const char ∗path , char ∗const argv [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execveargv: Tiene el mismo significado que el segundoparámetro en execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execv

1 i n t execv ( const char ∗path , char ∗const argv [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execveargv: Tiene el mismo significado que el segundoparámetro en execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execv

1 i n t execv ( const char ∗path , char ∗const argv [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execveargv: Tiene el mismo significado que el segundoparámetro en execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execvp

1 i n t execvp ( const char ∗path , char ∗const argv [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)argv: Tiene el mismo significado que el segundoparámetro en execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execvp

1 i n t execvp ( const char ∗path , char ∗const argv [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)argv: Tiene el mismo significado que el segundoparámetro en execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execvp

1 i n t execvp ( const char ∗path , char ∗const argv [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)argv: Tiene el mismo significado que el segundoparámetro en execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execvp

1 i n t execvp ( const char ∗path , char ∗const argv [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)argv: Tiene el mismo significado que el segundoparámetro en execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Función de Biblioteca execvp

1 i n t execvp ( const char ∗path , char ∗const argv [ ] ) ;

path: Tiene el mismo significado que el primer parámetroen execveSi path no contiene el carácter / se busca el nombre en losdirectorios citados en la variable de entorno PATH (pororden)argv: Tiene el mismo significado que el segundoparámetro en execveEl valor devuelto tiene el mismo significado que en execve

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Funcionamiento Típico de un Shell

Esquema de funcionamiento de un shell

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Índice

1 Comunicación entre Procesos

2 Caso de Estudio: UNIXCreación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva _exit

1 void _ e x i t ( i n t s ta tus ) ;

Objeto: Terminar la ejecución de un procesostatus: Un entero que será pasado al proceso padre paraque pueda recuperarlo mediante alguna primitiva de lafamilia waitLa primitiva no retorna

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva _exit

1 void _ e x i t ( i n t s ta tus ) ;

Objeto: Terminar la ejecución de un procesostatus: Un entero que será pasado al proceso padre paraque pueda recuperarlo mediante alguna primitiva de lafamilia waitLa primitiva no retorna

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva _exit

1 void _ e x i t ( i n t s ta tus ) ;

Objeto: Terminar la ejecución de un procesostatus: Un entero que será pasado al proceso padre paraque pueda recuperarlo mediante alguna primitiva de lafamilia waitLa primitiva no retorna

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva _exit

1 void _ e x i t ( i n t s ta tus ) ;

Objeto: Terminar la ejecución de un procesostatus: Un entero que será pasado al proceso padre paraque pueda recuperarlo mediante alguna primitiva de lafamilia waitLa primitiva no retorna

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva wait

1 p id_ t wa i t ( i n t ∗ s ta tus ) ;

Objeto: Suspender la ejecución del proceso en cursohasta que cualquier hijo termina o una señal es recibida.Si el hijo ya había terminado cuando se hace la llamada,ésta retorna inmediatamente y los recursos usados por elhijo son liberadosstatus: Un puntero a un entero donde se recibirá el estadode terminación del hijo. Si el puntero es nulo al llamar, nose devuelve estadoEn caso de éxito se devuelve el pid del proceso hijo o ceroen algún caso especial (ver bibliografía)Se devuelve -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva wait

1 p id_ t wa i t ( i n t ∗ s ta tus ) ;

Objeto: Suspender la ejecución del proceso en cursohasta que cualquier hijo termina o una señal es recibida.Si el hijo ya había terminado cuando se hace la llamada,ésta retorna inmediatamente y los recursos usados por elhijo son liberadosstatus: Un puntero a un entero donde se recibirá el estadode terminación del hijo. Si el puntero es nulo al llamar, nose devuelve estadoEn caso de éxito se devuelve el pid del proceso hijo o ceroen algún caso especial (ver bibliografía)Se devuelve -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva wait

1 p id_ t wa i t ( i n t ∗ s ta tus ) ;

Objeto: Suspender la ejecución del proceso en cursohasta que cualquier hijo termina o una señal es recibida.Si el hijo ya había terminado cuando se hace la llamada,ésta retorna inmediatamente y los recursos usados por elhijo son liberadosstatus: Un puntero a un entero donde se recibirá el estadode terminación del hijo. Si el puntero es nulo al llamar, nose devuelve estadoEn caso de éxito se devuelve el pid del proceso hijo o ceroen algún caso especial (ver bibliografía)Se devuelve -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva wait

1 p id_ t wa i t ( i n t ∗ s ta tus ) ;

Objeto: Suspender la ejecución del proceso en cursohasta que cualquier hijo termina o una señal es recibida.Si el hijo ya había terminado cuando se hace la llamada,ésta retorna inmediatamente y los recursos usados por elhijo son liberadosstatus: Un puntero a un entero donde se recibirá el estadode terminación del hijo. Si el puntero es nulo al llamar, nose devuelve estadoEn caso de éxito se devuelve el pid del proceso hijo o ceroen algún caso especial (ver bibliografía)Se devuelve -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva wait

1 p id_ t wa i t ( i n t ∗ s ta tus ) ;

Objeto: Suspender la ejecución del proceso en cursohasta que cualquier hijo termina o una señal es recibida.Si el hijo ya había terminado cuando se hace la llamada,ésta retorna inmediatamente y los recursos usados por elhijo son liberadosstatus: Un puntero a un entero donde se recibirá el estadode terminación del hijo. Si el puntero es nulo al llamar, nose devuelve estadoEn caso de éxito se devuelve el pid del proceso hijo o ceroen algún caso especial (ver bibliografía)Se devuelve -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva waitpid

1 p id_ t wa i t p i d ( p i d_ t pid , i n t ∗ s ta tus , i n t opt ions ) ;

Objeto: Suspender la ejecución del proceso en cursohasta que algún hijo termina o una señal es recibida. Si elhijo ya había terminado cuando se hace la llamada, éstaretorna inmediatamente y los recursos usados por el hijoson liberadospid: Identificador de proceso del hijo cuya terminación seespera (para los detalles ver bibliografía)status: Un puntero a un entero donde se recibirá el estadode terminación del hijo. Si el puntero es nulo al llamar, nose devuelve estado

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva waitpid

1 p id_ t wa i t p i d ( p i d_ t pid , i n t ∗ s ta tus , i n t opt ions ) ;

Objeto: Suspender la ejecución del proceso en cursohasta que algún hijo termina o una señal es recibida. Si elhijo ya había terminado cuando se hace la llamada, éstaretorna inmediatamente y los recursos usados por el hijoson liberadospid: Identificador de proceso del hijo cuya terminación seespera (para los detalles ver bibliografía)status: Un puntero a un entero donde se recibirá el estadode terminación del hijo. Si el puntero es nulo al llamar, nose devuelve estado

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva waitpid

1 p id_ t wa i t p i d ( p i d_ t pid , i n t ∗ s ta tus , i n t opt ions ) ;

Objeto: Suspender la ejecución del proceso en cursohasta que algún hijo termina o una señal es recibida. Si elhijo ya había terminado cuando se hace la llamada, éstaretorna inmediatamente y los recursos usados por el hijoson liberadospid: Identificador de proceso del hijo cuya terminación seespera (para los detalles ver bibliografía)status: Un puntero a un entero donde se recibirá el estadode terminación del hijo. Si el puntero es nulo al llamar, nose devuelve estado

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva waitpid

1 p id_ t wa i t p i d ( p i d_ t pid , i n t ∗ s ta tus , i n t opt ions ) ;

Objeto: Suspender la ejecución del proceso en cursohasta que algún hijo termina o una señal es recibida. Si elhijo ya había terminado cuando se hace la llamada, éstaretorna inmediatamente y los recursos usados por el hijoson liberadospid: Identificador de proceso del hijo cuya terminación seespera (para los detalles ver bibliografía)status: Un puntero a un entero donde se recibirá el estadode terminación del hijo. Si el puntero es nulo al llamar, nose devuelve estado

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva waitpid (cont.)

1 p id_ t wa i t p i d ( p i d_ t pid , i n t ∗ s ta tus , i n t opt ions ) ;

options: Máscara de opciones de terminación de los hijos(ver bibliografía)En caso de éxito se devuelve el pid del proceso hijo o ceroen algún caso especial (ver bibliografía)Se devuelve -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva waitpid (cont.)

1 p id_ t wa i t p i d ( p i d_ t pid , i n t ∗ s ta tus , i n t opt ions ) ;

options: Máscara de opciones de terminación de los hijos(ver bibliografía)En caso de éxito se devuelve el pid del proceso hijo o ceroen algún caso especial (ver bibliografía)Se devuelve -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva waitpid (cont.)

1 p id_ t wa i t p i d ( p i d_ t pid , i n t ∗ s ta tus , i n t opt ions ) ;

options: Máscara de opciones de terminación de los hijos(ver bibliografía)En caso de éxito se devuelve el pid del proceso hijo o ceroen algún caso especial (ver bibliografía)Se devuelve -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva waitpid (cont.)

1 p id_ t wa i t p i d ( p i d_ t pid , i n t ∗ s ta tus , i n t opt ions ) ;

options: Máscara de opciones de terminación de los hijos(ver bibliografía)En caso de éxito se devuelve el pid del proceso hijo o ceroen algún caso especial (ver bibliografía)Se devuelve -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Adopción de Procesos

Cuando un proceso padre terminaEl sistema operativo hace que todos sus hijos sean”adoptados” por el proceso init (pid = 1)De esa forma se mantiene la estructura de árbol en elconjunto de procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Adopción de Procesos

Cuando un proceso padre terminaEl sistema operativo hace que todos sus hijos sean”adoptados” por el proceso init (pid = 1)De esa forma se mantiene la estructura de árbol en elconjunto de procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva getpid

1 p id_ t ge tp id ( void ) ;

Objeto: Obtener el pid del proceso en cursoSe devuelve el pid del proceso en curso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva getpid

1 p id_ t ge tp id ( void ) ;

Objeto: Obtener el pid del proceso en cursoSe devuelve el pid del proceso en curso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva getpid

1 p id_ t ge tp id ( void ) ;

Objeto: Obtener el pid del proceso en cursoSe devuelve el pid del proceso en curso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva getppid

1 p id_ t getpp id ( void ) ;

Objeto: Obtener el pid del proceso padre del actualSe devuelve el pid del proceso padre del actual

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva getppid

1 p id_ t getpp id ( void ) ;

Objeto: Obtener el pid del proceso padre del actualSe devuelve el pid del proceso padre del actual

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva getppid

1 p id_ t getpp id ( void ) ;

Objeto: Obtener el pid del proceso padre del actualSe devuelve el pid del proceso padre del actual

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Ejemplo: minishell

1 /∗ ∗∗∗∗∗∗∗∗∗∗ ARCHIVO minish . c ∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /# inc lude < s t d i o . h>

3 # inc lude < s t r i n g . h># inc lude <un is td . h>

5 # inc lude <sys / types . h># inc lude <sys / wa i t . h>

7

# def ine MAXCOMANDO 5129 # def ine CEXIT "exit"

# def ine PROMPT "minish> "

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Ejemplo: minishell (cont.)

i n t main ( ) {2 char comando [MAXCOMANDO + 1 ] ;

4 while ( 1 ) {/∗ Lectura de l comando ∗ /

6 p r i n t f ("%s" , PROMPT) ;gets ( comando ) ;

8 i f ( s t r l e n ( comando ) == 0) continue ;i f ( strcmp ( comando , CEXIT ) == 0) break ;

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Ejemplo: minishell (cont.)

1 /∗ Ejecucion de l comando ∗ /switch ( f o r k ( ) ) {

3 case −1:/∗ Er ro r ∗ /

5 f p r i n t f ( s tde r r , "No se puede crear el \proceso\n" ) ;

7 break ;case 0:

9 /∗ Proceso h i j o ∗ /execlp ( comando , comando , NULL ) ;

11 /∗ Lo s i gu i e n te so lo se e jecu ta s i execlpf a l l a ∗ /

13 f p r i n t f ( s tde r r , "Error al ejecutar el \comando\n" ) ;

15 return 1;

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Ejemplo: minishell (cont.)

1 defaul t :/∗ Proceso padre ∗ /

3 wai t (NULL ) ;break ;

5 }}

7 return 0;}

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Índice

1 Comunicación entre Procesos

2 Caso de Estudio: UNIXCreación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Comunicación entre Procesos

MecanismosUNIX usa dos mecanismos de comunicación específicosdel sistema: las señales y las tuberías (pipes)

El mecanismo de señales no permite el intercambio dedatos, y su uso no es portable entre los distintos sistemasUNIXLa tuberías permiten el intercambio de datos entreprocesos y su uso es portable entre distintos sistemasUNIX

Son de uso común en las órdenes del shell

who | sort

UNIX dispone de mecanismos de comunicación entreprocesos (IPC) más generales, definidos por POSIX, perono serán estudiados aquí

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Comunicación entre Procesos

MecanismosUNIX usa dos mecanismos de comunicación específicosdel sistema: las señales y las tuberías (pipes)

El mecanismo de señales no permite el intercambio dedatos, y su uso no es portable entre los distintos sistemasUNIXLa tuberías permiten el intercambio de datos entreprocesos y su uso es portable entre distintos sistemasUNIX

Son de uso común en las órdenes del shell

who | sort

UNIX dispone de mecanismos de comunicación entreprocesos (IPC) más generales, definidos por POSIX, perono serán estudiados aquí

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Comunicación entre Procesos

MecanismosUNIX usa dos mecanismos de comunicación específicosdel sistema: las señales y las tuberías (pipes)

El mecanismo de señales no permite el intercambio dedatos, y su uso no es portable entre los distintos sistemasUNIXLa tuberías permiten el intercambio de datos entreprocesos y su uso es portable entre distintos sistemasUNIX

Son de uso común en las órdenes del shell

who | sort

UNIX dispone de mecanismos de comunicación entreprocesos (IPC) más generales, definidos por POSIX, perono serán estudiados aquí

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Comunicación entre Procesos

MecanismosUNIX usa dos mecanismos de comunicación específicosdel sistema: las señales y las tuberías (pipes)

El mecanismo de señales no permite el intercambio dedatos, y su uso no es portable entre los distintos sistemasUNIXLa tuberías permiten el intercambio de datos entreprocesos y su uso es portable entre distintos sistemasUNIX

Son de uso común en las órdenes del shell

who | sort

UNIX dispone de mecanismos de comunicación entreprocesos (IPC) más generales, definidos por POSIX, perono serán estudiados aquí

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Comunicación entre Procesos

MecanismosUNIX usa dos mecanismos de comunicación específicosdel sistema: las señales y las tuberías (pipes)

El mecanismo de señales no permite el intercambio dedatos, y su uso no es portable entre los distintos sistemasUNIXLa tuberías permiten el intercambio de datos entreprocesos y su uso es portable entre distintos sistemasUNIX

Son de uso común en las órdenes del shell

who | sort

UNIX dispone de mecanismos de comunicación entreprocesos (IPC) más generales, definidos por POSIX, perono serán estudiados aquí

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales

Definición y propiedadesLa señales son notificaciones a los procesos, procedentesde otros procesos o del sistema operativo (para indicareventos procedentes del hardware o hechos de interéspara el proceso)Las señales pueden ser bloqueadas (no todas), ignoradas(no todas) o atendidas mediante la ejecución de unafunción definible (no en todos los casos) por el procesoreceptor de la señal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales

Definición y propiedadesLa señales son notificaciones a los procesos, procedentesde otros procesos o del sistema operativo (para indicareventos procedentes del hardware o hechos de interéspara el proceso)Las señales pueden ser bloqueadas (no todas), ignoradas(no todas) o atendidas mediante la ejecución de unafunción definible (no en todos los casos) por el procesoreceptor de la señal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

TiposExiste un mínimo de 15 señalesLa numeración de las señales no coincide en losdiferentes sistemas UNIX, pero las señales tienen nombrey las más comunes tienen nombres que sí son los mismosen diferentes sistemas UNIX

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

TiposExiste un mínimo de 15 señalesLa numeración de las señales no coincide en losdiferentes sistemas UNIX, pero las señales tienen nombrey las más comunes tienen nombres que sí son los mismosen diferentes sistemas UNIX

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

Señales comunesSIGTERM: Terminación normal de un proceso

SIGHUP: Terminal desconectadoSIGFPE: Excepción de punto flotanteSIGILL: Instrucción ilegal

SIGSEGV: Excepción de direccionamientoSIGINT: Petición de interrupción del proceso por teclado

SIGCHLD (o SIGCLD): Proceso hijo terminado o paradoSIGALRM: El temporizador ha agotado el tiempo

SIGKILL: No puede ser ignorada y termina el proceso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

Señales comunesSIGTERM: Terminación normal de un proceso

SIGHUP: Terminal desconectadoSIGFPE: Excepción de punto flotanteSIGILL: Instrucción ilegal

SIGSEGV: Excepción de direccionamientoSIGINT: Petición de interrupción del proceso por teclado

SIGCHLD (o SIGCLD): Proceso hijo terminado o paradoSIGALRM: El temporizador ha agotado el tiempo

SIGKILL: No puede ser ignorada y termina el proceso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

Señales comunesSIGTERM: Terminación normal de un proceso

SIGHUP: Terminal desconectadoSIGFPE: Excepción de punto flotanteSIGILL: Instrucción ilegal

SIGSEGV: Excepción de direccionamientoSIGINT: Petición de interrupción del proceso por teclado

SIGCHLD (o SIGCLD): Proceso hijo terminado o paradoSIGALRM: El temporizador ha agotado el tiempo

SIGKILL: No puede ser ignorada y termina el proceso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

Señales comunesSIGTERM: Terminación normal de un proceso

SIGHUP: Terminal desconectadoSIGFPE: Excepción de punto flotanteSIGILL: Instrucción ilegal

SIGSEGV: Excepción de direccionamientoSIGINT: Petición de interrupción del proceso por teclado

SIGCHLD (o SIGCLD): Proceso hijo terminado o paradoSIGALRM: El temporizador ha agotado el tiempo

SIGKILL: No puede ser ignorada y termina el proceso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

Señales comunesSIGTERM: Terminación normal de un proceso

SIGHUP: Terminal desconectadoSIGFPE: Excepción de punto flotanteSIGILL: Instrucción ilegal

SIGSEGV: Excepción de direccionamientoSIGINT: Petición de interrupción del proceso por teclado

SIGCHLD (o SIGCLD): Proceso hijo terminado o paradoSIGALRM: El temporizador ha agotado el tiempo

SIGKILL: No puede ser ignorada y termina el proceso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

Señales comunesSIGTERM: Terminación normal de un proceso

SIGHUP: Terminal desconectadoSIGFPE: Excepción de punto flotanteSIGILL: Instrucción ilegal

SIGSEGV: Excepción de direccionamientoSIGINT: Petición de interrupción del proceso por teclado

SIGCHLD (o SIGCLD): Proceso hijo terminado o paradoSIGALRM: El temporizador ha agotado el tiempo

SIGKILL: No puede ser ignorada y termina el proceso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

Señales comunesSIGTERM: Terminación normal de un proceso

SIGHUP: Terminal desconectadoSIGFPE: Excepción de punto flotanteSIGILL: Instrucción ilegal

SIGSEGV: Excepción de direccionamientoSIGINT: Petición de interrupción del proceso por teclado

SIGCHLD (o SIGCLD): Proceso hijo terminado o paradoSIGALRM: El temporizador ha agotado el tiempo

SIGKILL: No puede ser ignorada y termina el proceso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

Señales comunesSIGTERM: Terminación normal de un proceso

SIGHUP: Terminal desconectadoSIGFPE: Excepción de punto flotanteSIGILL: Instrucción ilegal

SIGSEGV: Excepción de direccionamientoSIGINT: Petición de interrupción del proceso por teclado

SIGCHLD (o SIGCLD): Proceso hijo terminado o paradoSIGALRM: El temporizador ha agotado el tiempo

SIGKILL: No puede ser ignorada y termina el proceso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Señales (cont.)

Señales comunesSIGTERM: Terminación normal de un proceso

SIGHUP: Terminal desconectadoSIGFPE: Excepción de punto flotanteSIGILL: Instrucción ilegal

SIGSEGV: Excepción de direccionamientoSIGINT: Petición de interrupción del proceso por teclado

SIGCHLD (o SIGCLD): Proceso hijo terminado o paradoSIGALRM: El temporizador ha agotado el tiempo

SIGKILL: No puede ser ignorada y termina el proceso

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva signal

s ighand le r_ t s i g n a l ( i n t signum ,2 s ighand le r_ t handler ) ;

Objeto: Instalar un manejador para una señalsignum: Valor de la señal que activará el manejadorhandler: Una función con un argumento int y que nodevuelve nada(typedef void (*sighandler_t)(int);)Se devuelve el manejador previo en caso de éxito oSIG_ERR en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva signal

s ighand le r_ t s i g n a l ( i n t signum ,2 s ighand le r_ t handler ) ;

Objeto: Instalar un manejador para una señalsignum: Valor de la señal que activará el manejadorhandler: Una función con un argumento int y que nodevuelve nada(typedef void (*sighandler_t)(int);)Se devuelve el manejador previo en caso de éxito oSIG_ERR en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva signal

s ighand le r_ t s i g n a l ( i n t signum ,2 s ighand le r_ t handler ) ;

Objeto: Instalar un manejador para una señalsignum: Valor de la señal que activará el manejadorhandler: Una función con un argumento int y que nodevuelve nada(typedef void (*sighandler_t)(int);)Se devuelve el manejador previo en caso de éxito oSIG_ERR en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva signal

s ighand le r_ t s i g n a l ( i n t signum ,2 s ighand le r_ t handler ) ;

Objeto: Instalar un manejador para una señalsignum: Valor de la señal que activará el manejadorhandler: Una función con un argumento int y que nodevuelve nada(typedef void (*sighandler_t)(int);)Se devuelve el manejador previo en caso de éxito oSIG_ERR en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva signal

s ighand le r_ t s i g n a l ( i n t signum ,2 s ighand le r_ t handler ) ;

Objeto: Instalar un manejador para una señalsignum: Valor de la señal que activará el manejadorhandler: Una función con un argumento int y que nodevuelve nada(typedef void (*sighandler_t)(int);)Se devuelve el manejador previo en caso de éxito oSIG_ERR en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva kill

i n t k i l l ( p i d_ t pid , i n t s ig ) ;

Objeto: Enviar una señal a un procesopid: Identificador del proceso destinatario (para posiblesvalores de pid ver bibliografía)sig: Identificador de la señalSe devuelve 0 en caso de éxito y -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva kill

1 i n t k i l l ( p i d_ t pid , i n t s ig ) ;

Objeto: Enviar una señal a un procesopid: Identificador del proceso destinatario (para posiblesvalores de pid ver bibliografía)sig: Identificador de la señalSe devuelve 0 en caso de éxito y -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva kill

1 i n t k i l l ( p i d_ t pid , i n t s ig ) ;

Objeto: Enviar una señal a un procesopid: Identificador del proceso destinatario (para posiblesvalores de pid ver bibliografía)sig: Identificador de la señalSe devuelve 0 en caso de éxito y -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva kill

1 i n t k i l l ( p i d_ t pid , i n t s ig ) ;

Objeto: Enviar una señal a un procesopid: Identificador del proceso destinatario (para posiblesvalores de pid ver bibliografía)sig: Identificador de la señalSe devuelve 0 en caso de éxito y -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva kill

1 i n t k i l l ( p i d_ t pid , i n t s ig ) ;

Objeto: Enviar una señal a un procesopid: Identificador del proceso destinatario (para posiblesvalores de pid ver bibliografía)sig: Identificador de la señalSe devuelve 0 en caso de éxito y -1 en caso de error

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva alarm

1 unsigned i n t alarm ( unsigned i n t seconds ) ;

Objeto: Enviar al proceso en curso una señal SIGALRM alcabo de un tiemposeconds: Tiempo en segundos al cabo del cual se enviarála señal SIGALRMSe devuelve el tiempo en segundos restante para haberenviado una señal SIGALRM correspondiente a unaalarma pendiente. Si no había ninguna alarma pendientese devuelve 0

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva alarm

1 unsigned i n t alarm ( unsigned i n t seconds ) ;

Objeto: Enviar al proceso en curso una señal SIGALRM alcabo de un tiemposeconds: Tiempo en segundos al cabo del cual se enviarála señal SIGALRMSe devuelve el tiempo en segundos restante para haberenviado una señal SIGALRM correspondiente a unaalarma pendiente. Si no había ninguna alarma pendientese devuelve 0

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva alarm

1 unsigned i n t alarm ( unsigned i n t seconds ) ;

Objeto: Enviar al proceso en curso una señal SIGALRM alcabo de un tiemposeconds: Tiempo en segundos al cabo del cual se enviarála señal SIGALRMSe devuelve el tiempo en segundos restante para haberenviado una señal SIGALRM correspondiente a unaalarma pendiente. Si no había ninguna alarma pendientese devuelve 0

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva alarm

1 unsigned i n t alarm ( unsigned i n t seconds ) ;

Objeto: Enviar al proceso en curso una señal SIGALRM alcabo de un tiemposeconds: Tiempo en segundos al cabo del cual se enviarála señal SIGALRMSe devuelve el tiempo en segundos restante para haberenviado una señal SIGALRM correspondiente a unaalarma pendiente. Si no había ninguna alarma pendientese devuelve 0

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva pause

1 i n t pause ( void ) ;

Objeto: Suspender la ejecución de un proceso hasta quese reciba una señalSólo retorna cuando una señal ha sido capturada, y enese caso su valor de retorno es -1

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva pause

1 i n t pause ( void ) ;

Objeto: Suspender la ejecución de un proceso hasta quese reciba una señalSólo retorna cuando una señal ha sido capturada, y enese caso su valor de retorno es -1

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva pause

1 i n t pause ( void ) ;

Objeto: Suspender la ejecución de un proceso hasta quese reciba una señalSólo retorna cuando una señal ha sido capturada, y enese caso su valor de retorno es -1

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Tuberías

Definición y propiedadesSon canales de comunicación con una capacidad limitadaSe manejan mediante dos descriptores de archivoalmacenados en una matriz fd[2]

fd[0]: Descriptor de lectura en el canalfd[1]: Descriptor de escritura en el canal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Tuberías

Definición y propiedadesSon canales de comunicación con una capacidad limitadaSe manejan mediante dos descriptores de archivoalmacenados en una matriz fd[2]

fd[0]: Descriptor de lectura en el canalfd[1]: Descriptor de escritura en el canal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Tuberías

Definición y propiedadesSon canales de comunicación con una capacidad limitadaSe manejan mediante dos descriptores de archivoalmacenados en una matriz fd[2]

fd[0]: Descriptor de lectura en el canalfd[1]: Descriptor de escritura en el canal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Tuberías

Definición y propiedadesSon canales de comunicación con una capacidad limitadaSe manejan mediante dos descriptores de archivoalmacenados en una matriz fd[2]

fd[0]: Descriptor de lectura en el canalfd[1]: Descriptor de escritura en el canal

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva pipe

1 i n t pipe ( i n t f i l e d e s [ 2 ] ) ;

Objeto: Crear una tuberíafiledes: Una matriz de dos enteros destinada a albergar losdos descriptores de la tuberíaSe devuelve 0 en caso de éxito (-1 en caso de error)

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva pipe

1 i n t pipe ( i n t f i l e d e s [ 2 ] ) ;

Objeto: Crear una tuberíafiledes: Una matriz de dos enteros destinada a albergar losdos descriptores de la tuberíaSe devuelve 0 en caso de éxito (-1 en caso de error)

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva pipe

1 i n t pipe ( i n t f i l e d e s [ 2 ] ) ;

Objeto: Crear una tuberíafiledes: Una matriz de dos enteros destinada a albergar losdos descriptores de la tuberíaSe devuelve 0 en caso de éxito (-1 en caso de error)

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

La Primitiva pipe

1 i n t pipe ( i n t f i l e d e s [ 2 ] ) ;

Objeto: Crear una tuberíafiledes: Una matriz de dos enteros destinada a albergar losdos descriptores de la tuberíaSe devuelve 0 en caso de éxito (-1 en caso de error)

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Uso de las Tuberías

Llamadas al sistemawrite

Escritura de datos en orden de llegadaPuede ser bloqueante (en caso que el pipe esté lleno) o nobloqueante

readLectura de datos en orden de llegadaBloqueante en general si no hay datos en la tubería. Si eldescriptor de escritura ha sido cerrado, un intento delectura resultará en un EOF

closeLibera el descriptor de archivoSi se realiza sobre el descriptor de escritura, proporcionaráuna marca de fin de archivo al lector

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Uso de las Tuberías

Llamadas al sistemawrite

Escritura de datos en orden de llegadaPuede ser bloqueante (en caso que el pipe esté lleno) o nobloqueante

readLectura de datos en orden de llegadaBloqueante en general si no hay datos en la tubería. Si eldescriptor de escritura ha sido cerrado, un intento delectura resultará en un EOF

closeLibera el descriptor de archivoSi se realiza sobre el descriptor de escritura, proporcionaráuna marca de fin de archivo al lector

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Uso de las Tuberías

Llamadas al sistemawrite

Escritura de datos en orden de llegadaPuede ser bloqueante (en caso que el pipe esté lleno) o nobloqueante

readLectura de datos en orden de llegadaBloqueante en general si no hay datos en la tubería. Si eldescriptor de escritura ha sido cerrado, un intento delectura resultará en un EOF

closeLibera el descriptor de archivoSi se realiza sobre el descriptor de escritura, proporcionaráuna marca de fin de archivo al lector

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Uso de las Tuberías

Llamadas al sistemawrite

Escritura de datos en orden de llegadaPuede ser bloqueante (en caso que el pipe esté lleno) o nobloqueante

readLectura de datos en orden de llegadaBloqueante en general si no hay datos en la tubería. Si eldescriptor de escritura ha sido cerrado, un intento delectura resultará en un EOF

closeLibera el descriptor de archivoSi se realiza sobre el descriptor de escritura, proporcionaráuna marca de fin de archivo al lector

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Uso de las Tuberías

Llamadas al sistemawrite

Escritura de datos en orden de llegadaPuede ser bloqueante (en caso que el pipe esté lleno) o nobloqueante

readLectura de datos en orden de llegadaBloqueante en general si no hay datos en la tubería. Si eldescriptor de escritura ha sido cerrado, un intento delectura resultará en un EOF

closeLibera el descriptor de archivoSi se realiza sobre el descriptor de escritura, proporcionaráuna marca de fin de archivo al lector

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Uso de las Tuberías

Llamadas al sistemawrite

Escritura de datos en orden de llegadaPuede ser bloqueante (en caso que el pipe esté lleno) o nobloqueante

readLectura de datos en orden de llegadaBloqueante en general si no hay datos en la tubería. Si eldescriptor de escritura ha sido cerrado, un intento delectura resultará en un EOF

closeLibera el descriptor de archivoSi se realiza sobre el descriptor de escritura, proporcionaráuna marca de fin de archivo al lector

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Uso de las Tuberías

Llamadas al sistemawrite

Escritura de datos en orden de llegadaPuede ser bloqueante (en caso que el pipe esté lleno) o nobloqueante

readLectura de datos en orden de llegadaBloqueante en general si no hay datos en la tubería. Si eldescriptor de escritura ha sido cerrado, un intento delectura resultará en un EOF

closeLibera el descriptor de archivoSi se realiza sobre el descriptor de escritura, proporcionaráuna marca de fin de archivo al lector

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Uso de las Tuberías

Llamadas al sistemawrite

Escritura de datos en orden de llegadaPuede ser bloqueante (en caso que el pipe esté lleno) o nobloqueante

readLectura de datos en orden de llegadaBloqueante en general si no hay datos en la tubería. Si eldescriptor de escritura ha sido cerrado, un intento delectura resultará en un EOF

closeLibera el descriptor de archivoSi se realiza sobre el descriptor de escritura, proporcionaráuna marca de fin de archivo al lector

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

Creación de ProcesosRecubrimiento de ProcesosTerminación de ProcesosComunicación entre Procesos

Uso de las Tuberías

Llamadas al sistemawrite

Escritura de datos en orden de llegadaPuede ser bloqueante (en caso que el pipe esté lleno) o nobloqueante

readLectura de datos en orden de llegadaBloqueante en general si no hay datos en la tubería. Si eldescriptor de escritura ha sido cerrado, un intento delectura resultará en un EOF

closeLibera el descriptor de archivoSi se realiza sobre el descriptor de escritura, proporcionaráuna marca de fin de archivo al lector

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

ResumenLecturas Recomendadas

Resumen

En esta sesión hemos vistoVentajas y problemas de la comunicación entre procesosCaso de estudio UNIX

E. Domínguez, C. Villarrubia Tema 4

Puntos Desarrollados en la Sesión AnteriorComunicación entre Procesos

Caso de Estudio: UNIXResumen y Lecturas Recomendadas

ResumenLecturas Recomendadas

Lecturas Recomendadas

Lecturas recomendadasA. Silberschatz, P. Galvin. Sistemas Operativos. 5a ed.Addison Wesley. Capítulo 4: Procesos. Sección 4.6Consultar manual Linux para las primitivas citadas

E. Domínguez, C. Villarrubia Tema 4