Iprocessi - Manuali.net
Transcript
Iprocessi - Manuali.net
Lezione n. 25 Ubuntu GNU/Linux Base I processi Introduzione Nelle sezioni riguardante il software, abbiamo visto che esistono alcune applicazioni, in grado di visualizzare i processi attivi nel sistema e di gestirli in qualche modo, ma il modo di gestione migliore dei processi è indubbiamente quello di utilizzare la shell insieme a particolari programmi, creati appositamente per questo scopo. Processo, può essere inteso come un programma o parte di esso. I processi sotto GNU/Linux Ogni volta che lanciamo un comando, questo, può generare uno o più processi; ogni processo ha un proprio PID (process ID), cioè un valore numerico che lo identifica univocamente, inoltre ognuno di questi processi, tranne init (il primo processo avviato nel sistema), è generato da un'altro processo, di cui si definisce il PPID (Parent PID). Entrano, quindi, a far parte di questi processi, due nuovi concetti, il concetto di processo padre (parent) ed il concetto di processo figlio (child); ognuno di essi ha delle caratteristiche particolari che sono: il codice eseguibile, la posizione di esecuzione, i dati che gestisce, i file aperti, l'ambiente di esecuzione e le credenziali. Inoltre, bisogna dire che ogni processo può assumere diversi stati: R - running, il processo è in esecuzione; S - sleeping, il processo è in attesa; Z - zombie, il processo è morto ed aspetta che il padre chieda un codice d'uscita. Ultima caratteristica di ogni processo è la priorità, un valore numerico che va da -20 Vincenzo Mastrobattista - Manuali.Net © 2008 Tutti i diritti riservati 1 Ubuntu GNU/Linux Base Lezione n. 25 (priorità massima) a 19 (priorità minima). Un processo può generare una copia di se stesso (fork), cha ha PID diverso e PPID uguale al proprio PID. Ora che sappiamo bene o male, la maggior parte delle caratteristiche inerenti un processo, possiamo passare alla loro gestione. I programmi comunemente utilizzati per questo scopo sono i seguenti: ps, questo programma, riporta lo stato dei processi, grazie al quale possiamo determinare, quali sono i processi in running e quali no, controllare la percentuale di memoria e CPU utilizzata da ogni processo, visualizzare il PID e molto altro (ovviamente nella pagina di man sono contenute tutte le opzioni ed una descrizione più dettagliata). Vediamo alcuni esempi di utilizzo: ps -aux (l’opzione “a” include nell’output i processi di tutti gli utenti, “u”, mostra la colonna USER con il nome utente, proprietario di quel determinato processo e “x”, mostra quei determinati processi che non si appoggiano ad un terminale specifico, come quei programmi che apriamo da interfaccia grafica) (ovviamente l’output del comando, presente nella figura qui sopra, non è completo, per problemi di spazio) ps -raux (l’opzione “r”, aggiunta a quelle precedenti, fa sì che l’output diminuisca drasticamente, questo perché tra tutti i processi, stampa solamente quelli nello stato di running) Vincenzo Mastrobattista - Manuali.Net © 2008 Tutti i diritti riservati 2 Ubuntu GNU/Linux Base Lezione n. 25 pstree, mostra l’albero dei processi, in modo tale, da poterci rendere conto di quanti processi figli genera un determinato processo ad esempio. top, fornisce in tempo reale istantanee dell’attività del processore; mostrando una lista dei processi che stanno utilizzando di più la CPU è inoltre in grado di ordinarli in base all’uso di CPU, all’uso di memoria e al tempo di esecuzione. L’ordine con cui i processi vengono elencati ed i parametri di visualizzazione possono essere modificati, quando top è già in esecuzione: N - Ordina secondo PID A - Ordina secondo età (per prima i più recenti) P - Ordina secondo utilizzo CPU Vincenzo Mastrobattista - Manuali.Net © 2008 Tutti i diritti riservati 3 Ubuntu GNU/Linux Base Lezione n. 25 M - Ordina secondo memoria utilizzata vmstat, riporta informazioni sui processi, sulla memoria, sulla paginazione, sui block IO, i trap e l’attività della CPU. La prima volta mostra le medie dall’ultimo reboot. Le volte successive da informazioni su un periodo di campionamento di lunghezza delay ( delay è il ritardo in secondi tra gli aggiornamenti). es: vmstat 3 5 (mandato in esecuzione in questo modo, genererà i rapporti ogni 3 secondi per 5 volte e poi si chiuderà) (Output di vmstat) Vincenzo Mastrobattista - Manuali.Net © 2008 Tutti i diritti riservati 4 Ubuntu GNU/Linux Base Lezione n. 25 kill [- signal] [-opzioni] pid, questo comando è in grado di inviare un segnale ad un determinato processo, specificato nella lista dei parametri tramite pid. Se non è specificato nessun segnale, viene inviato il TERM. Il segnale TERM, non è sicuro, perché è in grado di uccidere solamente i processi che sono in grado di catturare questo tipo di segnale; per essere certi che un processo termini, bisognerebbe utilizzare il segnale KILL cioè il numero 9 nel seguente modo: kill -9 pid inoltre per visualizzare tutte le tipologie di segnali da poter inviare ad un determinato processo, si possiamo digitare il seguente comando: kill -l Ctrl+z o Ctrl+c, rispettivamente se premiamo queste combinazioni di tasti da shell, la prima bloccherà temporaneamente il processo che stiamo eseguendo (per sbloccarlo bisogna utilizzare fg o bg), la seconda cercherà di terminare il processo che stiamo eseguendo. nice <priorità> comando, avvia un programma con priorità modificata, se non passiamo alcun parametro, viene solamente visualizzata la priorità di nice, altrimenti passando solamente il comando, la sua priorità verrà incrementata di dieci, o ancora se passiamo una priorità compresa tra -20 e 19, il comando assumerà quella determinata priorità; con una piccola accortezza, le priorità negative, essendo quelle più alte, può impostarle solamente il super utente. Vincenzo Mastrobattista - Manuali.Net © 2008 Tutti i diritti riservati 5
Documenti analoghi
Installazione 1
partizione per windows, occorrerà eseguire alcuni passaggi, quali: backup dei
dati, deframmentazione, ridimensionamento partizione, partizionamento e
installazione.
Per la defram...