POSIX para la gestión de procesos

POSIX para la gestión de procesos

Identificación de procesos

POSIX identifica cada proceso por medio de un entero único denominado identificador de proceso de tipo pid_t

La función para obtener el identificador del proceso que realiza la llamada es

La función para obtener el identificador del proceso padre es

La función para obtener el identificador de usuario real es

La función para obtener el identificador de grupo real es

Entorno de un proceso

El entorno de un proceso consta de la lista de variables que se pasan al proceso en el momento de empezar su ejecución

Son accesibles a través una variable externa que apunta a una lista de variables de entorno:

Algunas variable de entorno:

  • HOME: directorio de trabajo inicial del usuario
  • LOGNAME: nombre del usuario asociado al proceso

La función para obtener el valor de una variable de entorno es char

Creación de procesos

La función para crear un proceso es

Devuelve el identificador del proceso hijo al proceso padre y 0 al proceso hijo, devolverá -1 en caso de error

Crea un proceso hijo que ejecuta el mismo programa que el padre. Hereda los ficheros abiertos (se copian los descriptores)

Las funciones para ejecutar un programa (código) distinto son:

Como argumentos se utilizan path, file del nombre del archivo ejecutable y arg como argumentos del ejecutable

Devuelve -1 en caso de error. Si tiene éxito no devolverá ningún valor

Cambia la imagen de memoria del proceso. El mismo proceso ejecuta otro programa pero mantiene los ficheros abiertos

Terminación de procesos

La función para terminar un proceso es

Como argumento se utiliza estado, que es el código de retorno al proceso padre

Finaliza la ejecución del proceso

Se cierran todos los descriptores de ficheros abiertos

Se liberan todos los recursos del proceso

Espera la terminaciçon de un proceso

Las funciones para esperar por la finalización de un proceso hijo son:

Como argumentos se utilizan estado, el identificador de terminación del proceso hijo, pid, identificador del proceso, opciones, identificador de opciones

Devuelve el identificador del proceso hijo ó -1 en caso de error

Permite a un proceso padre esperar hasta que termine la ejecución de un proceso hijo

Programa de ejemplo