I comandi Linux: i processi ( 2 ) | OTHER chapters | |||
Il comando
In questo esempio,
A seconda dell'implementazione del comando,
E' possibile richiedere un output che riporti anche i dati dell'utente:
dove:
Per capire il significato del campo STAT occorrono alcune spiegazioni generali sull’architettura
della gestione dei processi. Come sistema multitasking Linux è in grado di eseguire più processi
contemporaneamente. In genere però un processo, pur essendo attivo, non è assolutamente detto
che sia anche in esecuzione. Il caso più comune infatti è quello in cui il programma è in attesa
di ricevere dati da una periferica; in tal caso il kernel pone il programma in stato di
I caratteri affiancati ai caratteri di stato possono essere:
Con l'opzione:
verranno visualizzati anche i processi lanciati da altri utenti, purchè
facenti riferimento ad un terminale ( TTY ). L'opzione
Quindi, per avere una lista di tutti i processi in esecuzione e vedere l'utente associato a ciascun processo, digitate:
Una opzione alternativa, per avere l'elenco di tutti i processi attivi, è la seguente:
E' possibile chiedere a
L'opzione
E' possibile selezionare il formato di output preferito, utilizzando l'ozione:
dove GROUP significa "effective group" ( il gruppo del quale il processo ha dovuto acquisire i privilegi per poter eseguire una determinata operazione ), PPID significa "Parent Process ID" ( il processo di cui il processo corrente è figlio ), USER significa "effective user name" ( l'utente del quale il processo ha dovuto acquisire i privilegi per poter eseguire una determinata operazione ), RGROUP significa Real Group Name ( il gruppo principale al quale appartiene il Real User ), RUSER significa Real User ( l'utente che ha lanciato il processo ). Per avere una lista completa dei processi attivi e leggere, nell'output, anche il Parent Process ID ( PPID ), usare la sintassi alternativa:
dove l'opzione Il comando
Il processo Il comando
In un sistema a 64 bit, il numero di celle rappresentabili direttamente sarebbe enorme: 264, cioè 18.446.744.073.709.551.616 di singole celle di memoria, tutte comprese nell'intervallo:
Questo tipo di notazione viene chiamato Indirizzo Lineare ( Linear address ). L'indirizzo lineare è quello che appare come output del comando
Il comando
In questo output, è chiaro che il comando
Lo spazio virtuale di indirizzi riservati al processo (
Visto che il codice sopra riportato è tratto dall'articolo Playing with Virtual Memory di Kristina Chodorow, possiamo conoscere il codice sorgente del programma
La libreria condivisa
E' possibile richiedere un formato esteso dell'output:
dove troviamo alcuni campi addizionali: RSS ( Resident Physical Memory ) e Dirty ( Dirty Pages ). Le RSS sono i blocchi residenti nella memoria fisica del sistema ( e non nell'area di swap del disco fisso ), mentre le Dirty Pages sono blocchi di memoria che sono stati modificati dall'applicazione e dovranno essere salvati su disco fisso ( nel file di swap ).
Vediamo, ora, un'altra opzione disponibile: l'opzione
Ciascun indirizzo logico ( logical address ) è composto da un segmento e da un offset ( scostamento ), che indica la distanza della cella corrente dall'inizio del segmento. Occorre tenere a mente che, in un sistema virtuale, un indirizzo logico corrisponde ad un indirizzo lineare: entrambi gli indirizzi verranno, poi, convertiti in un indirizzo fisico. La nuova colonna "Device" indica il tipo di periferica che Linux si aspetta collegata a quell'area di memoria. Il tipo di periferica serve, al sistema operativo, per selezionare il driver corretto per la ricezione del flusso dei dati. Per identificare le periferiche, Linux usa due numeri: Major e Minor. Il numero Major ( nel nostro caso 008 ) indica il tipo di periferica ( stampante, disco fisso, CD, etc. ), mentre il numero Minor ( 00004, nel nostro esempio ) indica l'esatto modello della periferica. Le periferiche sono tutte memorizzate nella cartella:
dalla quale risulta evidente che la periferica in oggetto è la quarta partizione ( Minor ) del primo disco fisso ( Major ): sda.
|
||||
I comandi Linux: i processi ( 2 ) | The .bit guides: original contents |