back to top

I processi in Linux

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.

Pubblicità
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).