14.1 - Le origini dell’informatica
A. Turing e la macchina universale. J. Von Neumann e la macchina a registri.
Turing e Von Neumann possono essere considerati i veri e propri padri dell’informatica, intesa come scienza teorica che si occupa dell’elaborazione automatica dell’informazione.
Alan Turing e la macchina universale
Turing ideò la macchina teorica in grado di simulare il comportamento di un uomo intento ad eseguire un calcolo aritmetico.
La macchina di Turing è costituita da un nastro di lunghezza potenzialmente infinita, suddiviso in sezioni o celle, e da un’unità di lettura e scrittura in grado di leggere, scrivere o cancellare simboli nelle celle del nastro.
Il comportamento della macchina, che funziona eseguendo una successione di passi discreti, è determinato da un insieme finito di regole che prescrivono il simbolo da scrivere, lo stato da assumere e il verso di spostamento del nastro nel passo successivo.
Una macchina di Turing può eseguire calcoli di qualsiasi natura e complessità e può risolvere qualsiasi problema, a patto che questo possa essere risolto in modo algoritmico ed espresso in forma simbolica.
Inoltre, Turing dimostrò che è possibile progettare una macchina universale, in grado di imitare qualsiasi altra macchina di Turing.
Si arrivò, infine, alla formulazione della tesi di Church, la quale sostiene che l’insieme dei problemi effettivamente risolvibili con qualsivoglia metodo meccanico coincide con quello dei problemi risolvibili dalla macchina di Turing.
John Von Neumann e la macchina a registri
La macchina di Turing era un modello concettuale, che non era stato pensato per essere trasformato in una macchina reale. Però, il lavoro di Turing ha ispirato lo sviluppo di altri modelli di macchine tecnicamente più efficienti.
Tra questi c’è la macchina a registri a programma memorizzato, elaborata dal matematico ungherese von Neumann nella progettazione del primo vero computer digitale della storia.
La macchina di von Neumann è costituita da un’unità centrale di elaborazione (CPU), una memoria divisa in celle dotate di indirizzi e due nastri divisi in celle, uno di ingresso (input) e uno di uscita (output). L’unità di elaborazione è costituita, a sua volta, da: unità logico-aritmetica; un accumulatore; un’unità di controllo; un contatore delle istruzioni.
Anche quella di von Neumann è una macchina universale, in grado di eseguire, in linea di principio, qualsiasi processo algoritmico, posto che abbia a disposizione sufficienti risorse di tempo e memoria.
In questo modello si riconosce la struttura fisica di un computer (CPU, memoria RAM, disco rigido, tastiera, monitor).
Nella macchina di von Neumann sia i dati reali sia le istruzioni primitive sono codificate mediante i due simboli della notazione numerica binaria. Questa codifica è detta linguaggio macchina.
2.1-2.2 - Tipi di elaboratori: computer multiutente e PC
Supercomputer, mainframe, minicomputer, server, personal computer, terminali. Desktop e workstation, notebook, tablet, palmari, smartphone.
Tra gli elaboratori più potenti ci sono:
- Supercomputer = Sono gli elaboratori più potenti; hanno numerose applicazioni tecniche e scientifiche; hanno una notevole potenza di calcolo, infatti sono in grado di eseguire più di un trilione di operazioni al secondo; sono dotati di più di 7.000 processori capaci di eseguire altrettante operazioni contemporaneamente in base alla procedura detta “esecuzione parallela” (gli altri computer sono costituiti da un solo processore). Il computer più veloce al mondo è il Fujitsu K, che svolge circa 8 quadrilioni di operazioni al secondo.
- Mainframe o server = Utilizzati nelle grandi aziende per svolgere funzioni centralizzate come la gestione della contabilità e il controllo dei magazzini. Di norma occupano un’intera stanza e sono gestiti da personale specializzato.
- Minicomputer = Server meno potenti dei mainframe e possono avere diverse dimensioni. Sono spesso utilizzati nelle grandi aziende e dai centri di calcolo delle piccole organizzazioni pubbliche o private.
- Personal computer (PC) = Possono lavorare autonomamente o elaborare dati ricevuti da altri computer ai quali sono connessi, eseguendo calcoli, creando elenchi o rappresentando i dati in forma grafica.
- Terminali = Simili ai personal computer ma offrono prestazioni più limitate. Sono dotati soltanto di uno schermo, una tastiera e dei componenti elettronici necessari per comunicare con il computer a cui sono connessi e servono solo ad inviare e ricevere informazioni. Non essendo in grado di elaborare, vengono chiamati terminali stupidi ma, tuttavia, esistono dei terminali detti intelligenti che hanno una limitata capacità di elaborazione.
- Desktop e workstation = Il personal computer più diffuso è il desktop, progettato per essere posizionato permanentemente su una scrivania. Le workstation, invece, sono dei computer personali di alto rendimento e piccole dimensioni, utilizzate prevalentemente da scienziati, ingegneri e grafici.
- Notebook = Sono computer portatili leggeri e maneggevoli. In viaggio funzionano grazie a batterie ricaricabili, mentre in casa e in ufficio possono essere inseriti in un’unità fondamentale chiamata docking station che consente di aumentarne il rendimento.
- Tablet PC = Computer portatili che sono privi di tastiera fissa, o che sono dotati di tastiera che può scomparire dietro il monitor. Sono forniti di sensori touch-screen che consentono all’utente di interagire mediante piccole penne di plastica.
- Palmari e smartphone = Sono i più piccoli in assoluto. Avendo tastiere piccole, non sono molto maneggevoli da usare per scrivere testi o inserire grandi quantità di dati, ma risultano di grande utilità per molte altre applicazioni.
- PDA (Personal Digital Assistant) = Sono tra i modelli più piccoli, privi di tastiera per essere ancora più maneggevoli. Possono essere semplici organizer o unità più potenti.
2.3-2.4 - Le basi dell’informatica moderna: il sistema binario e i segnali digitali
Digitale e analogico, cifre binarie. Un esempio di codice digitale: il telegrafo. Il transistor. La legge di Moore.
Segnali analogici → Paragonabili a un’onda e trasmettono un ampio spettro di informazioni; ogni parte dell’onda trasporta informazioni. Le onde analogiche sono molto sensibili alle interferenze.
Segnali digitali → A differenza di quelli analogici, possono assumere solo due stati: acceso e spento. Per questo motivo, le interferenze (informazioni vaganti esterne al messaggio principale) non influiscono sui segnali digitali quanto su quelli analogici.
Il digitale presenta 2 vantaggi rispetto all’analogico: 1) meno interferenze; 2) maggior risoluzione (i segnali digitali, infatti, hanno una capacità di risoluzione infinita).
Le cifre binarie
Digitale deriva dall’inglese digit, cifra. Il sistema di numerazione decimale impiega 10 cifre diverse, da 0 a 9, che possono essere combinate tra loro per denotare numeri diversi.
Il computer e gli altri strumenti digitali, invece, rappresentano tutti i numeri con sistema binario, costituito da due sole cifre: 0 e 1.
Un esempio di codice digitale: il telegrafo
Samuel Morse agli inizi dell’800 inventò il telegrafo.
Per mezzo del telegrafo, battendo su un tasto vengono inviati lungo un cavo impulsi elettrici che, una volta giunti a destinazione, mettono in azione un dispositivo chiamato ricevitore acustico, il quale scatta ogni volta che arriva un impulso. Anche questo è un processo digitale in quanto il ricevitore può essere azionato o meno.
Per trasmettere un messaggio, però, è necessario un codice: il codice Morse. Questo codice è basato su scatti intervallati da pause lunghe o corte, che una volta stampati arrivano come linee o punti.
Legge di Moore
Con il continuo aumento del numero di transistor contenuti in un singolo chip, il costo per unità di potenza elaborativa si riduce sempre di più. Gordon Moore, uno dei fondatori della Intel, nel 1965 predisse che il numero di transistor contenuti in un chip sarebbe raddoppiato ogni anno e mezzo (previsione corretta).
2.5 - Le basi dell’informatica moderna: bit e byte
Bit e byte, le unità superiori al byte. Dal linguaggio umano al linguaggio dei computer. I codici in uso (ASCII, EBCDIC, UNICODE).
Bit e byte
L’unità minima del linguaggio digitale è il bit, termine che deriva dalla concatenazione dell’espressione inglese binary digit, cifra binaria. Un bit può assumere due stati: acceso (1) o spento (0). Per trasmettere una maggiore quantità di dati, si ricorre a un’unità più grande, il byte, che rappresenta l’unità fondamentale del linguaggio dei computer.
1 byte = 8 bit
Poiché ognuno degli 8 bit ha 2 stati possibili, un byte può rappresentare fino a 28 = 256 combinazioni.
Le unità superiori al bit
Poiché un byte può rappresentare soltanto un singolo carattere o comando, di norma vengono utilizzati i suoi multipli:
Dal linguaggio umano al linguaggio dei computer
Elaboratori: linguaggio binario.
Uomo: lingua e sistema decimale.
Affinché ci possa essere comunicazione, il computer deve convertire le informazioni che gli forniamo nel linguaggio binario che è in grado di interpretare, e poi deve riconvertire i risultati dell’elaborazione in un linguaggio a noi comprensibile.
Quando si digita un carattere o un numero sulla tastiera, l’elaboratore ricerca in una tabella il numero binario che lo rappresenta e durante l’elaborazione si serve di quel numero.
Al termine dell’elaborazione avviene il processo inverso: il computer ricerca nella tabella il carattere o il simbolo corrispondente al numero binario e lo visualizza per l’utente.
Le tabelle a cui fa ricorso l’elaboratore sono chiamate codici. Un codice è costituito da 256 caratteri perché gli 8 bit contenuti in un byte possono dare soltanto valori compresi tra 0 e 255 (il valore di ognuno degli 8 bit è determinato dalla posizione che occupa nel byte).
---Conversione binario/decimale e decimale/binario---
I codici in uso (ASCII, EBCDIC, UNICODE)
Il numero binario assegnato a un determinato carattere varia a seconda del codice utilizzato:
- ASCII - American Standard Code for Information Interchange (codice americano standard per l’interscambio di informazioni), è stato sviluppato dall’ANSI ed è il codice più diffuso tra i personal computer.
- EBCDIC - Extended Binary Coded Decimal Interchange Code (codice di interscambio esteso BCD) è il codice più usato nei mainframe e nei server più potenti.
- UNICODE - I due codici precedenti funzionano perfettamente per l’inglese ma non per altre lingue. Tale problema è stato risolto dall’Unicode che, dotato di oltre 96.000 caratteri, è in grado di rappresentare le principali lingue scritte del mondo.
2.6 - L’unità centrale di elaborazione: il microprocessore
La compatibilità tra microprocessori diversi, coprocessori e processori paralleli, i microprocessori incorporati.
L’unità centrale di elaborazione (CPU, Central Processing Unit) è il centro nevralgico del computer. La CPU è costituita da un microprocessore, il dispositivo che ha reso possibile la realizzazione dei microcomputer.
La compatibilità tra microprocessori diversi
I microprocessori sono dispositivi molto potenti. Le differenze tra i vari microprocessori sono molto rilevanti.
Tali discrepanze non comportano soltanto un diverso rendimento del microprocessore, ma determinano anche quali programmi possono essere eseguiti su un computer (della stessa famiglia o di diversa famiglia):
- I programmi scritti per essere eseguiti sui primi microprocessori della Intel, funzionano anche con i modelli più recenti della stessa famiglia;
- È possibile che un programma che sfrutta le innovazioni dell’ultimo microprocessore di una famiglia non funzioni correttamente con i modelli precedenti;
- I programmi scritti per un microprocessore della Intel di norma non possono essere eseguiti su un chip della Motorola (stessa cosa per Windows ed Apple).
Coprocessori e processori paralleli
Per velocizzare le prestazioni di un computer si possono aggiungere altri microprocessori, detti coprocessori, i quali, sotto il controllo della CPU, svolgono compiti specifici che di norma richiedono gran dispendio di tempo.
I coprocessori possono essere impiegati per accelerare i tempi di visualizzazione sullo schermo o per migliorare l’elaborazione delle immagini e dei suoni. I coprocessori sono un tipo particolare di processore parallelo.
I microprocessori incorporati
I microprocessori non sono utilizzati soltanto negli elaboratori, ma si trovano dappertutto (automobili, telefoni, ecc).
2.7 - L’unità centrale di elaborazione: i miglioramenti
Migliorare la capacità dati, la velocità di elaborazione, l’efficienza. La legge di Joy.
Esistono 3 modi per migliorare le prestazioni di un sistema:
- Migliorare la capacità dati → Maggiore è la quantità dati che un computer può trasmettere ed elaborare, migliori sono la sua velocità e la sua potenza. I primi PC potevano elaborare soltanto 8 bit alla volta; attualmente, tutti gli elaboratori di grandi dimensioni sono in grado di elaborare 128 bit alla volta.
- Migliorare la velocità di elaborazione → Altro modo per migliorare le prestazioni dell’elaboratore. I chip hanno un orologio incorporato, indicato con la parola clock, che ha la funzione di stabilire la velocità di tutte le operazioni svolte dal computer. Questa velocità viene misurata in megahertz (MHz, milioni di cicli al secondo). Più alta è la velocità del clock, maggiore è la velocità dell’elaboratore.
- Migliorare l’efficienza → Gli elaboratori sono programmati per svolgere vari compiti mediante una serie di istruzioni semplici, che nel loro complesso sono dette istruzioni del microprocessore. Un insieme di istruzioni molto grande consente al microprocessore di svolgere un’ampia varietà di funzioni. I microprocessori con un insieme complesso di istruzioni sono detti CISC (Complex Instruction Set Chips); mentre quelli con un insieme ridotto di istruzioni sono detti RISC (Reduced Instruction Set Chips).
La legge di Joy
Per gli elaboratori, ciò che conta è la velocità, tenendo presente il fatto che ci sono molti aspetti da considerare.
La velocità dei computer è misurata in istruzioni per secondo (IPS), poiché gli elaboratori riescono ad eseguire milioni di istruzioni per secondo, si utilizzano di norma i MIPS.
Nel 1984, William Joy, uno dei fondatori della Sun Mycrosystem, formulò l’ipotesi che le prestazioni degli elaboratori sarebbero aumentate secondo un indice prevedibile; così sviluppò la nota formula di Joy:
MIPS = 2(anno - 1984) → Andamento sempre crescente.
14.4 - L’interazione tra CPU e memoria
Il ciclo della macchina. I registri.
La CPU e la memoria interagiscono nell’esecuzione dei programmi e nell’elaborazione dei dati.
La CPU è costituita da:
- Unità di controllo = Esegue le istruzioni dei programmi, coordina le attività del microprocessore e controlla il flusso di istruzioni tra questo e la memoria;
- Unità logico-aritmetica = Effettua le operazioni aritmetiche e le operazioni logiche di raffronto tra due valori.
Il ciclo della macchina
Si divide in 4 fasi:
- Caricamento = L’unità di controllo preleva l’istruzione successiva presente in memoria e la immagazzina al suo interno in una piccola area di memorizzazione detta registro dell’istruzione.
- Decodifica = L’unità di controllo interpreta (decodifica) l’istruzione e trasferisce i dati a cui questa fa riferimento dalla memoria all’unità logico-aritmetica.
- Esecuzione = L’unità logico-aritmetica esegue l’operazione logica o aritmetica richiesta.
- Memorizzazione = I risultati delle operazioni logiche o aritmetiche svolte sono immagazzinati nella memoria centrale o in un registro dell’unità logico-aritmetica chiamata accumulatore.
I registri
I registri sono piccole aree di memorizzazione facenti parte del microprocessore stesso.
I microprocessori moderni hanno vari tipi di registri che rivestono funzioni diverse: tenere al corrente l’utente su quale sia la funzione in atto, immagazzinare i dati da elaborare, memorizzare i risultati dell’elaboratore, ecc.
2.8 - La memoria: ROM e RAM
La memoria ROM. La memoria RAM. Tipi di memoria, i moduli di memoria.
Per svolgere le sue funzioni un elaboratore deve avere una memoria dove archiviare i programmi e i dati necessari. Esistono diversi chip di memoria che si possono dividere in 2 categorie, entrambe molto veloci: ROM e RAM.
La memoria ROM (Read Only Memory - memoria di sola lettura)
La ROM può solo essere letta ma non è possibile cambiarla. Essendo statica e inalterabile è anche chiamata memoria non volatile. Il suo contenuto viene predisposto dalla casa produttrice al momento della fabbricazione e non può essere modificato dall’utente. Quindi, allo spegnimento dell’elaboratore non altera i dati in essa contenuti, che vengono richiamati automaticamente quando il computer viene riacceso. Questi dati sono costituiti di norma dai programmi e dalle istruzioni necessarie all’avvio (boot) della macchina, detti anche firmware.
La memoria RAM (Random Access Memory - memoria ad accesso casuale)
La RAM, detta anche memoria centrale, serve a memorizzare un vasto numero di programmi e dati di ogni tipo. Quando il computer viene spento, i dati e i programmi presenti in questa memoria vengono cancellati; la memoria centrale, infatti, è volatile. Il termine random (casuale) indica la modalità di reperimento e accesso ai dati in memoria.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Le risorse del Web - Appunti
-
Bentham - Le origini del positivismo giuridico
-
Sociologia - le origini del pensiero sociologico
-
Il Duecento e le origini