Ciao a tutti, ho molti dubbi sulla system call fork().. Non ho capito bene come funziona e quindi non ho capito cosa sono i processi zombie e quelli orfani.
So che la fork serve per creare un nuovo processo. Il processo che ha fatto fork diventa un padre mentre quello creato è il figlio il quale svolge le stesse operazioni del padre a meno che non si esegua una exec().
Ora, se un figlio muore e il padre resta vivo che succede?
Se invece muore il padre e non il figlio? In quest'ultimo caso ho capito che il processo figlio viene adottato dal processo init, giusto? Cos'è quest'init?
Gli zombie e gli orfani come si creano? Come si evitano?
Cosa cambia (supponiamo in un ciclo infinito) se faccio forkare ogni volta il padre oppure se faccio forkare il figlio?
Per farove spiegatemelo in maniera moooolto semplice.. Ho già letto parecchie cose sul web ma non mi è ancora tutto chiaro.. Non ho trovato nessun disegno che "spiegasse" in maniera chiara il fatto che un processo viene adottato.. Non me lo immagino..
Grazie infinite![]()