Appunti del corso di Informatica - Classe III A. Anno scolastico 2011-2012 Prof. Francesco Biccari
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Appunti del corso di Informatica Classe III A. Anno scolastico 2011–2012 Prof. Francesco Biccari biccari@gmail.com 20 aprile 2012
Indice 1 L’informatica 4 1.1 Dati e informazioni . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Cos’è l’informatica? . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.1 Gli algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.2 Il computer . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.3 La rappresentazione dei dati . . . . . . . . . . . . . . . . . 8 1.3 L’importanza dell’informatica e dell’ICT . . . . . . . . . . . . . . 9 1.4 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 Il computer 11 2.1 Cos’è un computer? . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 I tipi di computer . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Un po’ di storia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 I computer sanno lavorare solo con i numeri! . . . . . . . . . . . . 15 2.5 Un ripasso delle unità di misura . . . . . . . . . . . . . . . . . . . 16 2.5.1 I fenomeni periodici . . . . . . . . . . . . . . . . . . . . . 16 2.5.2 I prefissi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.6 Architettura di Von Neumann . . . . . . . . . . . . . . . . . . . . . 18 2.7 La CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.8 La memoria centrale . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.8.1 La RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.9 La scheda madre e i BUS . . . . . . . . . . . . . . . . . . . . . . . 22 2.9.1 Il firmware, le ROM e il BIOS . . . . . . . . . . . . . . . . 25 2.10 Le periferiche di input/output . . . . . . . . . . . . . . . . . . . . . 26 2.10.1 L’hard disk (disco rigido) . . . . . . . . . . . . . . . . . . . 26 2.10.2 Le memorie flash . . . . . . . . . . . . . . . . . . . . . . . 26 2.10.3 I drive ottici e i dischi ottici . . . . . . . . . . . . . . . . . 28 2.10.4 La cache . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.10.5 Tastiera, mouse, touchpad, … . . . . . . . . . . . . . . . . 29 2.10.6 Il monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.10.7 La stampante . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.10.8 Lo scanner . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.11 L’involucro e l’alimentazione . . . . . . . . . . . . . . . . . . . . . 32 2.12 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1
INDICE 2 3 La rappresentazione dei dati 34 3.1 Qual è il problema? . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2 Il sistema binario . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.1 Da binario a decimale . . . . . . . . . . . . . . . . . . . . 35 3.2.2 Da decimale a binario . . . . . . . . . . . . . . . . . . . . 35 3.2.3 Le operazioni elementari . . . . . . . . . . . . . . . . . . . 35 3.2.4 I numeri negativi e i numeri frazionari . . . . . . . . . . . . 36 3.3 Il sistema esadecimale . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.1 Dal binario all’esadecimale e viceversa . . . . . . . . . . . 36 3.4 I tipi di dato e le codifiche . . . . . . . . . . . . . . . . . . . . . . 36 3.4.1 I numeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4.2 Le stringhe . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4.3 Le immagini . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.4.4 I suoni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.5 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4 Algoritmi, strutture dati e programmi 42 4.1 Algoritmi e programmi . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2 Tipi di dati e istruzioni . . . . . . . . . . . . . . . . . . . . . . . . 44 4.3 La rappresentazione di un algoritmo . . . . . . . . . . . . . . . . . 45 4.3.1 Il diagramma di flusso . . . . . . . . . . . . . . . . . . . . 45 4.3.2 Lo pseudocodice . . . . . . . . . . . . . . . . . . . . . . . 47 4.4 Qualche esempio semplice di algoritmo . . . . . . . . . . . . . . . 47 4.5 Condizioni, cicli e l’istruzione GOTO . . . . . . . . . . . . . . . . 49 4.6 La programmazione strutturata e procedurale . . . . . . . . . . . . 50 4.6.1 La struttura di sequenza . . . . . . . . . . . . . . . . . . . 51 4.6.2 La struttura di selezione . . . . . . . . . . . . . . . . . . . 51 4.6.3 La struttura iterativa . . . . . . . . . . . . . . . . . . . . . 51 4.6.4 Altre strutture derivate . . . . . . . . . . . . . . . . . . . . 53 4.7 Esempi semplici . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.7.1 Stampare la tabellina del 2 fino a un numero dato . . . . . . 53 4.8 La programmazione procedurale: sottoprogrammi e funzioni . . . . 54 4.9 Alcuni esempi di algoritmi “veri” . . . . . . . . . . . . . . . . . . 54 4.10 Strutture dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.11 La creazione dei programmi . . . . . . . . . . . . . . . . . . . . . 54 4.12 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5 Sistemi operativi e programmi 59 5.1 Il diritto d’autore per il software . . . . . . . . . . . . . . . . . . . 59 5.2 I sistemi operativi . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.2.1 Il filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6 Microsoft Word 64 7 Microsoft Excel 65
INDICE 3 8 Le reti di computer 66 8.1 Le reti di computer . . . . . . . . . . . . . . . . . . . . . . . . . . 66 8.1.1 Cos’è una rete di computer . . . . . . . . . . . . . . . . . . 66 8.1.2 Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 8.1.3 Modem, router, switch e schede di rete . . . . . . . . . . . . 66 9 I database 67 A Codifica ASCII 68 A.1 Caratteri non stampabili . . . . . . . . . . . . . . . . . . . . . . . . 69 A.2 Caratteri stampabili . . . . . . . . . . . . . . . . . . . . . . . . . . 70 B Curiosità 71
Capitolo 1 L’informatica L’informatica non riguarda i computer più di quanto l’astronomia riguardi i telescopi. Edsger Wybe Dijkstra 1.1 Dati e informazioni Prima di spiegare cos’è l’informatica, bisogna soffermarci a definire i termini dato e informazione che troppo spesso vengono usati come sinonimi. Un dato è a un livello più basso rispetto all’informazione. È un singolo elemen- to informativo che non permette di aumentare la nostra conoscenza: un nome, un numero, un’immagine. In sintesi potremmo definire un dato come un simbolo senza un significato. Facciamo un esempio. Potremmo avere una serie di dati: “32°C, 33°C, 32°C, 27°C, 24°C, 27°C, 33°C”. Come vedete, avere a disposizione questa serie di numeri non aumenta la nostra conoscenza. Un altro dato potrebbe essere “8 848 metri”. Anche in questo caso, questo numero non ci serve a nulla. L’informazione è invece a un livello di astrazione superiore rispetto ai dati. Essa consiste in un insieme di dati collocato in un contesto che ci permette di aumentare la nostra conoscenza, cioè che ci permette di superare un’incertezza, prendere una decisione, effettuare delle operazioni. Per fare degli esempi guardiamo ai dati prece- denti e in particolare alla serie di temperature. Se sappiamo che quelle temperature sono relative alla città di Roma in un particolare periodo dell’anno a una partico- lare ora del giorno, questo fa di loro un’informazione. La nostra informazione può essere ulteriormente elaborata con altre informazioni per ottenerne di nuove. Per esempio nella serie di temperature si nota un abbassamento che potremmo associare a qualche giorno di brutto tempo. Questo potrebbe essere confermato da altre infor- mazioni relative alle precipitazioni. Analogamente per quanto riguarda l’altro dato, gli “8 848 metri”, se so che questo numero è la misura dell’altezza del monte Evere- st, ora ho un’informazione. Informazione che, come al solito, può essere incrociata con altre per ottenere nuove informazioni. Se avessi le altezze di tutte le montagne del mondo, scoprirei che il monte Everest è il più alto di tutti. 4
CAPITOLO 1. L’INFORMATICA 5 Figura 1.1. Rappresentazione schematica del DNA. Il DNA è il contenitore delle in- formazioni genetiche necessarie alla sintesi di RNA e proteine, molecole indispensabili per lo sviluppo e il corretto funzionamento della maggior parte degli organismi viven- ti. Queste informazioni sono scritte trami- te un alfabeto di 4 simboli, che nella real- tà corrispondono a quattro diverse moleco- le, chiamate basi azotate, come mostrato in figura. L’informazione è anche un’istruzione per eseguire un certo compito. E questo non soltanto per gli uomini. Il DNA è uno splendido esempio di contenitore di in- formazioni. Contiene infatti le “istruzioni” per la sintesi delle proteine che regolano lo sviluppo e il funzionamento di quasi tutti gli esseri viventi. Queste informazioni sono “scritte” con una alfabeto di 4 lettere, che nella realtà corrispondono a 4 diverse basi azotate (vedi la Fig. 1.1). In generale un’informazione ha valore in quanto potenzialmente utile al fruitore per i suoi molteplici scopi. Fin dall’alba dell’umanità gli uomini hanno sentito il bisogno di trasmettere informazioni per migliorare la vita propria e dei propri figli e questo li ha resi la specie dominante di questo pianeta: dal linguaggio, alle pit- ture, fino alla scrittura. Grazie alla rivoluzione scientifica e alle nuove tecnologie lo scambio di informazioni ha raggiunto livelli così elevati che oggigiorno la nostra società viene definita come società dell’informazione. 1.2 Cos’è l’informatica? L’informatica è la scienza che studia la rappresentazione, l’elaborazione delle infor- mazioni e le tecniche pratiche per realizzare queste elaborazioni in maniera automa- tica. Nei prossimi paragrafi approfondiremo ognuno di questi aspetti. L’etimologia italiana della parola informatica proviene dal francese: Philippe Dreyfus usò per primo il termine informatique nel 1962 come compressione di in- formation electronique ou automatique. Da notare che in inglese la parola infor- matics è usata raramente e ha un significato più ampio rispetto al nostro. La giusta parola inglese per indicare l’informatica è computer science.
CAPITOLO 1. L’INFORMATICA 6 La nascita dell’informatica non ha una data ben precisa. Se si guarda ai me- todi per automatizzare la risoluzione dei problemi, possiamo trovare la sua origine nella matematica e nella tecnologia greco–ellenistica (algoritmo di Euclide, metodo di Archimede per la trisezione di un angolo, macchina di Anticitera). Se invece ci concentriamo solo sui macchinari che permettevano di fare calcoli allora possiamo addirittura risalire all’abaco, strumento inventato intorno al 2000 a.C. L’informatica così come la intendiamo oggi nasce intorno al 1930 grazie al lavoro di scienziati co- me Kurt Gödel, Alan Turing, Alonzo Church, John von Neumann, Claude Shannon e grazie alla nascita dei primissimi computer. I fondamenti teorici dell’informatica discendono direttamente dalla matematica. Programmi di videoscrittura, browser, videogiochi, ecc... sono semplici strumen- ti di lavoro o svago. Quello che interessa, nell’informatica pura, non è tanto saper usare i vari programmi, quanto piuttosto capirne la struttura ed eventualmente saper- la migliorare con l’uso di procedimenti più efficienti. Per assurdo, un informatico puro potrebbe non saper accendere un computer! Vengono invece chiamati pro- grammatori coloro che creano i programmi (spesso sono dei laureati in ingegneria informatica). Infine esistono gli utenti, cioè i semplici utilizzatori di programmi. Nei prossimi tre paragrafi parleremo dei tre aspetti fondamentali dell’informa- tica che verranno poi discussi più approfonditamente nei primi capitoli di queste dispense: gli algoritmi, il computer e la rappresentazione dei dati. 1.2.1 Gli algoritmi Per poter permettere a qualcuno, sia esso una macchina o una persona, di fare un lavoro “al posto nostro”, dobbiamo impartirgli delle istruzioni ben precise in modo che faccia esattamente ciò che vogliamo. Facciamo un primo esempio banale. Sup- poniamo di stare comodamente sdraiati sul divano e, siccome non ci va di alzarci, vogliamo che un’altra persona faccia partire un film in DVD al posto nostro. Se que- sta persona non sa usare il lettore DVD, dovremo dirgli di fare determinate azioni in maniera chiara e non ambigua: 1. Prendi il DVD del film “Ritorno al futuro”; 2. Accendi il lettore DVD spingendo il bottone in basso a sinistra; 3. Apri il cassettino del DVD spingendo il bottone in alto a destra; 4. Poggia il DVD nel cassettino con le scritte rivolte verso l’alto; 5. chiudi il cassettino premendo il tasto in alto a destra; 6. Avvia la riproduzione del DVD premendo il tasto Play che si trova in basso a destra. Questa sequenza di istruzioni è un semplicissimo esempio di algoritmo, che è definito come una sequenza finita di operazioni, chiaramente comprensibili all’ese- cutore, per risolvere un problema. Facciamo un altro esempio, stavolta di natura matematica. Ricordate la sequen- za di temperature di cui avevamo parlato nel paragrafo 1.1? Supponiamo di voler calcolare la temperatura media. La “sequenza di istruzioni” è in questo caso molto semplice: 1. si prendono tutti i numeri; 2. si sommano; 3. si divide la somma per il numero degli elementi; 4. si riporta il risultato ottenuto. Spesso un algoritmo ha degli input (immissione in inglese) e degli output (emis- sione/in uscita in inglese). L’input è l’insieme degli elementi in ingresso, spesso dei
CAPITOLO 1. L’INFORMATICA 7 Figura 1.2. Rappresentazione schematica di un generico sistema di elaborazione. Un si- stema di elaborazione può essere pensato come una scatola che produce un output a partire dagli input. dati, mentre l’output è l’insieme degli elementi in uscita, spesso dei dati. Per esem- pio un input possono essere gli ingredienti di una ricetta, l’algoritmo è una ricetta ben scritta e l’output è il piatto pronto. L’insieme delle azioni che a partire dagli input generano l’output prende il no- me di processo di elaborazione. Un qualsiasi oggetto, o insieme di più oggetti, che esegua un processo di elaborazione, cioè che generi un output a partire dagli input, viene chiamato sistema di elaborazione. Concettualmente un sistema di elaborazio- ne può essere schematizzato come una scatola (black box) a cui si forniscono degli input e che restituisce degli output. Esempi di sistemi di elaborazione sono la lava- trice (panni sporchi in input, panni puliti in output), la radio (segnali radio in input, suono in output), ecc…. Il capitolo 4 sarà dedicato agli algoritmi, alla loro analisi e alla loro rappresen- tazione. 1.2.2 Il computer Un computer non è nient’altro che una macchina che può eseguire delle operazioni elementari sui dati in input, seguendo degli algoritmi impostati dall’esterno, e resti- tuisce il risultato dell’elaborazione come dati in output. La peculiarità di un compu- ter è quella di essere un sistema di elaborazione generico, cioè che può essere istrui- to per eseguire qualsiasi tipi di algoritmo sui dati. Usando opportune periferiche collegate al computer, si possono anche eseguire operazioni “pratiche”. La lavatrice, per esempio, è una specie di “computer”. All’interno vi è infatti un vero e proprio minicomputer che comanda le varie parti della lavatrice e che è programmato per eseguire un solo algoritmo preimpostato in fabbrica. A partire dagli input iniziali, cioè le scelte di lavaggio come temperatura, tipo di capi da lavare, ecc…, la lavatrice segue il suo algoritmo e alla fine restituisce come output i panni puliti. Ricordiamo che la differenza tra una lavatrice e un computer è che il computer può essere istruito affinché esegua un qualsiasi tipo di algoritmo mentre la lavatrice è pensata per eseguire sempre e solo un singolo algoritmo. Come si fa però a insegnare a un computer a eseguire certi algoritmi? Per farlo il computer deve essere “programmato”, cioè bisogna inserire nella sua memoria l’al- goritmo desiderato secondo un linguaggio comprensibile al computer. L’insieme di queste istruzioni si chiama programma. Chiaramente un semplice utente del compu- ter non è obbligato a scriversi da solo tutti i programmi! Anzi, tutti i programmi che userà saranno realizzati da altre persone (basti pensare a programmi come Microsoft Word e Microsoft Excel).
CAPITOLO 1. L’INFORMATICA 8 Figura 1.3. Fotografia di un personal computer di tipo desktop. L’unità centrale è la parte principale e consiste di un involucro chiamato case all’interno del quale si trovano tutti i componenti principali del computer. Oltre all’unità centrale si vedono tre periferiche: il monitor, la tastiera e il mouse. Attualmente caricare ed eseguire un programma in un computer è un’operazione molto semplice. Infatti i computer sono equipaggiati con un programma speciale, chiamato sistema operativo, che viene eseguito poco dopo l’accensione del compu- ter. Il sistema operativo “accoglie” l’utente in maniera amichevole permettendogli di fare tutta una serie di operazioni, tra cui eseguire un programma. Esempi di sistemi operativi sono Microsoft Windows 7, Mac OS X, Android, Ubuntu, ecc… L’insieme dei programmi e dei dati prende il nome di software. Questo termine è stato coniato per contrapposizione alla parola hardware che in inglese significa fer- raglia. La parola hardware identifica infatti le parti fisiche del computer. Fu scelto questo nome perché i vecchi computer erano enormi e avevano schede elettroni- che, valvole e tutta una serie di componenti ingombranti che sembravano veramente ferraglia! Nel capitolo 2 vedremo di quali parti si compone un computer e come funziona. 1.2.3 La rappresentazione dei dati Quando abbiamo accennato agli algoritmi, abbiamo detto che le operazioni di cui parlano devono essere comprensibili a chi deve eseguire l’algoritmo. Ovviamente lo stesso discorso vale per i dati. Siccome il nostro interesse principale è far eseguire degli algoritmi al computer, dobbiamo essere in grado di esprimere sia i dati che le operazioni degli algoritmi in un linguaggio comprensibile al computer. Un computer è in grado di eseguire solamente operazioni sui numeri. Copiare un numero, addizionare due numeri, confrontare due numeri, ecc…Siccome un com-
CAPITOLO 1. L’INFORMATICA 9 puter ha bisogno di rappresentare i dati solamente con un insieme finito di numeri, si dice digitale. Ricordiamo, per chi non lo sapesse, la differenza tra analogico e digitale. Una grandezza fisica che viene rappresentata con continuità è detta analogica. Pensiamo per esempio al tempo, che viene rappresentato con l’angolo delle lancette dell’oro- logio. Oppure alla temperatura misurata da un termometro a mercurio. Sia l’angolo della lancetta sia l’altezza della colonnina di mercurio possono assumere qualsiasi valore compreso tra un minimo e un massimo. Si dice invece digitale una gran- dezza fisica che viene rappresentata usando un numero finito di valori numerici. Per esempio un orologio digitale non può mostrare con continuità tutti gli istanti di tempo possibili in una giornata, solitamente può al massimo arrivare a mostrare i secondi. Anche un termometro digitale non mostrerà con continuità i valori della temperatura, ma solamente dei valori distanziati, per esempio, di 0.1°C. Un altro esempio più sui generis è la quantificazione della conoscenza di un argomento tra- mite un voto. Solitamente questa conoscenza viene espressa con un numero intero compreso tra 0 e 10. È quindi un esempio di rappresentazione digitale. Rappresentare i dati, siano essi numeri, lettere, immagini, suoni, sotto forma di numeri è di fondamentale importanza affinché possano essere “usati” in un compu- ter. Come fare per trasformare dei dati in numeri sarà l’argomento del capitolo 3. 1.3 L’importanza dell’informatica e dell’ICT Cerchiamo ora di comprendere l’importanza dell’informatica nel mondo odierno. Dalla fine della seconda guerra mondiale ai giorni nostri il nostro modo di vivere è cambiato radicalmente. Questi cambiamenti, tutt’ora in corso, prendono il nome di terza rivoluzione industriale. Tra i pilastri più importanti su cui si basa questa rivo- luzione ci sono tre discipline scientifiche: l’informatica, l’elettronica e le telecomu- nicazioni. Le nuove capacità di immagazzinamento, elaborazione e comunicazione delle informazioni sono il cardine, nel bene e nel male, di questa rivoluzione. L’uso della tecnologia nella gestione e nel trattamento delle informazioni ha infatti assun- to crescente importanza strategica per le aziende e per le nazioni (studio dei propri clienti, previsione di strategie di mercato, studio di una politica economica). In particolare non c’è stata solo una rivoluzione dei settori economici preesisten- ti alla luce delle nuove tecnologie. Soprattutto negli ultimi 20 anni è nato un vero e proprio nuovo settore dell’economia scaturito dall’unione di informatica, elettronica e telecomunicazioni, chiamato Tecnologia dell’Informazione e della Comunicazione (abbreviato in ICT, Information and Communication Technologies) e i cui frutti so- no sotto gli occhi di tutti: interconnessione dei media1 (telefonia, televisione, radio, internet, ecc…); estrema facilità nell’immagazzinamento, scambio e reperibilità di informazioni. Oramai l’ICT è diventato un settore chiave dell’economia moderna, almeno pari a quello di settori più consolidati quali quello meccanico, chimico, far- 1 Si noti che la parola media va pronunciata così come è scritta perché è una parola latina. Non va pronunciata “midia”, come purtroppo spesso si sente.
CAPITOLO 1. L’INFORMATICA 10 maceutico, tessile, manufatturiero e alimentare ma soprattutto è il vero traino della rivoluzione che stiamo vivendo. Questo corso non dovrebbe chiamarsi “Informatica” bensì “Tecnologie dell’in- formazione e della comunicazione”. L’informatica e le telecomunicazioni sono i fondamenti tecnico–scientifici di cui gli studenti devono solo conoscere i concetti fondamentali. Studenti orientati all’attività lavorativa in azienda, dovrebbero in- vece conoscere e sapersi districare tra le attuali tecnologie ICT usate in azienda, cioè dovrebbero essere educati alla corretta gestione, presentazione e interpretazio- ne dei dati, alla loro comunicazione ai clienti e ad altre aziende, e infine all’uso delle tecnologie ICT nella gestione del lavoro. Nel capitolo 5 faremo una panoramica dei programmi più comuni, concentran- doci in particolare sui programmi per ufficio. In particolare nei capitoli 6 e 7 intro- durremo all’uso del word processor Microsoft Word e del foglio di calcolo Microsoft Excel. Nel capitolo 8 parleremo delle reti di computer e infine nel capitolo 9 mostreremo i principi dell’immagazzinamento e recupero efficiente dei dati tramite i database e i software più famosi per gestirli. 1.4 Esercizi • Cos’è l’informatica? • I termini dato e informazione sono sinonimi? Perché? • Cos’è un algoritmo? • Cos’è un programma? • Un informatico è sempre anche un programmatore? • Cos’è l’hardware? • Cos’è il software? • Perché è così importante la rappresentazione dei dati? • Cos’è un algoritmo? • Cos’è un sistema di elaborazione? • Cos’è un computer? • Il computer è un sistema di elaborazione? Perché? • Cosa significa automatico? • Cosa significa digitale? • Cosa significa analogico?
Capitolo 2 Il computer L’hardware è ciò che puoi prendere a calci quando qualcosa non funziona, il software invece è quello contro cui puoi solo imprecare. Anonimo 2.1 Cos’è un computer? Un computer è una macchina programmabile che può eseguire automaticamente sequenze di operazioni logico-aritmetiche sui dati in ingresso (input) e di restituire i risultati di tali operazioni in uscita (output). È pertanto un sistema di elaborazione di dati. La caratteristica principale che lo differenzia da altri sistemi di elaborazione è la programmabilità, cioè può essere istruito (programmato) per eseguire qualsiasi tipo di algoritmo. Il termine computer deriva dall’inglese e significa calcolatore. In inglese il ter- mine indicava originariamente un essere umano incaricato di eseguire dei calcoli. Il primo utilizzo nel senso moderno del termine è attestato nel 1897 ma bisognerà attendere la metà degli anni ’50 perché questa accezione diventi di uso comune. Al giorno d’oggi, ci si riferisce comunemente al computer come a un disposi- tivo elettronico, digitale, programmabile e a scopo generico costruito secondo la cosiddetta architettura di von Neumann. Al pari della televisione, il computer rappresenta il mezzo tecnologico simbolo che più ha modificato le abitudini umane dal secondo dopoguerra a oggi: la sua invenzione ha contribuito alla nascita e allo sviluppo dell’informatica moderna, uno dei pilastri su cui si basa la cosiddetta terza rivoluzione industriale. 2.2 I tipi di computer Esistono molti termini nel mondo dell’informatica per indicare i vari tipi di com- puter. Una volta queste distinzioni erano basate sostanzialmente sulla potenza del 11
CAPITOLO 2. IL COMPUTER 12 Figura 2.1. Un moderno mainframe, un personal computer desktop e uno smartphone. computer. Attualmente invece, data la potenza dei computer odierni, si tende a cata- logare i computer, non solo in base alla loro potenza, ma anche, e forse soprattutto, in base alla loro destinazione d’uso. I mainframe o sistemi centrali sono computer utilizzati per applicazioni critiche soprattutto da grandi aziende e istituzioni, tipicamente per elaborare con alte pre- stazioni e alta affidabilità grandi moli di dati: transazioni finanziarie, censimenti, statistiche di industrie e clienti, ecc. I personal computer sono dei computer pensati soprattutto per essere acquistati e usati da una singola persona. In questa categoria possiamo quindi far rientrare il clas- sico computer da tavolo (desktop computer), i computer portatili (laptop computer), i tablet e anche gli smartphone. Ricordiamo anche i supercomputer, dei computer costruiti per avere la massima potenza di calcolo possibile. Sono pezzi unici e servono sostanzialmente per la ricerca scientifica. 2.3 Un po’ di storia Fin dall’antichità l’uomo cercò di costruire macchine in grado di fare dei calcoli: l’abaco, la macchina di Anticitera e gli astrolabi sono solo alcuni esempi. Le prime macchine calcolatrici compaiono nella seconda metà del 1600: la macchina calco- latrice di Wilhelm Schickard (1623, mai realizzata), la pascalina di Blaise Pascal (1645) e la macchina di Gottfried Leibniz (1672). Il passaggio da macchina calcolatrice a vero e proprio computer (nel senso di dispositivo programmabile) si deve a Charles Babbage. La sua macchina analitica, progettata nel 1833 ma mai realizzata, è il primo computer della storia. Si trattava di una colossale macchina a ingranaggi, alimentata a vapore e dotata di unità di calcolo decimale, unità di memoria e sistemi di input e di output. Contrariamente a quanto si potrebbe pensare, la macchina analitica era interamente digitale. Il primo computer funzionante è invece lo Z1 realizzato da Konrad Zuse nel 1938. (Vedi figura 2.2.) La nascente elettronica e la spinta delle ricerche per la se- conda guerra mondiale fecero fare dei grandi passi in avanti nello sviluppo dei com- puter (ABC del 1939, Colossus del 1944, Harvard Mark I del 1944, Z4 del 1945, ENIAC del 1946). I computer necessitavano però di essere programmati manual- mente spostando interruttori e spinotti! Solo con il computer EDVAC, progettato
CAPITOLO 2. IL COMPUTER 13 Figura 2.2. A sinistra una rara fotografia dello Z1, costruito da Konrad Zuse nel 1938 nel soggiorno della casa dei suoi genitori. A destra una fotografia di Zuse negli anni ‘50. Figura 2.3. Una fotografia dell’ENIAC (a sinistra) e una fotografia dell’EDVAC (a destra) con degli scienziati al lavoro. Si notino le dimensioni di questi computer. nel 1945 sotto la supervisione di John Von Neumann e realizzato nel 1949, si ha finalmente un computer dove il programma da eseguire poteva essere inserito nella memoria così come si faceva con i dati. (Vedi figura 2.3.) Negli anni ’50 nacquero i primi computer commerciali, grandi come stanze e molto costosi, comprati dai grandi istituti di ricerca. Durante gli ultimi anni ‘50 e gli anni ’60, grazie all’invenzione del transistor e all’affermarsi dei primi linguaggi di programmazione di alto livello (FORTRAN, COBOL, BASIC, …), i computer di- vennero più piccoli (come armadi), relativamente facili da usare e si diffusero quindi in tutte le grandi aziende e le maggiori università. Il maggior produttore era l’IBM che nel tempo è rimasto uno dei maggiori innovatori e leader del mercato. Dalla fine degli anni ’60 e nella prima metà degli anni ’70 ci fu un grande salto tecnologico grazie all’invenzione dei circuiti integrati (detti microchip o semplice- mente chip), che permisero di avere potenze di calcolo maggiori in un minor volume, e grazie alla comparsa del sistema operativo UNIX e del linguaggio C. (Vedi figu-
CAPITOLO 2. IL COMPUTER 14 Figura 2.4. A sinistra uno dei più noti computer commerciali degli anni ’60 e ’70, l’IBM System/360 (modello 44). A destra un famosissimo computer commerciale degli anni ’80, il Digital VAX 11/780; quelle piccole macchine dotate di tastiera e monitor sono i terminali che venivano usati per accedere al computer vero e proprio. ra 2.4.) Una famoso produttore di computer che nasce in questi anni è la Digital. Fanno la loro comparsa anche i primi computer con dimensioni simili a quelle dei personal computer odierni, come l’italiano Olivetti Programma 101. Un’altra grande rivoluzione tecnologica ci fu nei primi anni ’70 quando i ricer- catori dell’Intel inventarono la memoria RAM e i microprocessori. La strada per lo sviluppo dei personal computer era ormai spianata. Da ricordare lo Xerox Alto del 1972 che introdusse l’interfaccia grafica e la scheda di rete, l’Apple II del 1976 che fu il primo con monitor a colori, lo Xerox Star del 1981 che introdusse il mouse, l’hard disk di serie e un’interfaccia grafica basata sul concetto di desktop, come nei moderni sistemi operativi. (Vedi figura 2.5.) Negli anni ’80 ci fu la vera alfabetizzazione informatica. Nel 1981 nacque il primo Personal Computer (PC) IBM (vedi figura 2.5) da cui discendono la mag- gior parte dei computer desktop moderni. La realizzazione del sistema operativo di questi computer fu affidata alla Microsoft, che realizzò l’MS-DOS. In questi anni comparirono anche molti computer “giocattolo”, basti ricordare il Commodore 64. I computer erano oramai entrati nelle case di milioni di persone in tutto il mondo. Negli anni successivi fino ai giorni nostri, la tecnologia, sia hardware che soft- ware, ha fatto passi da gigante, soprattutto grazie alla spinta del mercato. In que- sto periodo ci sono principalmente tre fatti da ricordare: la nascita di Internet, la nascita del WEB e infine la nascita del software libero, in particolare dei sistemi operativi basati su Linux. Attualmente i computer e la loro possibilità di intercon- nessione e quindi scambio di informazioni hanno letteralmente “invaso” la nostra vita. Basti pensare che i moderni telefoni cellulari, detti smartphone, sono in realtà dei computer a tutti gli effetti. Qui si conclude il nostro breve excursus sulla storia del computer. Abbiamo vi- sto che nel corso della storia l’implementazione fisica del computer è variata con il progredire della tecnologia dando luogo a computer profondamente diversi dal punto di vista del meccanismo di funzionamento (meccanici, elettromeccanici ed elettro- nici), della modalità di rappresentazione delle informazioni (analogica e digitale) e
CAPITOLO 2. IL COMPUTER 15 Figura 2.5. A sinistra lo Xerox Alto (1972). In alto a destra lo Xerox Star (1981). In basso a destra l’IBM 5150 (1981), meglio noto come PC (Personal Computer). di altre loro caratteristiche (architettura interna, programmabilità, ecc.). Ricordia- mo di nuovo che al giorno d’oggi, ci si riferisce comunemente al computer come a un dispositivo elettronico, digitale, programmabile e a scopo generico costruito secondo la cosiddetta architettura di von Neumann. 2.4 I computer sanno lavorare solo con i numeri! È importante dire fin da subito che i computer possono lavorare solo con dei numeri. Per esempio quando guardate un video con il vostro computer, ciò che accade è che delle lunghissime sequenze di numeri vengono elaborate e inviate alla scheda video la quale è in grado di trasformarli in segnali adatti per il vostro monitor. Alcuni di questi numeri sono le coordinate cartesiane dei punti dello schermo mentre altri numeri rappresentano il colore di questi punti. In particolare, per motivi costruttivi, è molto più facile creare dei computer che usano dei numeri in forma binaria. Infatti è molto più semplice realizzare dispositivi che abbiano solo due “simboli” anziché, per esempio, 10 simboli. Immaginate infatti di avere un circuito elettrico. Il passaggio di corrente indicherà un simbolo, il non passaggio di corrente indicherà un altro simbolo. Come vedete abbiamo due stati a disposizione che potremmo chiamare per comodità 1 e 0. Se avessimo voluto avere 10 simboli come nel sistema decimale (che poi avremmo chiamato 0, 1, 2, 3, 4, 5, 6, 7, 8, 9), saremmo stati in difficoltà perché avremmo dovuto avere 10 livelli di corrente diversi! Questo è in teoria possibile ma in pratica può generare molte difficoltà perché la presenza di disturbi potrebbe confondere uno stato con un altro!
CAPITOLO 2. IL COMPUTER 16 Vedremo un po’ di matematica del sistema binario nel prossimo capitolo. Per ora basti sapere che ogni cifra in un sistema a due stati, viene chiamata bit, contra- zione dall’inglese binary digit (cifra binaria). L’insieme di 8 cifre binarie, cioè 8 bit, prende il nome di byte. Il simbolo per indicare il bit è b mentre il simbolo per indicare il byte è B. 2.5 Un ripasso delle unità di misura Nello studio dell’informatica, così come di qualsiasi altra scienza, è fondamentale conoscere e saper gestire le varie unità di misura che si incontrano e i vari prefis- si moltiplicativi. In questo semplice corso di informatica incontreremo solo due grandezze fisiche, il tempo e la frequenza. Quindi ci serviranno solo due unità di misura. 2.5.1 I fenomeni periodici Un fenomeno periodico è un fenomeno che si ripete uguale a sé stesso a intervalli uguali di tempo. L’intervallo di tempo che impiega il sistema a compiere un ciclo si chiama periodo. Facciamo un esempio: in un orologio analogico, la lancetta dei secondi compie un moto circolare periodico. Il tempo che impiega a ritornare nella posizione di partenza, cioè il tempo per fare un giro completo, è il periodo di rotazione ed è pari a 60 secondi (60 s in forma abbreviata). La frequenza indica invece quante volte un fenomeno si ripete in un certo inter- vallo di tempo. Facciamo degli esempi. Il battito cardiaco di una persona a riposo è di circa 1 battito al secondo. Invece di scrivere “al secondo” si usa il termine her- tz, abbreviato Hz. Facciamo un altro esempio. L’albero motore di una autovettura accesa, senza spingere l’acceleratore, compie circa 1800 giri al minuto. Con un sem- plice calcolo (provateci da soli!) si ottiene che i giri al secondo sono 300. Pertanto possiamo affermare che la frequenza di rotazione dell’albero motore è di 300 Hz. Un ultimo esempio. La lancetta dei secondi, come avevamo visto, ha un periodo di 60 s. Quant’è la frequenza del suo moto? Cioè quanti giri fa in un secondo. In un secondo la lancetta fa solo 1/60 di giro! Quindi diremo che la frequenza è 1/60 Hz oppure, in forma decimale, 0.0166… Hz. Da questi esempi si intuisce che la frequenza è l’inverso del periodo, cioè, in forma di equazione: 1 = (2.1) Vedremo in questo capitolo che la frequenza è una grandezza fisica importantis- sima per comprendere il funzionamento di un computer. Infatti tutte le operazioni di un computer sono temporizzate, cioè ogni parte del computer esegue un’opera- zione ogni volta che riceve un impulso elettrico particolare, chiamato clock. Que- sto segnale è periodico ed è composto di svariati milioni o miliardi di impulsi al secondo!
CAPITOLO 2. IL COMPUTER 17 Tabella 2.1. Tabella con i prefissi che indicano i multipli e i sottomultipli delle unità di misura. prefisso simbolo valore tera T 1012 (1000 miliardi) giga G 109 (1 miliardo) mega M 106 (1 milione) kilo k 103 (mille) milli m 10−3 (1 millesimo) micro μ 10−6 (1 milionesimo) nano n 10−9 (1 miliardesimo) pico p 10−12 (1 millesimo di miliardesimo) 2.5.2 I prefissi In tutte le scienze e non solo, quando i numeri che esprimono una grandezza sono troppo grandi o troppo piccoli per essere usati in maniera comoda, si preferisce usare un prefisso che indichi i multipli e i sottomultipli dell’unità di misura, in modo da avere una parte numerica più comoda da scrivere. Facciamo un esempio. Tutti noi conosciamo i metri e i kilometri. Un kilometro corrisponde a 1000 metri. I kilometri vengo usati quando si parla di lunghe distanze: invece di dire che abbiamo percorso 230000 m è molto più semplice dire che si sono percorsi 230 km. I metri si indicano con m e i kilometri con km. La lettera k sta per kilo e significa mille volte più grande. Infatti come tutti sappiamo 1 km sono 1000 m. Oltre al kilo che abbiamo appena visto, esiste tutta una serie standard di prefissi per le unità di misura. Alcuni dei prefissi più importanti sono riportati in Tab. 2.1. Facciamo un piccolo esercizio dove compaiono i prefissi moltiplicativi. Suppo- niamo che la nostra linea ADSL abbia una velocità di 2 Mb/s: significa che possiamo scaricare (se non ci sono altri problemi) 2 milioni di bit al secondo. Considerando che una canzone presa da internet in formato mp3 può essere di circa 3 MB (3 me- gabyte), vogliamo sapere il tempo necessario a scaricare questa canzone. Prima di tutto trasformiamo la velocità della nostra ADSL da bit a byte. Basta dividere per 8, perché, ricordiamolo, un byte sono 8 bit. Pertanto la velocità della nostra ADSL sarà di 2 Mb/s = 0.25 MB/s 8 Ora, per conoscere il tempo necessario a scaricare la canzone dobbiamo dividere la dimensione del file della canzone per la velocità di trasferimento: dimensione file 3 MB = = = 12 s velocità di scaricamento 0.25 MB/s Quindi per scaricare quella canzone da 3 MB avremo bisogno di almeno 12 s con la nostra linea ADSL.
CAPITOLO 2. IL COMPUTER 18 Figura 2.6. Schema dell’architettura di von Neumann. I componenti fondamentali sono CPU e memoria centrale, quelli opzionali sono i sistemi di input e output. Questi componenti sono connessi tra loro tramite un sistema di comunicazione apposito chiamato BUS. 2.6 Architettura di Von Neumann Passiamo ora a spiegare come è fatto un computer e di quali parti si compone. Prati- camente tutti i moderni computer di uso comune sono progettati secondo uno schema (architettura) detto architettura di Von Neumann inventata nel 1945 dal matematico John von Neumann e dal suo gruppo. Lo schema, mostrato in Fig 2.6, si basa su cinque componenti fondamentali: • La CPU, che si divide a sua volta in – Unità di controllo – Unità operativa, nella quale uno dei sottosistemi più rilevanti è l’ALU (Arithmetic Logic Unit) – Registri della CPU • La memoria centrale, intesa come memoria di lavoro o memoria principale contenente sia i dati che i programmi attualmente in uso • Unità di input, tramite la quale i dati e/o i programmi vengono inseriti nel calcolatore per essere elaborati • Unità di output, necessaria affinché i dati elaborati possano essere restituiti all’operatore • Bus, uno o più canali di comunicazione che collegano i componenti fra loro È importante sottolineare che tale architettura, a differenza di altre, si distingue per la caratteristica di immagazzinare all’interno dell’unità di memoria, sia i dati che i programmi in esecuzione. In poche parole si dice che le istruzioni dei programmi sono a loro volta dei dati. Un’ultima nota: quando si parla di memoria centrale si usa l’aggettivo centrale per distinguere questa memoria (che di solito è una RAM) da altri tipi di memoria, come per esempio gli hard disk che invece sono dei componenti opzionali e pertanto rientrano nella categoria dei dispositivi di I/O.
CAPITOLO 2. IL COMPUTER 19 Figura 2.7. Le tre immagini rappresentano tutte il microprocessore Intel Core i5. La prima mostra la parte superiore, la seconda mostra le componenti interne al microprocessore che si trovano sotto il coperchio di protezione e l’ultima foto mostra il retro, dove si notano principalmente tutti i contatti del microprocessore. 2.7 La CPU La CPU (dall’inglese Central Processing Unit, Unità centrale di elaborazione) è uno dei componenti fondamentali di un computer. Viene spesso chiamata anche proces- sore o microprocessore. È il componente che esegue le istruzioni del programma. Possiamo immaginarlo come il “cervello” del computer. È composta di varie parti al suo interno. C’è l’unità di controllo, che legge e scrive i dati dalla memoria (dove con dati si intende anche il programma da esegui- re), interpreta le istruzioni da eseguire e le esegue, facendosi “aiutare” da un altro componente della CPU, l’ALU (in inglese Arithmetic Logic Unit) che si occupa di eseguire tutte le operazioni logiche e matematiche. Infine ci sono i registri che non sono nient’altro che una minuscola memoria per immagazzinare i dati temporanei o gli indirizzi di memoria su cui si dovrà operare. Ogni operazione eseguita dalla CPU si divide in un certo numero di passi ele- mentari. Viene fatto un passo ogni volta che la CPU riceve un “impulso dall’ester- no”. Questo “impulso dall’esterno” è chiamato segnale di clock o semplicemente
CAPITOLO 2. IL COMPUTER 20 clock e arriva a intervalli di tempo regolari. Pertanto più alta sarà la frequenza del segnale di clock, cioè più alto sarà il numero di impulsi di clock che arrivano alla CPU, più veloce sarà l’esecuzione di un programma. Oggigiorno le migliori CPU possono funzionare a frequenze di clock di circa 3 GHz, cioè 3 miliardi di impulsi al secondo! Il segnale di clock viene generato da un componente apposito che si trova sulla scheda madre. ————————————————— Facciamo un piccolo esempio di operazione elementare della CPU. L’unità di controllo della CPU legge in uno dei registri l’indirizzo dell’istruzione da eseguire e la memorizza in un altro registro. Supponiamo che tale istruzione sia (scritta in forma più chiara e non in binario!) ADD 7A3, 8A7, B92 L’unità di controllo della CPU capisce che deve fare una somma tra due numeri che sono memorizzati negli indirizzi 7A3 e 8A7 della RAM. L’ultimo indirizzo, B92, sarà invece l’indirizzo della RAM dove bisogna mettere il risultato. L’unità di controllo prende allora i due numeri contenuti nelle celle di memoria RAM 7A3 e 8A7 e li memorizza in due registri liberi della CPU, facciamo finta siano il registro 3 e 4. Poi ordina alla ALU della CPU di eseguire la somma dei due numeri contenuti nei registri 3 e 4, e che il risultato sia memorizzato in un registro libero, per esempio il 5. Appena l’ALU avrà finito di fare ciò che gli è stato chiesto, l’unità dei controllo della CPU terminerà il suo lavoro copiando il contenuto del registro 5, quello con- tenente il risultato della somma, nell’indirizzo di memoria RAM B92. Fatto questo, l’istruzione è stata completata e si potrà passare all’istruzione successiva. ————————————————— La maniera in cui viene effettivamente costruita la CPU affinché possa esegui- re le varie istruzioni viene detta microarchitettura. Una certa microarchitettura è caratterizzata da un determinato insieme di istruzioni (instruction set) che la CPU può eseguire. Tra le caratteristiche di una microarchitettura c’è anche la dimensione naturale di dati che viene normalmente usata per varie attività. Questa dimensione si chiama word (parola) e nelle CPU attuali è solitamente di 32 bit o 64 bit. Facciamo degli esempi per capire l’importanza della word. Ogni istruzione che riceve la CPU è composta da una o più word. La quantità di dati contenuta nei registri corrisponde a una word. La quantità di dati trasferiti dalla memoria centrale alla CPU è di una word per ogni trasferimento. Il numero di bit usati per rappresentare i numeri, interi o con la virgola, è di una word o di un multiplo di essa. Ma la cosa più importante è dire che gli indirizzi della memoria centrale sono numerati con un numero di bit pari a una word. Se la word è quindi di 32 bit, al massimo la CPU potrà “vedere” 232 caselle di memoria (ricordate che una casella di memoria corrisponde a un byte). Pertanto un sistema a 32 bit potrà montare al massimo 232 byte di memoria,
CAPITOLO 2. IL COMPUTER 21 Figura 2.8. Sulla sinistra banco di memoria RAM (con e senza dissipatore per il calore). Sulla destra banchi di RAM montati sulla scheda madre. cioè circa 4 GB. Questo è uno dei principali motivi per cui negli ultimi anni si sta passando a CPU a 64 bit. Una CPU a 64 bit può infatti indirizzare fino a 264 caselle di memoria, quindi per un massimo di ben 16 miliardi di GB!!! 2.8 La memoria centrale La memoria centrale è un altro componente fondamentale del computer. Secondo l’architettura di Von Neumann, la memoria centrale gioca un doppio ruolo. Contiene sia i dati che servono alla CPU, sia il programma che si sta eseguendo. In altri tipi di architetture particolari esiste invece una memoria per contenere il programma e una memoria per contenere i dati. In generale le memorie sono composte da tante minuscole cellette, ognuna delle quali può trovarsi in due stati, carico e scarico. Avete già capito che questi due stati verranno usati per rappresentare le cifre 0 e 1. Attualmente la memoria centrale di ogni computer è una memoria di tipo RAM. 2.8.1 La RAM La tipica memoria centrale usata nei computer è una RAM (dall’inglese Random Access Memory, memoria ad accesso casuale). Il termine random (casuale) è do- vuto al fatto che accedere a un’area o a un’altra di questa memoria non comporta differenze di velocità. La RAM può essere sia letta che scritta. Quando si spegne il computer o in generale si stacca la corrente, tutto il contenuto della RAM viene perso. Una memoria che si comporta in questo modo viene detta volatile. Le RAM si dividono a sua volta in statiche e dinamiche. Praticamente tutte le RAM usate nei computer comuni sono dinamiche. Questo tipo di RAM è meno co- stoso delle RAM statiche ma le cellette di cui è composta la RAM dinamica tendono a scaricarsi con il tempo. Pertanto, per evitare che il computer perda le informazioni durante il suo funzionamento e quindi si blocchi, la memoria RAM dinamica deve
CAPITOLO 2. IL COMPUTER 22 essere “rinfrescata” a intervalli di tempo regolari (circa ogni 64 ms, cioè con una frequenza di 15 Hz). Per accedere ai dati contenuti nella RAM, la CPU assegna a ogni celletta un indirizzo, proprio come i numeri civici delle strade che vengono usati per identificare le varie case. In realtà le cellette non sono numerate una per una ma sono numerate a gruppi di 8: un indirizzo ogni 8 cellette, cioè ogni 8 bit (1 byte). La quantità di dati che può contenere la RAM si misura in byte e nei computer moderni questa quantità varia solitamente da 1 GB fino a 8 GB. 2.9 La scheda madre e i BUS La CPU, la memoria e tutte le periferiche di input/output sono connesse tra loro attraverso la scheda madre. Le connessioni fisica tra la scheda madre e gli altri componenti avviene in vari modi: tramite degli zoccoli, detti socket (CPU), tramite delle apposite fessure, dette slot, (memoria, schede varie), tramite dei cavi (hard disk, drive ottico, ecc.) o tramite delle porte esterne (tastiera, mouse, chiavette USB, ecc.) (Vedi figura 2.9.) La scheda madre contiene i BUS, cioè i canali di comunicazione tra le varie parti del computer e ne regola le comunicazioni. Ricordiamo che i BUS sono uno degli elementi fondamentali dell’architettura di von Neumann. La scheda madre contiene anche uno o più generatori di clock, la ROM contenente il BIOS e un orologio sempre in funzione, alimentato da una batteria interna. Figura 2.9. Fotografia di una scheda madre senza alcun componente attaccato. Si notino le varie slot presenti.
CAPITOLO 2. IL COMPUTER 23 Figura 2.10. Organizzazione di un computer tipica degli anni ’70 e ’80. Veniva usato un singolo sistema di comunicazione (diviso in tre BUS, uno per i dati, uno per gli indirizzi e uno per il controllo) e tutti i componenti funzionavano alla stessa frequenza di clock. Fino alla fine degli anni ’80 il BUS del computer era solamente uno e tutti i componenti funzionavano alla stessa frequenza di clock (Vedi figura 2.10). Con il tempo le CPU e le memorie diventavano sempre più veloci, cioè potevano funzionare a frequenze di clock sempre maggiori, al contrario degli altri componenti del computer. Per questo motivo si cominciò a suddividere il computer in diverse “zone”, che funzionavano a frequenze di clock diverse. In figura 2.11 è rappresentato uno schema a blocchi di un computer attuale. Si notano tre zone: la zona della memoria e della scheda video che hanno delle velocità di trasferimento di dati molto elevate e funzionano con una frequenza di clock simile a quella del generatore del clock; la zona della CPU e dei suoi componenti interni che funzionano a velocità molto più elevate e con una frequenza di clock aumentata di circa 10 volte; infine la zona che gestisce l’input/output che funziona più lentamente delle altre due. Il colore grigio rappresenta i vari BUS, il colore verde la CPU e la memoria e il colore blu le periferiche di input e di output. Si può vedere che nei computer odierni si usano molti BUS diversi. Il passaggio di dati nella scheda madre da un componente all’altro è comandato dalla CPU ma è messo in pratica da un particolare circuito integrato, chiamato chip- set, che possiamo immaginare come un ufficio postale velocissimo. Come si vede dalla figura è solitamente diviso in due zone, MCH e ICH. Quando, per esempio, la CPU vuole mandare dei dati alla RAM, li invia prima al chipset che poi li gira alla RAM facendoli passare per il BUS giusto. Il parametro fondamentale che distingue un BUS da un altro è la velocità di tra- sferimento dati. Più è alta meglio è. Questa grandezza si misura in byte al secondo, abbreviato B/s. Le velocità in gioco possono essere molto diverse a seconda del BUS. Nella tabella 2.2 una semplice lista dei BUS più usati. Una importante caratteristica di un BUS è l’essere o meno Plug&Play. Il Plug&Play (dall’inglese collega e usa) è un termine usato per descrivere la capacità di un BUS di facilitare il riconoscimento e il corretto indirizzamento di una periferica, senza dover
CAPITOLO 2. IL COMPUTER 24 Figura 2.11. Organizzazione tipica di un computer moderno. Il colore grigio rappresenta i vari BUS, il colore verde la CPU e la memoria e il colore blu le periferiche di input e di output. Si può vedere che nei computer odierni si usano molti BUS diversi. La CPU lavora a una frequenza di clock, la memoria e le schede PCI-express a una frequenza minore, infine tutti gli altri componenti a una frequenza ancora più bassa. Tabella 2.2. Elenco dei bus più usati Tipo di BUS BUS Generico Front Side Bus, Back Side Bus, PCI, PCIe, Intel QPI, HyperTransport Immagazzinamento dati DMA, PATA, USB MSC, FireWire, SATA, eSATA, SCSI Periferiche RS-232, USB, FireWire, External PCIe
CAPITOLO 2. IL COMPUTER 25 agire manualmente. In pratica significa che basta collegare la periferica al compu- ter e questa sarà configurata automaticamente e pronta all’uso senza l’intervento dell’utente. PCI Express, PCI, USB sono tutti BUS Plug&Play. Tra le porte esterne del computer ricordiamo la porta USB usata per connettere una moltitudine di periferiche e l’uscita video (VGA o DVI) che serve a collegare il monitor. Esistono molte altre porte, alcune quasi non più usate come la porta seriale o altre meno usate come la porta firewire o e-sata. Tra gli slot interni avremo sicuramente il socket per alloggiare la CPU, varie slot per alloggiare la RAM, vari connettori per collegare i cavi dei dati degli hard- disk e dei drive ottici e poi una serie di slot PCIe per connettere schede adibite a compiti specifici. Tra queste schede figura la scheda video e la scheda audio ma esistono migliaia di tipi di schede diverse. Basti pensare alle schede che servono al computer per poter controllare dei macchinari esterni. Per esempio una scheda che controlli il macchinario che fa le radiografie in un ospedale, la scheda che controlla il macchinario per il test delle centraline delle autovetture di un meccanico, la scheda che controlla un qualsiasi macchinario industriale e così via. Per completezza va detto che le schede di espansione di un computer, come per esempio la scheda audio e la scheda video, sono degli adattatori (adapter). La loro funzione è quella di tradurre i dati da una forma a un’altra. Per esempio un “adattore grafico” non è nient’altro che un modo per passare dai dati che rappresentano delle immagini ai segnali elettrici necessari a un monitor per rappresentare quelle imma- gini. In realtà le schede video, audio e anche altre non sono solo dei traduttori di se- gnali da una forma a un’altra. Molti di queste schede sono dotate di un co-processore che viene sfruttato dalla CPU per demandare dei calcoli specifici. Per esempio tut- ti sanno che le schede grafiche sono dotate di una o più GPU (Graphic Processing Unit), cioè dei processori studiati appositamente per fare calcoli di grafica. 2.9.1 Il firmware, le ROM e il BIOS Con il termine firmware si indica un programma che inizializza e prepara un cer- to dispositivo elettronico per le condizioni di normale funzionamento e lo gestisce secondo gli input esterni. Questo programma fa parte del componente elettronico stesso. Oggigiorno praticamente tutti i dispositivi elettronici sono dotati di un firm- ware. La lavatrice, la TV, un lettore MP3, una radiosveglia, sono tutti esempi di apparecchi dotati di firmware. I firmware sono contenuti all’interno di memorie non-volatili, cioè che man- tengono i dati memorizzati anche in assenza di alimentazione, e solitamente sono avviati non appena il dispositivo in cui si trovano viene alimentato. Le memorie che contengono il firmware sono chiamate ROM, cioè memorie di sola lettura (dall’in- glese Read Only Memory). Oggigiorno però, sebbene si continui a usare il termine ROM, le memorie usate per contenere il firmware di un dispositivo possono essere riscritte (per esempio per aggiornare il firmware!). Queste ROM riscrivibili sono delle EEPROM o delle memorie FLASH. Le memorie FLASH sono usate anche in molti altri ambiti e infatti ne riparleremo in seguito.
Puoi anche leggere