Stop ai processi Zombie – I parte 1


Almeno una volta nella vita, vi sarà capitato di assistere ad un processo che non si arresta. In quel momento, non potete spegnere o riavviare il vostro sistema GNU/Linux, come fare per risolvere il problema?

Questo articolo oltre a esporre alcuni concetti importanti sui processi, mostra l’utilizzo del comando “kill” come soluzione a situazioni alquanto sgradevoli in grado di terminare qualsiasi processo (in realtà non tutti i processi). Ma prima della pratica è il momento di un pò di teoria.

UNA DIFFERENZA FONDAMENTALE: PROCESSO E PROGRAMMA

Prima di iniziare a parlare di processi è fondamentale capire la differenza tra processo e programma: il primo è la rappresentazione del kernel di un programma in esecuzione, mentre il secondo è un file memorizzato che contiene il codice vero e proprio, alcune aree dati e altro ancora. Tale differenza è riassunta nella seguente immagine.

Differenza tra processo e programma

Figura 1.
(Differenza tra processo e programma)

COME NASCE IL NOME DI UN PROCESSO, OSSIA IL PID?

L’identificato del processo o PID ossia il nome che il Kernel assegna ad un processo è un numero univoco descritto dal tipo di dato opaco (pid_t) intero. Tale numero non è negativo ed è attribuito in modalità circolare:

next_pid = (prev_pid + 1) % max_pid

La cui sopra significa: il prossimo PID è determinato dal numero di PID precedente + 1 nella percentuale massima di PID consentita.

MA IL PROCESSO, IN QUALI STATI SI PUO’ TROVARE?

Gli stati in cui si può trovare un processo sono essenzialmente quattro:

  1. In esecuzione: il processo è in esecuzione (il suo codice)
  2. Pronto: il processo è pronto a proseguire/iniziare la sua esecuzione
  3. Bloccato: il processo resta in attesa di un evento
  4. Terminato: il processo risulta terminato

In maniera abbastanza semplice possiamo riassumere con il seguente grafico gli stati di un processo.

I vari stati di un processo

Figura 2.
(I vari stati di un processo)

No votes yet.
Please wait...
Voting is currently disabled, data maintenance in progress.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

cinque × quattro =

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Un commento su “Stop ai processi Zombie – I parte