Guida per principianti a GNU/Linux: Come è fatto un computer

Avatar utente
Etabeta
Messaggi: 945

Guida per principianti a GNU/Linux: Come è fatto un computer

Messaggio #1 »

domenica, 1. gennaio 2012, 12:29

Guida per principianti a GNU/Linux: Come è fatto un computer

Ho un processore Pentium 4
La RAM del mio computer è di 4 Giga
Ma Linux gestisce i dual-core?


Spesso si leggono o sentono frasi del genere ma, non sempre, si comprende a fondo cosa significano. Cosa fa, esattamente, il processore e a cosa serve? Perché avere più memoria migliora le prestazioni del computer (non sempre…). Perché un dual-core è più veloce di un single-core? Cosa significa che devo attivare il DMA per fare andare più veloce il masterizzatore?
Non rispenderò subito a tutte queste domande (lo farò più avanti) ma spiegherò almeno le basi della cosiddetta “architettura degli elaboratori”, o detto più prosaicamente, “come è fatto un computer”.

Immagine

Questo disegno illustra schematicamente come è fatto un qualsiasi elaboratore elettronico. Un Commodore 64 o un moderno Pc seguono, più o meno, questo schema, anche se l’evoluzione tecnologica ha portato nel tempo ad alcuni miglioramenti e ottimizzazioni che però in questo momento non ci interessano.
Invece di illustrare pezzo per pezzo lo schema, come di solito si fa nei libri, ho scelto un approccio più pratico a partire da questa domanda:

Cosa succede quando faccio click sull’icona di OpenOffice e il programma parte?

“Fare click” vuol dire usare il mouse. In questo schema il mouse è una periferica di Input (ingresso). Non si sono mai visti mouse che visualizzano qualcosa, ma sono sicuro che la Logitech li farà (se non li ha già fatti). Se invece del mouse usassi un touchscreen allora sarei di fronte ad una periferica di Input/Output (ingresso e uscita) in quanto capace sia di ricevere dati (la pressione del mio dito) che di darmeli (le immagini a schermo).

Il comando che ho dato attraverso il mouse arriva al processore. Nello schema è indicato con il nome CPU che sta per Central Processing Unit ovvero “unità centrale di elaborazione”. Quando sentiamo dire 386, 486, Pentium o Athlon stiamo parlando di processori.

Il processore, quindi, sarà istruito a “caricare” OpenOffice (vedremo nei prossimi post che è il sistema operativo a spiegarglielo). Andrà quindi a cercare il programma nella memoria di massa ovvero, nel caso più comune, nell’hard disk. Ma il processore non può eseguire il programma direttamente dall’hard disk. L’hard disk è troppo lento. Allora il processore caricherà il programma nella memoria principale cioè in quella che, comunemente, viene indicata come RAM ovvero Random Access Memory: “memoria ad accesso casuale”.
Dopo aver caricato il nostro OpenOffice nella RAM, il processore inizierà ad eseguire il programma. Poiché parliamo di un programma interattivo (cioè che interagisce con l’utente) esso si servirà della tastiera (dispositivo di input), del mouse (dispositivo di input), dello schermo (dispositivo di output) per “parlare” con noi utenti.
Scriviamo la nostra lettera con OpenOffice. Dove sta ciò che scriviamo? Ancora una volta il processore utilizzerà la RAM per memorizzare ciò che stiamo digitando. Bene, adesso spegniamo il computer e andiamo a farci una passeggiata…

Ehi, ma devo salvare la lettera!

Già, devi salvarla. Perché se spegni il computer e te ne vai a fare un giro perderai ore di lavoro e tutta l’ispirazione che ti era venuta in quel momento. Ma perché?
La RAM è composta di circuiti elettronici che, per mantenere i propri dati, devono essere alimentati dalla corrente elettrica. Ma dover ricominciare da capo ogni volta la nostra lettera, non poterla “salvare” per poi rivederla prima di stamparla (a proposito: la stampante è un dispositivo di output) sarebbe molto stressante. I computer, così, sarebbero poco utili. Ma cosa potremmo usare per “salvare” la nostra lettera? Be’, perché non usare di nuovo la memoria di massa, cioé l’hard disk? Clickiamo sull’apposita icona di salvataggio di OpenOffice, scegliamo un nome per la nostra lettera. Il processore prenderà i dati dalla RAM e lì trasferirà sull’hard disk, così che noi possiamo stare tranquilli.
Ecco come funziona un computer, tralasciando ovviamente i dettagli più fini.
Una piccola nota: la memoria principale, in realtà, è composta non solo dalla RAM, ma anche dalla ROM (Read Only Memory: memoria a sola lettura). Nella ROM trova posto un software il famoso BIOS (Basic Input/Output System) che contiene alcune funzioni basilari. Ad esempio è necessario modificare una opzione del BIOS per fare in modo che il computer si avvii dal lettore CD-ROM invece che dall’hard disk, così che se nel CD-ROM abbiamo una bella distribuzione GNU/Linux possiamo installarla.

