Indietro

ⓘ Overhead




                                     

ⓘ Overhead

Overhead, in informatica, è utilizzato per definire le risorse accessorie, richieste in sovrappiù rispetto a quelle strettamente necessarie per ottenere un determinato scopo in seguito allintroduzione di un metodo o di un processo più evoluto o più generale.

                                     

1.1. Esempi dutilizzo Sistemi Operativi

Il tempo di overhead è un parametro fondamentale per lo studio delle prestazioni di un sistema operativo. Esso rappresenta il tempo medio di CPU necessario per eseguire i moduli del kernel. È spesso fornito in percentuale rispetto al tempo totale di utilizzo della CPU. Si può calcolare con:

Ovviamente, più il tempo è basso, maggiore sarà la quantità di tempo CPU che si può utilizzare per i processi utente.

Nei sistemi a livelli linserimento di più strati implica un sostanziale aumento dellOverhead, diminuendo lefficienza del sistema stesso.

                                     

1.2. Esempi dutilizzo Programmazione

Nei linguaggi di programmazione ad alto livello, un esempio di overhead riguarda il tempo di esecuzione dei sottoprogrammi: al tempo da questi impiegato per svolgere il loro compito ad esempio il calcolo di una radice quadrata si aggiunge infatti il tempo necessario a gestire il meccanismo stesso di chiamata a sottoprogramma attraverso record di attivazione. Questo tempo aggiuntivo può essere ridotto con un uso accorto di specifiche tecniche di ottimizzazione, ma non può essere eliminato del tutto.

In generale, più i linguaggi di programmazione sono ad alto livello, maggiore tende a essere loverhead associato ai loro meccanismi di funzionamento. Loverhead necessario a chiamare un metodo in un linguaggio di programmazione object oriented, per esempio, è superiore a quello necessario a chiamare un sottoprogramma di un linguaggio procedurale, a causa della necessità di risolvere dinamicamente situazioni di overriding.

Sempre in generale, e per motivi analoghi, loverhead aumenta se si sovrappongono strati di astrazione. Un esempio in questo senso potrebbe essere quello di una classe che incapsula unAPI in linguaggio C. In questo caso, linvocazione di un metodo della classe comporterà sia loverhead proprio della chiamata di metodo sia quello, immediatamente successivo, legato alla chiamata della funzione C sottostante.

Per questi motivi, nello sviluppo di sistemi con forti requisiti a livello di prestazioni si opta talvolta per strumenti di programmazione "a basso livello" come il linguaggio C o addirittura lassembly che consentono di contenere i costi di overhead al prezzo di una maggior difficoltà nella scrittura del programma.

                                     

1.3. Esempi dutilizzo Reti di calcolatori

Nelle reti di calcolatori, il termine "overhead" si riferisce a quella parte di banda di trasmissione che viene utilizzata per spedire, anziché informazione utile, dati aggiuntivi necessari per il particolare protocollo di rete utilizzato. Anche in questo caso, la presenza di molteplici livelli di astrazione caratteristica tipica dellarchitettura dei protocolli di rete si traduce in un sommarsi delloverhead imposto da ciascun livello imbustamento. In termini pratici, questo overhead si concretizza nella maggior parte dei casi nellintroduzione di un cosiddetto header dei messaggi che contiene, per esempio, lindirizzo di destinazione e altre informazioni.

                                     

1.4. Esempi dutilizzo Reti di telecomunicazione

Anche nelle reti di telecomunicazioni, il termine "overhead" si riferisce a quella parte di banda di trasmissione che viene utilizzata per spedire, anziché linformazione utile, dati aggiuntivi necessari per i protocolli di trasmissione stessa per esempio SDH o PDH e per il monitoraggio, la gestione e il controllo della rete stessa, sia da parte di meccanismi automatici per esempio, protocolli di protezione di rete che da parte di sistemi di gestione esterni, per esempio per segnalare condizioni di guasto o per consentire la configurazione della rete tramite sistemi remoti centralizzati. Il contenuto e il significato delle informazioni di overhead dipende dal tipo di protocollo di trasmissione utilizzato.

                                     

1.5. Esempi dutilizzo Processi di sviluppo

Nellambito di un progetto di sviluppo di un prodotto, il "lavoro utile" è quello direttamente finalizzato alla realizzazione del prodotto. Eventuale lavoro aggiuntivo necessario per amministrare il progetto per esempio nel contesto di un determinato modello di processo può essere quindi identificato come "overhead".