# &ktimemon;

## Introduzione

&ktimemon; è un piccolo programma per monitorare l'uso del sistema del tuo computer. Può mostrare grafici a barre contenenti informazioni su CPU, memoria, e uso swap, e anche uso del disco e attività di cambiamento del contesto. Nello spirito di KDE, supporta la configurazione attraverso un'interfaccia grafica. Supporta anche l'agganciamento, cioè, può mostrare informazioni nel vassoio di sistema.

Attualmente, &ktimemon; supporta solo un numero limitato di sistemi: installazioni basate su &Linux; con il file system `/proc`, installazioni basate su &Solaris; con la libreria `kstat`, e installazioni basate su Digital &UNIX; (già DEC/OSF1) con la chiamata di sistema `table`(2). Ogni aiuto per trasferirlo ad altre piattaforme è benvenutissimo.

&ktimemon; può essere avviato dalla linea di comando o dal menu Avvio di &kde; (nel sottomenu Accessori). Se scegli di partire dalla linea di comando, &ktimemon; rispetta le solite opzioni di &X-Window; come `--geometry`. &ktimemon; è dipendente dalla sessione, cioè monitora lo stato attuale (colori ecc.), e li ripristina nella prossima sessione dell'utente.

## Fondamentali della schermata

Dopo aver avviato &ktimemon; apparirà una piccola finestra che mostrerà le informazioni raccolte sul sistema operativo. Se sposti il puntatore del mouse sopra la finestra di &ktimemon; e lo lasci fermo per poco tempo, apparirà un suggerimento (cioè una piccola finestra temporanea). Il suggerimento contiene informazioni numeriche sui parametri del sistema mostrati dai grafici a barre. I suggerimenti possono essere disattivati (riferisciti a Configurazione).

### Modalità dell'aspetto

&ktimemon; può visualizzare due insiemi diversi di informazioni di sistema. Come spiegato nel capitolo Configurazione, i pulsanti del mouse possono essere collegati a varie azioni. Come valore predefinito, il pulsante sinistro è legato all'azione di cambio di modalità, cioè facendo clic sul &LMB; da qualsiasi parte nella finestra di &ktimemon;, le informazioni mostrate sono cambiate da Modalità normale (predefinita) a Modalità estesa, e viceversa.

#### Modalità normale

