Sesión 3: Procesos

PREGUNTA 19. ¿Cómo puede saber un proceso el pid de sus hijos? ¿Qué llamada pueden utilizar los procesos para consultar su propio PID?

distinguiendo varios casos a partir del número retornado a raiz de la creación del proceso - con fork(); getpid()

PREGUNTA 20. ¿En qué casos se ejecutará cualquier código que aparezca justo después de la llamada execlp (En cualquier caso/ En caso que el execlp se ejecute de forma correcta/ En caso que el exclp falle)?

Únicamente en caso de que el execlp falle.

PREGUNTA 21. ¿Qué directorios hay dentro de /proc/PID_PADRE? ¿Qué opción de ls has usado?

Tanto myPS como myPS_v0: attr,fd,fdinfo,net,ns,task; he utlizado "ls -la".

PREGUNTA 22. Apunta el contenido de los ficheros status y cmdline. Compara el contenido del fichero environ con el resultado del comando env (fíjate por ejemplo en la variable PATH y la variable PWD) ¿Qué relación hay? Busca en el contenido del fichero status el estado en el que se encuentra el proceso y apúntalo en el fichero de respuestas.

myPS:
	- status => vemos que tiene información como su nombre (del ejecutable), el estado del proceso (Z - zombie), su PID y el de su padre, y más cosas que desconozco que significan.
	- cmdline => algo parecido al comando que hemos introducido en consola para ejecutar el programa.
myPS_v0:
	- status => destacar que el estado del proceso es R - running, a diferencia de myPS. 
	- cmdline => misma idea que con myPS.

Para ambos programas, las variables PATH y PWD del fichero /proc/[PID]/environ son las mismas que el comando env; incluso me atrevería a decir que el archivo environ es un mero dump de todas las variables de entorno en el momento de ejecutar el programa.

PREGUNTA 23. En el caso del proceso hijo, ¿A qué ficheros "apuntan" los ficheros cwd y exe? ¿Cuál crees que es el significado de cwd y exe?

myPS: "permiso denegado" en ambos (recordemos que es el proceso que muta).
myPS_v0:
	- cwd => /home/mario/S3			(creo que hace referencia al "current working directory", y es el directorio desde donde se llamó al programa).
	- exe => /home/mario/S3/myPS_v0	(creo que significa "executable", y es la propia ruta del ejecutable/programa).

PREGUNTA 24. ¿Puedes mostrar el contenido de los ficheros environ, status y cmdline del proceso hijo? ¿En qué estado se encuentra el hijo?

myPS:		solamente el contenido del fichero status (zombie).
myPS_v0:	es posible leer el contenido de los 3 ficheros (running).

También vemos que la info mostrada por el fichero status difiere en ambos procesos (hay más información del proceso running).

PREGUNTA 25. Comprueba el fichero status de /proc/PID_PADRE /proc/PID_HIJO(s). ¿En qué estado está el proceso padre? ¿En qué estado están los hijos? 

El padre está en estado sleeping, los hijos están en estado zombie.

PREGUNTA 26. ¿Qué has hecho para guardar la salida de las ejecuciones de myPS3?

Redireccionamiento a fichero:
./myPS3 parametro1 parametro2 ... parametroN > fichero.txt