Tutti i computer con qualsiasi sistema operativo funzionano così?

Più o meno sì. Ci sono alcuni dettagli che possono cambiare: ad esempio possono esserci più CPU, la presenza del DMA (Direct Access Memory), l’uso della memoria virtuale, tecnologie che migliorano le prestazioni. Ma di questo parlerò più avanti, poiché tali tecnologie sono sorte per sfruttare meglio il multitasking dei sistemi operativi.

Quelle frecce azzurre nel disegno cosa sono?

E’ il canale attraverso il quale la CPU comunica con il resto del computer (comprese le periferiche esterne). Ha un nome specifico: bus. USB, SCSI, PCI sono esempi di bus.

Cosa vuol dire che un processore è a 64 bit?

Vuol dire due cose: la prima è che le sue memorie interne (chiamate registri) sono a 64 bit, possono cioè contenere numeri da 0 a 2^64 -1 =18.446.744.073.709.551.616 (un bel numero no?) e che il suo bus è a 64 bit, cioè trasferisce in una “sola passata” (più correttamente, in un solo ciclo di clock) il doppio dei dati di un processore a 32 bit. Non solo: un processore a 32 bit può individuare 2^32 byte = 4 Giga Byte di memoria. Vivecersa uno a 64 bit può arrivare alla spaventosa cifra di 17.179.869.184 di Giga Byte.

Ma cosa sono bit, byte, giga byte?

E’ un argomento noioso che richiede una lunga spiegazione di matematica. In sintesi, il bit è una cifra binaria, invece di andare da 0 a 9 come le cifre “normali”, può essere solo 0 oppure 1. Un byte è un insieme di 8 bit, puoi rappresentare così numeri da 0 a 255 (255=2^8 -1). Sui multipli del byte c’è una leggera confusione. Tradizionalmente si dice che un kilobyte è 1024 byte, un megabyte è 1024 kilobyte e un gigabyte è 1024 megabyte. Ma questo faceva confusione con i prefissi kilo-, mega- e giga- delle misure fisiche (kilometro, kilogrammo, ecc.) che vanno di 1000 in 1000. Così adesso si distringue tra Gibibyte e Gigabyte, ma sto andando già troppo nel particolare e mi sa che così ti confondo.

E cosa sarebbe invece questo ciclo di clock?

Penso che hai sentito dire qualcosa come: “pentium 4 a 3 GHz” (gigahertz). Come il nostro cuore pulsa, anche i processori hanno dei battiti. Ad ogni battito corrisponde una operazione fondamentale del processore. Più battiti ci sono in un secondo, più operazioni fondamentali riesce a compiere il processore. I battiti vengono scanditi da un orologio (clock) che può essere costituito da un cristallo di quarzo, proprio come negli orologi che teniamo al polso. Tieni conto però che questo non significa che un processore a 3 GHz sia per forza più veloce di uno a 2 GHz. Difatti processori diversi possono eseguire le loro operazioni con meno cicli di clock. Ad esempio per fare la somma di due numeri, uno più metterci 4 cicli di clock mentre un altro solo 2. In tal caso anche se la frequenza del clock è minore, il processore sarà più veloce.

Cosa vuol dire che la RAM è ad “accesso casuale”?

Ehm.. elementare Watson! La parola “casuale” non significa che il processore vi accede “a caso” ma che può leggerla a partire da qualsiasi “celletta” al suo interno. Una volta i computer usavano i nastri magnetici come memorie di massa e per leggere una “celletta” del nastro magnetico serve scorrere tutte le “cellette” precedenti. Da qui la contrapposizione tra il nastro (ad accesso sequenziale) e la RAM (ad accesso casuale). Gli hard disk di oggi sono anch’essi ad accesso casuale (più o meno) ma in ricordo dei vecchi tempi il nome RAM è stato mantenuto.

Crescia
Etabeta