In questa lezione introdurremo i processi, cioรจ le "attivitร " che vengono create dai diversi comandi allโinterno del nostro sistema operativo. Eโ appena il caso di ricordare che Linux (come molti altri OS) รจ un sistema multitasking ed รจ in grado, pertanto, di gestire simultaneamente diversi processi. Prima di proseguire, tuttavia, si rende opportuna qualche precisazione preliminare.
Per prima cosa cercheremo, quindi, di rispondere alle domande "cosโรจ un processo?" e "cosโรจ il PID?".
Cosโรจ un processo in Linux?
In Linux, un file eseguibile memorizzato su disco costituisce un programma. Quando un programma viene lanciato e caricato in memoria viene chiamato processo.
Con linguaggio tecnico possiamo definire il processo come lโistanza di un programma.
I processi hanno un ciclo vitale simile a quello degli organismi viventi: nasce (il programma viene lanciato), vive (il programma รจ in esecuzione) e muove (il programma viene terminato).
Cosโรจ il PID?
Quando viene avviato un processo gli viene assegnato un numero univoco chiamato ID processo (PID) che lo identifica in modo univoco nel sistema.
Il PID non รจ modificabile e non varia per tutta la durata del processo. Solitamente il valore di PID viene assegnato in modo sequenziale: un nuovo processo, quindi, assumerร un valore di PID maggiore di uno rispetto allโultimo processo creato.
Conoscendo il PID รจ possibile agire sul processo, ad esempio terminandolo.
Processi utenti e Processi di sistema
Il processi possono essere distinti in due gruppi:
- i processi utente sono quelli lanciati dallโutente durante la sua interazione col sistema operativo. Si pensi ad esempio allโesecuzione di un programma per la navigazione on-line come Chrome o Firefox: in questo caso รจ lโutente a lanciare il programma e lo fa in modo esplicito attraverso una propria azione.
- i processi di sistema (anche detti demoni) sono programmi, avviati al momento del boot del sistema, che vengono eseguiti in background per fornire taluni servizi. Di solito i demoni hanno nomi che finiscono con la lettera "d": per esempio, syslogd รจ il demone che gestisce i log di sistema, httpd รจ il demone che fa girare il servizio HTTP e cosรฌ via.
Ereditarietร e PPID
A ciascun processo viene associato, oltre al giร visto PID, un altro identificatore detto PPID (Parent Process ID Number): si tratta di un numero NON univoco che indica qualโรจ il suo processo genitore. Ogni processo, infatti, ha facoltร di lanciare altri processi che assumeranno il ruolo di child (figli). Ogni processo potrร avere piรน figli ma uno e un solo padre (parent process).
In base al principio di ereditarietร un processo figlio viene automaticamente terminato quando il processo padre che lo ha direttamente originato termina.