Dopo aver avviato &ktimemon; per la prima volta, esso mostrerà informazioni sull'attività attuale della CPU, oltre all'uso di memoria e di swap. Per visualizzare queste informazioni sono usati tre grafici a barre; sono aggiornati regolarmente (l'intervallo di campionamento predefinito è mezzo secondo, ma può essere cambiato, vedi Configurazione). I tre grafici a barre rappresentano (da sinistra a destra):

Uso della CPU.

- &ktimemon; mostra la barra in tre colori diversi, che rappresentano il tempo della CPU in varie modalità. Dal basso in alto sono: modalità kernel, modalità utente, e modalità utente con priorità ridotta (nice) - siccome &Solaris; non pare supportare le statistiche per la modalità nice, su quei sistemi la parte superiore della barra rappresenta il tempo passato nello stato wait. Il vuoto tra la cima della barra alla cima della finestra rappresenta la percentuale di tempo libero della CPU.

Uso della memoria.

- Simile alla barra d'uso della CPU, questa barra è composta di tre sottocampi, che rappresentano (dal basso in alto): memoria assegnata a processi, memoria usata per buffering I/O, e memoria usata per il caching dei file. Per sistemi basati su Digital &UNIX;, la sezione centrale rappresenta la memoria inattiva (cioè memoria assegnata e non usata per una certa quantità di tempo), e per i sistemi basati su &Solaris;, la sezione centrale della barra non è usata, e la parte superiore rappresenta la quantità di memoria usata dal kernel. Di nuovo, il vuoto tra dalla cima della barra alla cima della finestra rappresenta la memoria libera.

Uso di memoria swap.

- Questa barra è costituita da un solo campo che rappresenta l'uso attuale di swap relativamente alla quantità totale di spazio swap del sistema.

Fare clic sul pulsante del mouse legato al cambio di modalità nella finestra di &ktimemon; commuta in modalità estesa.

#### Modalità estesa

In questa modalità, i tre grafici a barre sono usati per mostrare un insieme diverso di informazioni di sistema. Di nuovo, da destra a sinistra mostrano:

Attività di paging.

- Questa barra è costituita da due parti, la parte inferiore mostra il numero di pagine di memoria scritte sulla memoria secondaria nell'ultimo intervallo di campionamento. Similmente, la metà superiore indica il numero di pagine lette dalla memoria secondaria.

Attività di swap.

- La seconda barra mostra le informazioni analoghe per l'attività di swap.

Cambiamenti di contesto.

- Di nuovo, questo grafico a barre è costituito da un solo campo che indica il numero di cambiamenti di contesto nell'ultimo intervallo di campionamento.

Siccome non c'è un modo naturale di scalare le informazioni mostrate nella Modalità estesa, come valore predefinito &ktimemon; usa il riscalamento automatico (spiegato nella sezione domande comuni). C'è, tuttavia, la possibilità di specificare le informazioni di scala, vedi la sezione Configurazione.

Nota come i due insiemi di grafici a barre condividano gli stessi colori, cioè le impostazioni dei colori della Modalità normale sono usate per mostrare le informazioni nella Modalità estesa (vedi inoltre Configurazione per come cambiare lo schema dei colori).

## Struttura dei menu

Come valore predefinito, il pulsante destro del mouse è collegato all'azione menu a comparsa, cioè fare clic con il pulsante destro del mouse da qualsiasi parte nella finestra di &ktimemon; fa apparire un menu, che viene discusso nelle prossime sezioni.

### Preferenze...

L'elemento del menu Preferenze... è usato per far apparire il dialogo di configurazione. Le opzioni di configurazione vengono discusse nella sezione Configurazione.

### Agganciato al pannello

Selezionando l'elemento del menu Agganciato al pannello, &ktimemon; commuta tra il suo aspetto comune (cioè una finestra normale) e lo stato pannellizzato, dove la finestra di &ktimemon; sparisce, e una versione più piccola ne viene mostrata nel pannello di sistema. A parte la riduzione di dimensioni, il &ktimemon; pannellizato si comporta esattamente come il suo fratello maggiore.

### Aiuto

&help.menu.documentation;

### Barre orizzontali

Selezionando la voce del menu Barre orizzontali, &ktimemon;commuta da barre verticali a barre orizzontali e viceversa. Non molto utile, ma è stato facile da implementare ;-)

### Esci

L'elemento del menu Esci - sorpresa - è usato per uscire da &ktimemon;. Salverà lo stato attuale (per esempio lo schema dei colori, la dimensione della finestra, se è mostrata nel pannello), e lo ripristinerà al prossimo avvio.

Le informazioni di configurazione sono salvate nel file `$`HOME`/.kde/share/config/ktimemonrc`, dove `$`HOME`` si riferisce alla cartella HOME dell'utente. Se questo file viene eliminato, al prossimo avvio &ktimemon; ripartirà dal suo stato predefinito.

## Configurazione

&ktimemon; può essere configurato da una semplice finestra di dialogo (vedi anche la lista di discussione del Menu di configurazione). Sulla pagina Generale, l'intervallo di campionamento può essere specificato, come le informazioni di riscalamento (vedi anche la lista di discussione Modalità estesa). Se la casella Riscalamento automatico è segnata (il riscalamento automatico è spiegato nella sezione FAQ), i fattori di riscalamento non possono essere modificati, perché &ktimemon; li rileva automaticamente.

La pagina Colori può essere usata per adattare i colori del grafico a barre alle preferenze individuali. Un piccolo grafico a barre campione mostra subito il risultato.

Nella pagina Interazione, si possono adattare gli eventi del mouse. Fare clic con il mouse sulla finestra di &ktimemon; può venire ignorato, attivare un cambio di modalità (vedi anche Modalità), chiamare il menu contestuale (vedi anche Menu), o chiamare un processo esterno. La riga di comando specificata per i processi esterni è interpretata dalla shell standard, cioè si possono usare comandi shell, variabili d'ambiente, redirezionamento ecc.

