Sesión 3: Procesos

ejemplo_fork1: crea un subproceso e indica el número de proceso de este y su padre.
ejemplo_fork2: igual que antes, pero también nos indica qué proceso es (si padre o hijo).
ejemplo_fork3: igual que antes, pero el proceso hijo se sale antes de tiempo y no muestra por pantalla un mensaje.
ejemplo_fork4: primero se muestran los mensajes del padre, ya que este acabará antes que el hijo.
ejemplo_fork5: ahora la ejecución del proceso padre se pausa y se inicia la del hijo; cuando este acaba, el padre la retoma.

ejemplo_fork6: se ejecuta código de padre e hijo alternamente, jugando con la lectura/modificación de una variable global; en general, el programa no devolverá siempre la misma salida, ya que no hay espera - wait() - por parte de ninguno de los 2 procesos y el código de padre e hijo se ejecutará alternamente.

ejemplo_fork7: no compila por errores de compilación, que hemos resuelto:
- añadiendo #include <stdlib.h> - necesario por exit().
- añadiendo pasando variable_local como parámetro de la función Escribe_variables().

ejemplo_exec1: muestra por pantalla el equivalente de ejecutar "ls -l"; el pid solamente aparece una vez, ya que el proceso muta hacia otro programa (y a partir de entonces el programa principal dejará de ejecutarse).

ejemplo_exec2: el programa imprime el número de PID, después muta hacia otro programa (MANTENIENTO el pid), que creará un proceso hijo (con un nuevo PID), y mostrará el PID de ambos (padre e hijo). En total se ejecutan 2 procesos.