La gestione dei processi in Linux: introduzione e la sintassi del comando PS

postato in: Linux, Sistemi Operativi, Tool | 0

Sintassi del comando PS

Gestione dei processi in ambiente linux

Generalmente tutti i sistemi linux o Unix derivati (ad esempio FreeBSD e MAC OS X)  offrono una migliore gestione dei processi rispetto ai sistemi operativi di casa Microsoft.

Ma cos’è un processo?   Possiamo “volgarmente” definire un processo come un programma in esecuzione e tutti i programmi in esecuzione utilizzano almeno un processo. Ogni processo attivo su una macchina ha un identificatore process identifier o PID che consiste in un indice numero univoco in tutto l’ambiente di lavoro.

Per gestire e monitorare i processi esistono diversi comandi:

  • ps
  • top
  • kill
Partiamo con analizzare la sintassi del comando PS, l’output e il suo utilizzo.
sintassi_del_comando_PS_output_01
Sin

Al fine di monitorare i processi in esecuzione sul sistema è possibile utilizzare il comando ps  (Process State), che ci mostra lo stato dei processi in corso all’interno del sistema, in pratica viene visualizzata una lista dei processi correnti.

Nell’esempio  non abbiamo utilizzato solo il comando ps, in quanto se non  specificate ulteriori opzioni ci viene restituito l’elenco sintetico dei processi appartenenti all’utente e controllati mediante il terminale in uso.

Nell’esempio abbiamo usato la sintassi del comando PS con opzioni aux   che mostra i processi relativi a tutti gli utenti (-a) anche se non controllati dal terminale (-x) oltre che visualizzare gli user (-u) degli utenti a cui appartengono i processi in esecuzione.

il comando come nell’esempio sottostante può essere integrato con il comando grep in modo da andare a filtrare i processi per tipologia (come nel nostro caso ) o utente.

sintassi_del_comando_PS_output_02

Nella figura riportata sono elencati una parte dei processi in esecuzione, per ogni riga c’è un processo.

Da sinistra a destra le colonne sono chiamate:

  • USER :  l’utente che ha lanciato il processo;
  • PID: il codice identificativo del processo lanciato;
  • %CPU e %MEM : stanno a indicare la percentuale di occupazione del processore e della memoria fatta dal processo in questione;
  • VSZ  (Virtual SiZe) : che rappresenta l’uso della memoria virtuale del processo, in questo conteggio è incluso anche l’ RSS,
  • RSS : Resident Set Size che indica l’occupazione della memoria fisica senza swap;

Sia VSZ sia RSS sono soltanto delle stime di occupazione in kilobyte; parliamo di stime in quanto è possibile che i processi facciano uso di librerie condivise e lo spazio di queste librerie andrebbe quindi sottratto ai due valori.

  • TTY  : indica il terminale da cui è stato lanciato il processo, il valore ? solitamente rappresenta un servizio di sistema operativo.
  • START : riporta l’ora o il giorno di quanto il processo è stato avviato.
  • TIME : indica il tempo di CPU consumato dal processo.
  • STAT : indica lo stato del processo che è indicato con una o due lettere.

Il primo carattere della colonna STAT indica lo stato principale.

    • D : indica un processo sul disco o in attesa da breve termine.
    • I : rappresenta un processo inattivo (idle) dormiente per più di 20 secondi.
    • L : sta aspettando per acquisire un Lock.
    • R : è in esecuzione.
    • S : sta dormendo (sleeping)da meno di 20 secondi.
    • T : è stato fermato.
    • W : indica un thread interrotto inattivo (idle).
    • Z : marca un processo morto (a “zombie”).

A volte lo stato principale è seguito da un altro carattere che completa la descrizione del processo.

    • + : il processo è in un gruppo di processi in primo piano.
    • < : ha aumentato la priorità nella pianificazione dell’uso della CPU.
    • E : sta cercando di uscire.
    • J : il processo sta in una jail. The hostname della gabbia si può controllare in /proc/<pid/status>.
    • L : ha delle pagine bloccate sul core (per esempio in raw I/O).
    • N : la sua priorità di esecuzione è stata ridotta.
    • s : è un leader di sessione.
    • V : è sosteso durante un vfork.
    • W : è stato spostato dalla memoria principale a quella virtuale.
    • X : il processo è sottoposto a tracciamento or debug.

 

Lascia un commento