La pagina Interazione contiene anche una casella che può essere usata per disattivare l'apparizione automatica di suggerimenti con informazioni numeriche sui grafici a barre (cfr. Fondamentali della schermata).

## Domande comuni e risposte

Quali sistemi operativi supporta &ktimemon;?

&ktimemon; supporta sistemi basati su &Linux; con il file system `/proc`, sistemi basati su &Solaris; con la libreria `kstat`, e sistemi Digital &UNIX; (già DEC/OSF1) con l'interfaccia di chiamata di sistema `table`(2). Solo la versione &Linux; è stata testata a fondo; se ti capitano problemi con l'esportazione &Solaris; o Digital &UNIX;, per piacere non esitare a contattarmi.

Inoltre, sono benvenutissimi i contributi a &ktimemon; per adattarlo ad altre piattaforme. Per piacere contattami a m.maierhofer@tees.ac.uk se vuoi esportare &ktimemon; a qualche altro tipo di &UNIX;.

Come funziona il riscalamento automatico?

Hai fatto bene a chiederlo. Visto che non c'è un fattore di scala ovvio per le operazioni di paging, swap e cambiamenti di contesto, (al contrario di, per esempio, uso della memoria, dove puoi usare la dimensione totale della memoria come denominatore), &ktimemon; usa un meccanismo di riscalamento semi-intelligente (be', ...). Il riscalamento automatico funziona come segue:

- Ciascuno dei tre grafici a barre descritti nella sezione modalità estesa ha un fattore di riscalamento associato. I valori iniziali di questi fattori sono impostati a qualche valore predefinito.

- Ogni volta che viene mostrato un nuovo campione, il suo valore viene inizialmente riscalato con il fattore corrispondente. Se il valore può essere mostrato nella scala scelta dal fattore, non avviene nessun cambiamento (cioè piccoli cambiamenti di attività si riflettono in un cambiamento d'altezza della barra).

- Se il valore scalato fosse o troppo grande o troppo piccolo per essere mostrato con il fattore di riscalamento attuale, la scala viene adattata in modo che il nuovo valore mostrato è all'incirca a metà del grafico a barre. Quindi, i cambiamenti successivi dovrebbero avere una buona possibilità di venir mostrati relativamente al valore attuale, senza dover cambiare di nuovo la scala.

Perché appare un messaggio con Diagnosi ottenuta dall'output del comando figlio?

Se colleghi un pulsante del mouse a un comando esterno come descritto nel capitolo Configurazione, &ktimemon; non controlla che sia un nome di comando valido. Invece, una shell di comando viene avviata per eseguire le istruzioni, quindi si possono usare comandi shell, variabili d'ambiente e altro. Per far avere informazioni all'utente, &ktimemon; controlla l'output `stderr` della shell di comando, e ne fa rapporto in questo messaggio.

Sebbene questo schema possa essere utile nel caso che un comando non venga trovato, può essere piuttosto fastidioso se il comando eseguito stampa innocue informazioni di diagnostica su `stderr`. Una soluzione semplice ed elegante a questo problema è aggiungere `2>/dev/null` alla fine delle specificazioni del comando. Ciò ridirige i messaggi di diagnostica al nirvana dei messaggi, e previene l'apparizione del messaggio.

## Ringraziamenti e riconoscimenti

&ktimemon; è basato su una versione Xt di mio fratello.

Grazie a Tobe Toben, ttoben@artis.uni-oldenburg.de, Cristian Tibirna ctibirna@gch.ulaval.ca, Dirk A. Mueller dmuell@rhrk.uni-kl.de, Mark Krischer krischem@amp.com, e Lubos Lunak l.lunak@sh.cvut.cz per comunicazioni di bug, correzioni, commenti, suggerimenti.

Federico Zenithzenith@chemeng.ntnu.no

&underGPL;