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).