- Messaggi
- 27,274
- Reazioni
- 13,638
- Punteggio
- 254
Introduzione
Le unità di misura informatiche hanno sempre causato confusione negli utenti perché l'industria dei computer ha utilizzato termini come kilobyte, megabyte, gigabyte in modo improprio, per indicare mutlipli di bit e byte, le unità di misura fondamentali della quantità di informazione.Questa guida è un riassunto di una serie di articoli che scrissi diversi anni fa, che potete trovare in versione estesa al seguente link: https://guidedibat.blogspot.com/2024/02/che-sia-uno-spazio-di-memorizzazione-o.html
Ho omesso i dettagli che all'utente comune non interessano (potete trovarli negli articoli originali), ciò che leggerete qui è quello che potrebbe servirvi nella pratica.
I mattoncini dell'informazione: bit e byte
L'Informatica è la scienza che studia la codifica e l'elaborazione dell'informazione ed i metodi per traformarla, trasmetterla, registrarla ecc. ecc.I computer usano la codifica chiamata binaria, che usa solo le due cifre 0 ed 1.
Un'informazione che può assumere solo 2 possibili valori si rappresenta con una entità chiamata bit, contrazione di binary digit (cifra binaria):
- un bit è la codifica di un'informazione che ha solo 2 alternative possibili, indicate convenzionalmente con 0 e 1. Il simbolo del bit è la lettera "b" (minuscola) ma, in caso di ambiguità di interpretazione del simbolo "b", si dovrebbe scrivere bit (per esteso).
Con una sola cifra ci si fa poco: per codificare informazioni complesse servono sequenze binarie più lunghe.
La sequenza binaria che rappresenta l'unità di informazione digitale è costituita da 8 bit e si chiama byte; per costruzione, il bit è l'unico "sottomultiplo" del byte.
Dati ed informazioni si costruiscono con un numero intero finito di byte: una sequenza di dati può essere costituita da 7 byte o da 8 byte, non da 7,5 byte e neanche da "7 byte e 4 bit". Nel caso in cui qualcosa non si possa definire come numero intero di byte, si usa il bit (esempio: per un indirizzo di memoria a 36 bit si parla di "indirizzamento a 36 bit", non di "indirizzamento a 4,5 byte").
Il byte ad 8 bit è stato introdotto dall'IBM nel 1963 con la codifica EBCDIC ed è uno standard de facto, universalmente accettato.
Gli informatici francesi usano anche il termine octet (ottetto) con simbolo "o" (minuscola).
Perché proprio 8 bit per il byte? Perché una sequenza di 8 bit può codificare 2^8 (2 elevato ad 8) = 256 combinazioni distinte di 0 e 1, così un byte può codificare qualsiasi carattere alfabetico di ogni lingua occidentale (maiuscole, minuscole, caratteri accentati e diacritici), tutta la punteggiatura, i simboli matematici e molti simboli speciali. Tutto ciò rendeva la dimensione ad 8 bit ideale per identificare una unità di informazione digitale.
Sequenze binarie
Cosa rappresenta il byte 01000001 della precedente figura?- è il carattere "A" (maiuscola) se lo interpretiamo come codifica dei caratteri ASCII estesa ad 8 bit;
- è il numero 65 se lo interpretiamo come numero intero (binario).
- una sequenza di bit non significa nulla se non sappiamo decodificarla;
- con un singolo byte non si può fare molto!
È necessario misurare in qualche modo le sequenze di bit/byte che rappresentano dati ed informazioni. A seconda di cosa si vuole misurare bisogna scegliere:
- un'unità di misura base, che può essere il byte oppure il bit; il byte si usa generalmente per misurare lo spazio di archiviazione (dimensione di file, partizioni, dischi ecc.), mentre il bit per misurare la velocità di trasmissione dati oppure la densità di informazione;
- una scala per rappresentare i multipli dell'unità di misura base: si può scegliere di usare la scala binaria (basata sul fattore moltiplicativo 1024) o la scala decimale (basata sul fattore moltiplicativo 1000).
Unità di misura informatiche, prefissi e scale
Le unità di misura informatiche sono state formalizzate nel 1998 dallo standard IEC/ISO 80000. Non fanno parte del Sistema Internazionale di Misura perché il bit, e quindi il byte, non sono grandezze fisiche: i bit si rappresentano utilizzando due distinti stati di altre grandezze (tensione elettrica, impulsi luminosi, polarizzazione magnetica ecc.). Per esempio, una tensione di 0 volt si può interpretare come il bit 0 e una di 1,5 volt come il bit 1, ma non esiste in natura la grandezza "bit".Prefissi binari e prefissi decimali
Un prefisso è un simbolo che si antepone all'unità di misura base per indicare un multiplo o un sottomultiplo dell'unità stessa.Per esempio il simbolo k è il prefisso del kilo, ed indica il fattore moltiplicativo 1000 per cui, se consideriamo l'unità di misura m (metro), abbiamo che 1 km = 1000 m (un chilometro equivale a 1000 metri).
Per indicare i multipli di bit e byte possiamo usare:
- il sistema decimale, dove i multipli dell'unità base crescono ad ogni passo di un fattore 1000 (ossia 10^3) oppure…
- …il sistema binario, dove i multipli crescono ad ogni passo di un fattore 1024 (ossia 2^10).
Prefissi decimali
I prefissi decimali formano una scala in cui ciascun prefisso è 1000 volte più piccolo del successivo, per cui la scala cresce come il numero 1000^n (con n numero intero maggiore o uguale a 1).Fattori moltiplicativi, nomi e simboli dei prefissi decimali, sono stabiliti dal Sistema Internazionale di Misura; per esempio il prefisso k (minuscola) si chiama kilo e rappresenta il fattore moltiplicativo 1000, il prefisso M (maiuscola) si chiama mega e rappresenta il fattore moltiplicativo 1000^2, e così via.
Di seguito i prefissi decimali del Sistema Internazionale di Misura (sono indicati solo i fattori 1000^n comparabili con il loro "omologo binario" 1024^n).
Prefissi binari (standard IEC/ISO 80000)
Nel misurare grandezze di natura "binaria", l'assenza di uno standard, la consuetudine ed il fatto che il numero 1024 sia prossimo a 1000, hanno portato ad un abuso nell'utilizzo dei simboli decimali anche da parte degli informatici professionisti. Poiché dal punto di vista scientifico non è accettabile utilizzare simboli decimali per indicare potenze di 1024, a partire dal 1998 IEC ed ISO hanno lavorato per eliminare le ambiguità: il risultato è lo standard noto come IEC/ISO 80000 (che recepisce il precedente standard IEC 60027–2 per i prefissi binari).I prefissi binari formano una scala in cui ciascun prefisso è 1024 volte più piccolo del successivo, per cui la scala cresce come il numero 1024^n (con n numero intero maggiore o uguale a 1). Il numero 1024^n è una sorta di "omologo binario" di 1000^n.
Fattori moltiplicativi, nomi e simboli dei prefissi binari sono definiti dallo standard IEC/ISO 80000: sono simili a quelli decimali ma con differenze che ne evidenziano la natura binaria. Per esempio, l'omologo binario del kilo è il kibi (abbreviazione di kilobinary) ha prefisso Ki (con la "K" maiuscola) e rappresenta il fattore moltiplicativo 1024; analogamente, l'omologo binario del mega è il mebi (abbreviazione di megabinary) ha prefisso Mi e rappresenta il fattore moltiplicativo 1024^2. I prefissi successivi seguono la stessa logica.
Di seguito l'elenco dei prefissi binari definiti dallo standard IEC/ISO 80000.
Confronto tra prefissi binari e decimali
È interessante valutare la differenza percentuale dei valori numerici corrispondenti ai prefissi. Per esempio, il numero 1024 è del 2,4% maggiore rispetto al numero 1000; viceversa, il numero 1000 è del 2,34% (circa) inferiore rispetto al numero 1024. La tabella seguente evidenzia la differenza percentuale (arrotondata a 2 cifre decimali) tra prefissi binari e prefissi decimali (per i calcoli riferitevi all'articolo originale); con riferimento alla prima riga, la chiave di lettura è:- il prefisso binario Ki (valore BIN=1024) è maggiore del 2,4% (terza colonna della tabella) rispetto al prefisso decimale k (valore DEC=1000);
- viceversa (leggendo la tabella da destra verso sinistra), il prefisso decimale k è minore del 2,34% (quarta colonna della tabella) rispetto al prefisso binario Ki.
Unità di misura basate sul byte
Il byte è l'unità base per misurare la quantità di spazio, per esempio la dimensione di dischi e partizioni, lo spazio occupato dai file o la quantità di memoria RAM allocata da un'applicazione. Quasi tutti i sitemi operativi misurano lo spazio usando la scala delle unità binarie, mentre nell'industria si preferisce il sistema decimale (come fanno i produttori di hard-disk magnetici).Unità di misura binarie
Nella scala binaria ogni unità di misura è 1024 volte più piccola di quella successiva.Il primo multiplo binario del byte è il KiB (kibibyte, o informalmente "kilobyte binario") che equivale a 1024 byte; 1024 KiB costituiscono un MiB (mebibyte, o "megabyte binario"), 1024 MiB costituiscono un GiB (gibibyte, o "gigabyte binario"), e così via.
Unità di misura decimali
Nella scala decimale ogni unità di misura è 1000 volte più piccola di quella successiva.Il primo multiplo decimale del byte è il kB (kilobyte) che equivale a 1000 byte; 1000 kB costituiscono un MB (megabyte), 1000 MB costituiscono un GB (gigabyte), e così via.
Equivoci sui simboli delle unità di misura
Il fatto che il valore 1024 sia prossimo a 1000, ha portato ad un abuso dei prefissi decimali per indicare potenze di 1024. Un esempio è l'uso sistematicamente errato che si fa del simbolo "k":- k (minuscola): è il prefisso decimale kilo, ossia il moltiplicatore 1000;
- Ki ("K" maiuscola seguita da "i" minuscola): è il prefisso binario kibi, ossia il moltiplicatore 1024;
- K (maiuscola): non è un prefisso moltiplicativo; in Fisica è il simbolo del kelvin, l'unità di misura della temperatura termodinamica. Ad esempio, nei sistemi Windows, la dimensione di un file da 4096 byte viene erroneamente indicata con 4,00 KB, invece lo standard prevederebbe 4,00 KiB.
Capacità di hard disk e pendrive USB
Acquistiamo un hard disk da 1000 "Giga" (ossia "un Tera"...), lo installiamo nel PC e ne controlliamo la capacità nel BIOS/UEFI o in Windows. Risultato: 931 "Giga" e spiccioli; dove sono i 69 "Giga" che mancano all'appello?Acquistiamo una pendrive USB da 32 GB, la inseriamo e Windows vede solo 29,8 "Giga". Forse Windows non rileva correttamente le capacità? Ci ingannano i venditori? La pendrive è difettosa oppure ha parte dello spazio nascosto?
Nulla di tutto ciò, in realtà non manca nulla, è una questione di unità di misura: nell'industria, la capacità dei dispositivi di archiviazione si indica con le unità di misura decimali, invece la maggior parte dei sistemi operativi usa le unità binarie (ma le indica erroneamente con i simboli decimali). La differenza tra lo spazio riportato sull'etichetta del disco e quello rilevato dal sistema operativo (o dal BIOS/UEFI) è solo apparente ed è dovuta al fatto che i produttori considerano 1 GB=1000^3 byte, mentre il sistema considera 1 GB (binario) =1024^3 byte, utilizzando erroneamente il simbolo decimale (GB) in luogo di quello binario (GiB).
I produttori di dischi sfruttano (con una buona dose di malizia) l'equivoco sulle unità di misura per far apparire i dischi più capienti agli occhi dell'acquirente medio (che in genere non è pratico delle unità di misura della capacità di archiviazione).
Unità di misura basate sul bit
Il bit è l'unità di riferimento per la misura della velocità di trasmissione dati in un canale di comunicazione, oppure per la misura della densità di informazione su una superficie magnetica. Quando l'unità di base è il bit generalmente si utilizza il sistema decimale, ma sono state definite anche le unità di misura binarie.Unità decimali basate sul bit
Nella scala decimale ogni unità di misura è 1000 volte più piccola di quella successiva. Il primo multiplo decimale del bit è il kbit (kilobit) che equivale a 1000 bit; 1000 kbit costituiscono un Mbit (megabit), 1000 Mbit costituiscono un Gbit (gigabit), e così via.Unità binarie basate sul bit
Per completezza si riportano le unità binarie che utilizzano il bit come base; si tratta di unità poco utilizzate (sebbene siano state definite).Nella scala binaria ogni unità di misura è 1024 volte più piccola di quella successiva. Il primo multiplo binario del bit è il Kibit (kibibit) che equivale a 1024 bit; 1024 Kibit costituiscono un Mibit (mebibit), 1024 Mibit costituiscono un Gibit (gibibit), e così via.
Velocità di trasmissione dati
L'unità di misura della velocità di trasferimento dati è il bps (bits per second) ossia il numero di bit trasmessi al secondo su un canale di comunicazione. A titolo di esempio, se consideriamo l'unità di misura Mbps (milioni di bit al secondo), abbiamo che:1 Mbps = 125 kB/s ≈ 122,07 KiB/s (il simbolo "≈" significa "circa uguale a").
Velocità nominale e velocità reale
Un canale di comunicazione è un'entità fisica (come un cavo) oppure logica (per esempio una connessione telefonica trasmessa su un mezzo condiviso con altre connessioni telefoniche). Ogni canale ha una specifica capacità di trasmettere informazioni, misurata dalla banda passante (espressa in Hertz) e dal data rate (tasso di dati), ossia il numero di bit trasmessi al secondo (che a sua volta dipende dalla larhezza di banda). Parlando di velocità di trasmissione si distingue tra:- velocità nominale: è la velocità massima teorica a cui può avvenire la trasmissione e dipende essenzialmente dal canale di comunicazione utilizzato;
- velocità reale: è il numero totale di bit effettivamente trasmessi ed è sempre minore o al più uguale alla velocità nominale. La velocità reale dipende dalle condizioni fisiche del canale durante la comunicazione, per esempio è ridotta in presenza di interferenze, a causa di cavi usurati o danneggiati, dall'attenuazione del segnale al crescere della distanza. Infine, dipende dalla qualità ed efficienza dell'hardware deputato alla trasmissione/ricezione e dal tipo di codifica dei dati usato per trasmettere l'informazione.
Codifiche, protocolli e payload
L'informazione digitale viene codificata sul canale di trasmissione; codificare l'informazione significa rappresentarla con un insieme di bit che, in genere, è di dimensioni maggiori rispetto al dato "puro" da trasmettere. Per esempio, nella codifica 8b/10b per trasmettere 1 byte (8 bit) si trasmettono in realtà 10 bit. I bit in più introdotti da una codifica servono a compiti particolari, per esempio per il controllo e la correzione degli errori di trasmissione.Un protocollo di comunicazione è un insieme di regole che governano il funzionamento di un sistema di comunicazione; in particolare, i protocolli di rete (come TCP/IP v. 4) offrono meccanismi di correzione degli errori ed algoritmi (procedure) di instradamento delle informazioni (mettono sulla "strada giusta" i dati trasmessi), inserendo una serie di informazioni necessarie al buon funzionamento della trasmissione e ricezione dei dati (per esempio inseriscono l'indirizzo del mittente e del destinatario).
Il payload è il numero di bit di dati utilizzabili dalle applicazioni, una sorta di "peso netto" dell'informazione una volta che sono stati eliminati i bit in più necessari alle codifiche ed ai protocolli di comunicazione.
In definitiva, codifiche e protocolli fanno transitare sul canale di comunicazione molti bit aggiuntivi (che si sommano ai dati veri e propri da trasmettere) ed inoltre introducono un notevole overhead (sovraccarico di lavoro) dovuto ai meccanismi di correzione degli errori e/o ad altri algoritmi indispensabili al funzionamento del sistema; tutto ciò, inevitabilmente, riduce la velocità reale di cui le applicazioni possono disporre.
ESEMPIO: codifica 8b/10b
La codifica 8b/10b è un metodo di trasmissione delle informazioni digitali che mappa 8 bit di dati in entità da 10 bit (chiamate simboli o caratteri). Questa codifica è utilizzata per la trasmissione seriale di dati ad alta velocità, per esempio nelle connessioni comunemente presenti sui personal computer, come SATA e USB 3.0. Poiché per trasmettere un payload di 8 bit se ne trasmettono 10, il payload reale massimo è al più pari all''80% della velocità nominale di connessione.
Un convertitore gratuito di unità di misura informatiche
A volte potreste aver bisogno di eseguire conversioni tra unità di misura. Eseguire a mano le conversioni non è difficile (basta fare moltiplicazioni e divisioni), ma è più pratico utilizzare un foglio di calcolo da far girare in Microsoft Excel oppure in Apache OpenOffice o LibreOffice.In questa pagina https://guidedibat.blogspot.com/2014/08/un-convertitore-gratuito-di-unita-di.html troverete il link di download (con relative istruzioni d'uso) a un foglio di calcolo che realizzazi anni fa. Il foglio esegue la conversione istantanea dell'input in tutte le unità di misura informatiche.
Spero che questa breve guida vi sia utile (se ci sono errori mi riservo di correggerli ovviamente),
che la forza sia con voi!
BAT