La creazione di un processo è una delle operazione più importante di un sistema operativo. Ogni SO possiede un’opportuna System Call (chiamata di sistema) di creazione di un processo. La tipica System Call che crea un processo è la fork(). Ogni processo è creato a partire da un altro processo, il processo che ne crea un altro e’ detto processo padre, mentre il processo creato è detto processo figlio. Poichè ogni processo può a sua volta creare altri processi, nel sistema si crea un “albero di processi” che ha più o meno la seguente struttura (UNIX):
Gli eventi che creano un nuovo processo sono:
Start up del Sistema Operativo
Esecuzione di un comando o di un programma
Chiamata di una opportuna System Call in un programma
Un processo termina dopo l’esecuzione dell’ultima istruzione del suo codice, oppure quando viene chiamata una syscall exit(). Sarà poi il SO a provvedere a rimuovere le risorse che erano state allocate al processo terminato. I dati di output del processo terminato possono essere inviati al padre, se questo è in attesa per la terminazione del figlio (wait()). In alcuni sistemi, un processo può uccidere un altro processo appartenente allo stesso utente con una opportuna syscall kill o abort. Il sistema stesso può decidere anche di uccidere un processo se:
il processo sta usando troppe risorse
il suo processo padre è morto. In questo caso si verifica una terminazione a cascata (attenzione, questo non è il caso dello Unix)
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.