Stop ai processi Zombie – I parte

Stop ai processi Zombie – I parte

Settembre 26, 2012 1 Di Ruggero Grando

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)

Pagina Successiva

No votes yet.
Please wait...

Pagine: 1 2 3