Introduzione all'informatica
Informatica e calcolatori
Il calcolatore si è diffuso, tra i vari campi, anche:
- Nell’editoria elettronica, in cui viene usato per composizione, impaginazione, scambio di informazioni e dati;
- Nella comunicazione visiva, in cui permette computer graphic per l’elaborazione delle immagini e spot pubblicitari;
- Nella comunicazione interpersonale, grazie alle reti telematiche che formano il cyberspazio e danno vita alla cosiddetta società dell’informazione.
La rappresentazione delle informazioni
Nella rappresentazione delle informazioni negli strumenti di natura elettronica, si utilizza un codice binario o digitale, ossia un linguaggio costituito dai due soli simboli 0 e 1. L’entità minima di informazione è il bit (binary digit – cifra binaria), grazie a cui si rappresentano due informazioni, ognuna delle quali viene fatta corrispondere a 0 o 1, attraverso il processo detto codifica dell’informazione. Con un bit si possono codificare 2 informazioni, con 3 bit 23. Una aggregazione di 8 bit prende il nome di byte.
L’insieme dei simboli dell’alfabeto anglosassone (inclusi numeri, punteggiatura ecc.) può essere codificato in 7 bit. Il metodo di codifica più diffuso è il codice ASCII (American Standard Code for Information Interchange). Esso usa 8 bit, il primo dei quali è sempre 0, per differenziarsi dal codice ASCII esteso, in cui si utilizza 1 come primo bit per codificare i simboli speciali.
Il consorzio UNICODE, formato dai maggiori produttori di hardware e software ha definito un nuovo codice di 1 bit per codificare tutti gli alfabeti. Il sistema di numerazione decimale utilizza una notazione posizionale basata sull’uso delle potenze del 10 (rappresentazione in base 10: es. 234 = 4 x 100 + 3 x 101 + 2 x 102).
Date N cifre binarie è possibile rappresentare i numeri da 0 a 2N-1: se si deve rappresentare un numero per cui non si hanno abbastanza cifre si parla di overflow. Normalmente negli elaboratori moderni di utilizzano 4 byte. Per rappresentare numeri negativi si utilizza il complemento a due: si destina un bit per rappresentare il segno del numero e gli altri per il valore assoluto.
I numeri con la virgola vanno invece ricondotti a una rappresentazione combinata di numeri interi, ossia un numero intero (detto mantissa) moltiplicato per una potenza negativa di 10 (12,5 = 125 x 10-1).
Per rappresentare numeri grandi si ricorre spesso alla rappresentazione esadecimale (in base 16). Per rappresentare un’immagine in bianco e nero in modo digitale, essa va suddivisa in una griglia con righe e colonne a distanza costante, di cui ogni quadratino derivante prende il nome di pixel (picture element), codificato con 0 o 1 a seconda del colore predominante.
Nella codifica si otterrà un’approssimazione della figura originaria, che segue le linee della griglia. Essa sarà quindi più efficace all’aumentare del numero di pixel, ossia della sua risoluzione. Fondamentali sono le codifiche note con gli acronimi RGB e CMY, usati rispettivamente in ambito video e fotografico, ed in cui i colori si ottengono come combinazioni dei colori base (Red, Green, Blue e Cyan, Magenta, Yellow) con 3 numeri che ne rappresentano l’intensità.
La rappresentazione di un’immagine mediante codifica dei pixel prende il nome di codifica bitmap e richiede notevole spazio. Esistono tecniche di compressione delle informazioni che riducono lo spazio occupato da un’immagine, rinunciando alla fedeltà della rappresentazione. Gli standard per la compressione delle immagini si dividono in:
- Compressione senza perdita di dati (lossless compression), che codifica i pixel dello stesso colore in modo compatto e limitato;
- Compressione con perdita di dati (lossy compression), che comprime l’immagine fino a 10 volte di più.
I principali formati sono:
- BMP (bitmap), in cui i dati dell’immagine vengono impacchettati in blocchi da 4 byte, comprensivi di header contenente le informazioni per una corretta decodifica dell’immagine, che occupa però molto spazio su disco;
- GIF (Graphic Interchange Format), che all’interno dell’header specifica di quale versione si tratta e, quindi, se l’immagine è statica o animata;
- JPEG (Joint Photographic Experts Group), che rappresenta invece lo standard internazionale, che decompone l’immagine in blocchi di pixel ed è adatto per immagini ad alta risoluzione e fotografia digitale;
- PNG (Portable Network Graphics), utile per la manipolazione grafica, ma con perdita di informazioni nella compressione;
- TIFF, di proprietà Windows, strutturato a blocchi detti tag, che indicano informazioni come tipo di compressione, orientamento dell’immagine, larghezza, altezza, ecc.
Molti programmi permettono di convertire le immagini in altri formati, e possono essere quindi utili in quanto ogni programma ha formati preferenziali e compatibili. Le immagini in movimento vengono memorizzate come sequenze di fotogrammi: maggiore è il numero di fotogrammi nell’unità di tempo, ossia la frequenza dei fotogrammi, migliore apparirà la qualità del movimento.
Non essendovi spesso molta differenza tra due fotogrammi consecutivi, per ridurre lo spazio è sufficiente individuare le differenze rispetto al fotogramma memorizzato in modo completo. I vari formati sono quindi:
- AVI (Audio Video Interleaved), creato da Microsoft e utilizzato per brevi sequenze video come standard Windows, in abbinamento col formato WAVE per la gestione del suono.
- MOV (anche conosciuto come QT o QuickTime) è stato invece sviluppato dalla Apple per memorizzare diversi tipi di formati, da immagini a suoni.
- MPEG (Moving Picture Experts Group) è il più importante formato video, di tipo predittivo, ossia che ipotizza le variazioni dei fotogrammi.
Un CODEC (Compress or Decompress) è invece un software in grado di codificare un flusso di dati. I principali, oltre a MPEG, sono:
- DIVX, molto usato perché consente di scaricare in rete filmati di media dimensione.
- MOTION JPEG e successive versioni non causano grosse perdite di qualità video su computer piuttosto potenti.
- Il formato Indeo di Intel ha infine una buona compatibilità con Internet.
Per modificare i colori di un’immagine, ogni pixel etichettato come il colore reale dovranno essere sostituiti con la stringa di bit corrispondente al colore desiderato. Un esempio di applicazione televisiva è il chroma-key, che neutralizza le parti di un certo colore e consente quindi di combinare più immagini (reali e/o artificiali).
La fotocamera digitale utilizza, al posto della pellicola fotosensibile, un sensore che cattura l’immagine e trasformarla in un segnale elettrico di tipo analogico. La luce ricade su un chip fotosensibile, composto da singole fotocellule che producono i singoli punti dell’immagine, ossia i pixel. L’immagine acquisita dal sensore viene poi convertita in dati digitali.
Le singole cellule non percepiscono i colori (ma solo la luminosità), che entrano in gioco grazie a un filtro cromatico che fa in modo che alcune cellule rilevino alcuni colori. Generalmente le immagini sono poi compresse in JPEG. Un suono è rappresentato da un’onda che descrive la variazione della pressione dello stimolo elettrico corrispondente. Occorre anche qui misurare il valore dell’onda ad intervalli costanti di tempo. Le schede per la gestione dell’audio utilizzano una frequenza di campionamento 10.000-40.000 Hz.
I principali formati di codifica sono:
- WAVE per Windows e l’analogo AIFF (Audio Interchange File Format) per Mac, che occupa poco spazio ed è adatto per audio brevi.
- MP3 (MPEG Audio Layer 3) è invece lo standard per i file musicali di Internet.
- MIDI (Music Instrument Digital Interface) utilizza invece un linguaggio testuale.
Per musica digitale si intende una composizione musicale convertita in segnale digitale, che si realizza prelevando dal microfono il segnale audio e trasformandolo nell’equivalente segnale elettrico, inviato a un convertitore analogico-digitale, che genera i dati digitali. Parte delle frequenze armoniche vanno perse, a meno che non si utilizzino frequenze di campionamento multiple. Come misura della velocità di trasmissione si usa il bit rate, ossia la quantità di informazione trasferita in un secondo, direttamente proporzionale all’informazione che è possibile includere in un file e quindi la sua qualità.
Per risolvere il problema della strutturazione dei dati sono stati introdotti i concetti di:
- File (archivio), che permette di aggregare informazioni elementari in strutture complesse, ossia in sequenze di
- Record, costituiti da un insieme correlato di
- Campi, insieme di byte che codificano singole informazioni numeriche, alfabetiche, immagini o suoni.
I record possono avere lunghezza:
- Costante, se formati dallo stesso numero di byte, ossia da campi della stessa dimensione;
- Variabile, se la lunghezza cambia in funzione delle informazioni che devono contenere. In essi, sono necessari caratteri nella sequenza di byte, che separino i record tra loro e i campi nei record.
I dati memorizzati in un file devono poter essere letti e modificati, quindi accessibili. L’accesso sequenziale è applicabile a qualunque tipo di file:
- Nel caso di file con record a dimensione costante, si avanza di un byte prestabilito;
- In quelli a dimensione variabile, si cercano i simboli di separazione tra record e campi.
I file ad accesso diretto permettono invece di poter visualizzare un campo senza considerare i precedenti, una volta conosciuto il punto del file in cui inizia tale record, che prende il nome di indirizzo del record/campo.
- Nei record con lunghezza costante, si può calcolare il punto di inizio di ogni record.
- In quelli a lunghezza variabile, è impossibile calcolare l’indirizzo del record.
L’accesso con chiave si realizza mantenendo le informazioni sugli indirizzi fuori dal file, individuando un campo chiave presente ed univoco in tutti i record. A quel punto si costruisce il file delle chiavi o tabella delle chiavi, con record che contengono un campo per il valore della chiave ed uno per l’indirizzo del record nel file delle informazioni originario.
Se non esiste un campo che assume valori diversi in tutti i record, se ne seleziona una coppia. Si può accedere a una chiave se si conosce la posizione all’interno della tabella, oppure ricercandone il valore in essa. È quindi indispensabile mantenere le chiavi ordinate usando una tecnica nota come ricerca binaria, che individua l’elemento di mezzo della tabella (k’) e lo compara a k (il valore cercato), per capirne la posizione. Oppure si utilizza la funzione di hash, applicata a tutti i valori del campo chiave ed il cui risultato determina la posizione in cui sarà inserita la chiave nella tabella. Solitamente si utilizza il resto della divisione della chiave per il numero di righe della tabella.
Il codice a barre è un esempio di chiave che permette di accedere a file in cui si trova la descrizione del prodotto. Grazie ad essi, si realizza una procedura automatica che ordina i prodotti quando le quantità in magazzino scendono sotto la soglia prefissata.
Architettura hardware degli elaboratori
Per studiare l’architettura fisica di un elaboratore se ne esaminano le componenti hardware, che possono essere essenziali oppure inserite in upgrade successivi all’acquisto. Ogni elaboratore è chiuso in un contenitore (case) che garantisce la circolazione dell’aria di raffreddamento. La scheda madre (motherboard) ospita i circuiti integrati (chip), collegati da sottili fili in rame (bus). La tecnologia dei circuiti integrati impiega componenti in grado di fornire le funzionalità di base dell’elaboratore.
Processore e memoria principale sono le due componenti fondamentali, dette unità centrale dell’elaboratore. La memoria principale/centrale è formata da componenti elementari che possono trovarsi in due stati diversi (legati alla carica elettrica) che corrispondono ai valori del bit. 8 bit formano una cella di memoria: la memoria è quindi una sequenza di celle, contraddistinte dall’indirizzo che ne denota la pozione nella sequenza attraverso numeri interi.
Un insieme da 16 a 64 bit è detto parola, da 1024 byte si parla di Kilobyte. 1024 ne formano un Megabyte e a seguire Gigabyte, Terabyte e Petabyte. Nella motherboard esistono alloggiamenti detti slot in cui si possono inserire componenti di memoria (schede). La memoria principale è detta RAM (Random Access Memory), per indicare che è possibile accedere alle celle nello stesso tempo. Il processore può leggere e scrivere le informazioni nelle celle specificandone l’indirizzo. Il numero di bit utilizzati per scriverlo o l’insieme di celle indirizzabili è detto spazio di indirizzamento. Il byte è l’entità minima indirizzabile, ma una parola di memoria è solitamente un aggregato di 2 o 4 byte.
Il tempo di accesso è il tempo necessario per leggere o scrivere un’informazione su una cella, ossia il tempo che intercorre tra il momento in cui il processore specifica l’indirizzo della cella su cui si vuole scrivere e il momento in cui il dato è disponibile in memoria. Quest’ultima può essere di diversa famiglia:
- SRAM (statiche), con costi elevati, tempi di accesso rapidi e generalmente usate per la memoria cache;
- DRAM (dinamiche), utilizzate per la memoria principale degli elaboratori;
- VRAM (video), usate dagli adattatori per gestire le immagini.
La memoria principale è volatile, perde le informazioni se viene tolta l’alimentazione tecnica: occorrono quindi altri supporti di memoria che le rendano permanenti.
Il processore elabora le informazioni nella memoria principale, ed è quindi chiamato CPU (Central Processing Unit). Le sequenze di istruzioni dette programmi. Le istruzioni macchina corrispondono invece a operazioni elementari scritte in linguaggio macchina, che messe insieme vanno a costituire i programmi in linguaggio macchina, eseguiti dal processore, caricando programmi e dati nella memoria principale. Le componenti nel processore sono collegate tra loro tramite “fili”, la cui ampiezza determina la quantità di informazione trasferita e la velocità di trasferimento:
- Bus dati che trasportano le informazioni da e verso il processore;
- Bus indirizzi, che trasportano gli indirizzi dei dati da leggere o scrivere;
- Bus di controllo, che trasportano i segnali di controllo.
L’Unità di Controllo (UC) coordina le attività svolte nel processore in modo ciclico: ad ogni ciclo corrisponde idealmente l’esecuzione di un’istruzione macchina. La loro frequenza è scandita dal clock, che genera impulsi con tempo costante. La frequenza del clock determina la velocità di elaborazione di un processore. Esso contiene i registri, unità di memoria piccole e veloci, usate per mantenere le informazioni di immediata necessità:
- I registri speciali sono usati dall’unità di controllo per scopi particolari (es.: i registri di comunicazione con la memoria);
- I registri generali o aritmetici, sono usati per contenere risultati parziali durante l’elaborazione;
- Per conoscere l’indirizzo della cella di memoria in cui si trova la prossima istruzione si usa il Program Counter (PC), registro che ne memorizza gli indirizzi ed indica il punto in cui il processore è arrivato nell’esecuzione;
- Il Registro Istruzioni (RI) contiene l’istruzione in esecuzione, decodificata dalla UC;
- Il Registro di Stato (PS) contiene informazioni sullo stato di esecuzione del processore e segnala eventuali errori;
- Vi sono poi registri utilizzati come memorie temporanee per svolgere operazioni matematiche.
L’Unità Aritmetico-Logica (ALU) legge dati dei registri generali, esegue operazioni e memorizza i risultati, grazie a un insieme di circuiti a cui i processori aggiungono oggi un modulo integrato nel processore chiamato FPU (Floating Point Unit) o NPU (Numerical Processing Unit), ovvero un coprocessore matematico. L’unità di gestione della memoria (MMU), invece, indirizza da e verso la memoria.
Ogni istruzione macchina è distinta da un nome e da argomenti che specificano su quali dati l’istruzione deve operare. Tramite i metodi di indirizzamento, è possibile specificare gli indirizzi di memoria in cui si trovano tali dati. Le istruzioni possono essere:
- Di lettura della memoria, con un argomento che specifica la cella di memoria da leggere e il registro in cui va scritta l’informazione;
- Di scrittura in memoria;
- Aritmetiche, con due argomenti per gli operandi ed uno che indica il registro in cui va scritto il risultato;
- Logiche, con operandi da confrontare;
- Di spostamento, da una cella di memoria ad un’altra;
- Di salto, per controllare il flusso dell’esecuzione delle istruzioni e specificare la prossima da eseguire.
Per eseguire le operazioni, processore e memoria comunicano attraverso 3 registri:
- RIM (Registro Indirizzi Memoria) con cui il processore specifica l’indirizzo della cella su cui deve operare, a cui è collegato attraverso circuiti di decodifica;
- RDM (Registro Dati Memoria), che contiene l’informazione letta dalla memoria o da scrivere in essa;
- RC (Registro di Controllo) con cui il processore specifica l’operazione da eseguire e segnala eventuali errori.
-
Riassunto esame informatica, prof Console, libro consigliato Introduzione all'informatica, Console
-
Riassunto esame Informatica, prof. Console, libro consigliato Manuale di Informatica
-
Riassunto esame storia pedagogia, prof. Pironi, libro consigliato Cultura pedagogica, Avalle
-
Riassunto esame Teoria e Tecniche dei Test, prof Chiesi, libro consigliato Teorie e tecniche dei test, Picone, Pizz…