Fondamenti di Informatica L-A - Fondamenti di Informatica T

Fondamenti di Informatica T
[A-K]
Prof. Jorge E. Fernandez
A.A. 2013-2014
Fondamenti di Informatica T [A-K] 2013-2014
Programma del corso
• Introduzione alla programmazione e
architettura del sistema di calcolo
• Utilizzo in modalità console del sistema
operativo Windows (cenni di Linux).
• Programmazione di alto livello:
o Il linguaggio FORTRAN 90
o Cenni di C++
• Calcolo numerico
Fondamenti di Informatica T [A-K] 2013-2014
Informazioni varie
Ricevimento Prof. Fernandez
martedì 14-17
presso Laboratorio di Montecuccolino
via dei Colli 16 (Autobus 52)
Tel: 051/2087718
Testi
• S.J.Chapman. Fortran 90/95 – Guida alla
programmazione 2/ed McGraw-Hill
• Dispense del docente
Testo integrativo (calcolo numerico)
• G. Monegato. Fondamenti di Calcolo Numerico.
Levrotto e Bella. Torino
Visitate il sito: http://fimecc.ing.unibo.it
Fondamenti di Informatica T [A-K] 2013-2014
Account per i laboratori
http://ccib.ing.unibo.it/content/account
Fondamenti di Informatica T [A-K] 2013-2014
Cos’è un calcolatore?
Strumento usato per elaborare delle informazioni
Caratteristiche:
• Elettronico - circuiti elettronici
• Binario – informazione codificata seguendo
l’algebra binaria
• Capace di immagazzinare programmi e dati
• General-purpose – può trattare molteplici tipi di
problemi
Fondamenti di Informatica T [A-K] 2013-2014
Cenni storici sullo sviluppo del
calcolatore automatico
• 1944: Eniac – Univ. della Pensylvania (USA)
19000 valvole, peso 30 ton, potenza 200 KW
• 1974: Altair MITS (Intel 8800)
sistema operativo: Basic
• 1976: Apple I; 1977: Apple II
• 1981: PC originali IBM (chip Intel 8088)
– Informazioni dettagliate sulla costruzione
– Sistema operativo Microsoft
– Contratto non esclusivo con Microsoft
Vedi sito: www.computermuseum.it
Fondamenti di Informatica T [A-K] 2013-2014
ENIAC: si programmava intervenendo
manualmente su interruttori e
connessioni dei cavi
Fondamenti di Informatica T [A-K] 2013-2014
Altair MITS 8800
Apple I – MOS 6502
Fondamenti di Informatica T [A-K] 2013-2014
Alcuni tipi di calcolatore
• Desktop PC
• Notebook: calcolatore portatile
• Ultrabook: ultraleggeri, memoria stato solido, batteria lunga
durata
• Convertibile: può essere usato anche come tablet
• NetPC: calcolatore super-portatile, con (in genere) basse
prestazione (ideato per navigare in internet)
• Workstation: ha le caratteristiche di un PC ma è dotato di
risorse di alte prestazioni
• Mainframe: sistema di grandi dimensioni che mette a
disposizione degli utenti la sua memoria centrale e le sue
enormi memorie di massa. Gli utenti accedono al mainframe
tramite terminali.
• Macchine parallele
• Supercomputer
Fondamenti di Informatica T [A-K] 2013-2014
Componenti di un elaboratore
elettronico
• HARDWARE: (componenti fisici del sistema)
insieme di tutti i circuiti delle macchine e dei
componenti elettronici, elettrici e meccanici di un
sistema elaboratore
• SOFTWARE: insieme dei programmi operanti sulla
macchina, sufficienti a coprire tutte le esigenze di
elaborazione
Fondamenti di Informatica T [A-K] 2013-2014
Architettura di riferimento dei calcolatori
• Modello di Von Neumann
• Funzioni che il calcolatore deve svolgere
– Input
– Output
– Elaborazione
– Conservazione delle informazioni
– Controllo

Ipotesi:
– singolo processore
– istruzioni sequenziali
Fondamenti di Informatica T [A-K] 2013-2014
Architettura dal punto di vista delle
funzioni “esterne”
• CPU
Elaborazione dei dati
• Memoria
dati
Immagazzinamento dei
• Dispositivi input/output
Trasferimento dei dati
Fondamenti di Informatica T [A-K] 2013-2014
Macchina base di Von Neumann
I, D
UNITA’
DI
INPUT
MEMORIA
Dati
UNITA’ DI
OUTPUT
D
Istruzioni
CPU
UNITA’
ARITMETICO
LOGICA
Controllo
UNITA’ DI
CONTROLLO
Controllo
Caratteristica importante: separazione controllo-calcolo
Fondamenti di Informatica T [A-K] 2013-2014
Clock


il clock e' utilizzato come segnale di base per sincronizzare le attività
all'interno del calcolatore
Si tratta di un segnale periodico fisso caratterizzato da periodo (o ciclo) T e
frequenza f (f = 1/T)

Hertz e' l'unita' di misura della frequenza

Ogni istruzione di CPU e' eseguita in un numero finito di cicli di clock.

Il ciclo di clock e' una importante figura di merito di un calcolatore
T
Fondamenti di Informatica T [A-K] 2013-2014
Struttura del calcolatore
BUS
UNITA’ CENTRALE DI
ELABORAZIONE
(CPU)
MEMORIA
PRINCIPALE
DISPOSITIVI DI
INGRESSO/USCITA
BUS = interfaccia standard di trasferimento delle informazioni
Il bus è il mezzo fisico che permette a periferiche e componenti del
sistema di dialogare tra loro
Possiamo avere diversi tipi di bus (degli indirizzi, dei dati, di controllo)
E’ stato necessario definire uno standard per i BUS
Fondamenti di Informatica T [A-K] 2013-2014
L’interconnessione Bus
CPU
ALU
MEMORIA
CU
BUS
UNITA’ DI
INPUT
UNITA’ DI
OUTPUT
UNITA’ DI I/O
CPU svincolata dagli altri dispositivi
Ogni dispositivo aggiuntivo interagisce autonomamente con il resto del
sistema mediante un controllore connesso al bus di sistema
=> si possono aggiungere nuovi dispositivi senza modificare quelli esistenti
Fondamenti di Informatica T [A-K] 2013-2014
Alcune definizioni…
Bit (binary digit): la più piccola unità di informazione in una
macchina.
“Scatola” che può contenere “1” o “0”
Unità di misura della memoria: multipli del byte
1 byte = 8 bit
Ogni byte possiede un indirizzo, cioè un numero che indica dove
è memorizzato nella memoria principale
Byte = la più piccola quantità di memoria accessibile in quanto
possiede un proprio indirizzo
word = sequenza di byte consecutivi nella memoria.
Contiene tanti bit quanti un determinato calcolatore ne può
elaborare interamente in un unico momento (32 o 64 bit)
Fondamenti di Informatica T [A-K] 2013-2014
Unità di misura della memoria
KB = kilo byte
= 1024 byte
 103 byte
MB = mega byte
= 1024*1024 byte
= 1 048 576 byte
 106 byte
GB = giga byte
= 1024 MB
= 1 073 741 824 byte
 109 byte
TB = tera byte
 1012 byte
Fondamenti di Informatica T [A-K] 2013-2014
Memoria
• Memoria principale (memoria centrale o primaria)
Capacità: Mbyte (smartphone) o Gbyte (PC) ; velocità: 10-20 ns
• Memoria secondaria o di massa (disco ottico, magnetico o
stato solido (SSD) )
• Memorie di transito (registri, memoria cache)
Cache: memoria molto veloce, spesso interna alla
CPU, utilizzata per memorizzare istruzioni e dati
durante l’esecuzione. Diversi livelli secondo la velocità.
Fondamenti di Informatica T [A-K] 2013-2014
Gerarchia delle memorie
nanosec
word
Registri
Tempo di accesso
Capacità
Memoria cache
Memoria principale
Stato solido SSD
Dischi magnetici
Nastri
Dischi ottici
Gbyte
sec
Fondamenti di Informatica T [A-K] 2013-2014
Gerarchia delle memorie
Livello
Dimensioni
Tempo di
accesso
Registri
< 1 KB
< 0.5 ns
Cache
< 2 MB
ns
RAM
< 4 GB
< 10 ns
SSD
< 512 GB
< 100 micros
Hard disk
> 128 GB
micros
Dischi ottici
650 MB – 17 GB
micros
millis
Nastri
> 10 GB
100 millis
Fondamenti di Informatica T [A-K] 2013-2014
Memoria di massa

Hard disk
Uno o più dischi magnetici che ruotano ad alta velocità e dotati di testine
lettura/scrittura. Capacità in continua crescita

Chiave USB
Memoria flash (semiconduttore) di dimensioni contenute che comunica con il
PC grazie allo standard di comunicazione USB (= Universal Serial Bus).
Velocita' di trasferimento : 12 Mbit/s (USB 1.1); 480 Mbit/s (USB 2.0);
4.8 Gbit/s (USB 3.0)

SSD (Solid State Drive)
Memoria di massa a semiconduttore, utilizzata anche per sostituire i dischi
magnetici. Dimensioni in continua crescita (≈ 512 GB)

Floppy disk
Supporto magnetico di tipo rimovibile. Capacità: 1,44 MB
Fondamenti di Informatica T [A-K] 2013-2014
Memorie di Massa

Dischi ottici
a sola lettura

CD
~ 650 MB

DVD +R/-R
~ 4 GB (single layer), ~ 8 GB (double layer)

BLU-RAY
~25-50 GB
a lettura/scrittura

CD RW

DVD RW
Fondamenti di Informatica T [A-K] 2013-2014
Hard disk
• uno o più dischi (piatti) in alluminio o
vetro, rivestiti di materiale
ferromagnetico in rapida rotazione
(10000-15000 giri al minuto)
• su ogni lato e’ presente una testina (2
testine per disco) in grado di
leggere/scrivere la superficie sottostante
• ogni piatto e’ suddiviso in anelli
concentrici tracce e in “fette” detti settori
• si chiama cilindro l’insieme delle tracce
alla stessa distanza dal centro ma su
dischi diversi
• si chiama formattazione l’operazione in
cui si organizza la superficie del disco
• capacita’ da 40GB a 2TB
Struttura di un piatto:
A) Traccia
B) Settore
C) Settore di una traccia
D) Cluster, insieme di settori
contigui
Fondamenti di Informatica T [A-K] 2013-2014
Hard disk – dischi multipli
• Per aumentare la capacita' del
disco si possono usare piu'
superfici sovrapposte
Direzione di
rotazione
Movimento
braccio di
accesso
• Ogni superficie ha una testina
di lettura/scrittura
• Le testine sono rigidamente
vincolare allo stesso braccio
Superficie 1
Testine di
lettura/scrittura
Superficie 0
• Cilindro: insieme delle tracce
sulla stessa verticale
Ogni blocco e' univocamente
identificato dalla tripla:
<Superficie, Cilindro, Settore>
Fondamenti di Informatica T [A-K] 2013-2014
MEMORIA PRINCIPALE: RAM e ROM
Supporto di memorizzazione alla CPU: tutte le informazioni
da elaborare e tutti i risultati vengono sempre presi e/o inviati
alla memoria principale
RAM (Random Access Memory)
ROM (Read Only Memory)
• Accesso in lettura/scrittura ad
accesso diretto (il tempo di
accesso al singolo contenitore
di memoria è indipendente
dalla sua posizione)
• Memorie a sola lettura,
programmabili una sola volta
• Il contenuto della memoria
RAM è volatile: al cessare
dell’alimentazione si perde
l’informazione contenuta
• Il contenuto della ROM è
permanente (non si perde al
cessare dell’alimentazione)
• Contiene informazioni vitali per
la fase di avvio del computer
(Basic Input Output System =
BIOS)
Fondamenti di Informatica T [A-K] 2013-2014
RAM (Random Access Memory)
Esempio: memoria di 16 Mbyte
0
1
2
3
4
5
6
0 1 0 1 1 0 1 1
word
Indirizzo: stringa di K bit contenente
il numero di ordine della singola unità
di memoria
Ogni cella di memoria ha un suo indirizzo
che ne rappresenta la posizione.
16277213
16277214
16277215
Spazio di indirizzamento fisico:
l’insieme dei 2k indirizzi
(k = larghezza del BUS indirizzi di memoria)
Fondamenti di Informatica T [A-K] 2013-2014
Memoria cache



Memoria intermedia tra RAM e registri
Capacita’ da 64 KB a 8 MB (piu’ alta e’ piu’ e’
costosa)
Permette di memorizzare una parte del programma
in fase di esecuzione senza dover accedere alla
RAM

Organizzata per livelli (L1, L2, L3, ..., Ln)

dimensione aumenta da L1 a Ln

Velocità diminuisce da L1 a Ln

Puo’ essere interna o esterna al processore
Fondamenti di Informatica T [A-K] 2013-2014
Gerarchia della cache
Memoria
principale
Cache
L3
Cache
L2
Fondamenti di Informatica T [A-K] 2013-2014
L1
L1
CPU
Memoria cache



Quando la CPU ha bisogno di un dato cerca questo in
L1: se qui e' presente lo carica in un registro (L1
cache hit), altrimenti (L1 cache miss) lo cerca in L2 …
cache miss: penalità (in cicli di clock) nel caricare il
dato nei registri (può causare uno stallo se il
processore non ha niente altro da eseguire)
Perche' conviene: perche' si sfruttano i principi di
localita' spaziale e temporale
Fondamenti di Informatica T [A-K] 2013-2014
CPU (CENTRAL PROCESSING
UNIT ovvero PROCESSORE)
Nucleo di un calcolatore preposto alla elaborazione dei dati
Unità aritmetico-logica (ALU) + Unità di controllo (CU) +
alcuni registri + cache memory
Clock = orologio interno che regola tutte le operazioni
generando impulsi regolari ad un certa frequenza (->
coordinamento tra le varie attività della CPU)
CPU cycle time: tempo richiesto dalla più breve
microperazione della CPU
CPU clock rate (frequenza della CPU): reciproco del cycle
time [MHz], rappresenta una figura di merito della CPU
Fondamenti di Informatica T [A-K] 2013-2014
Componenti CPU
MEMORIA PRINCIPALE
BUS
DATI
MAR
MDR
registri
BUS
CONTROLLO
BUS
INDIRIZZI
ALU
PC
IR
Fondamenti di Informatica T [A-K] 2013-2014
CU
Componenti CPU: Registri

Piccole unita’ di memoria (qualche byte), molto veloci,
che memorizzano i dati e le istruzioni che sono in fase
di elaborazione

Sono presenti in numero limitato (qualche decina)

Si dividono in speciali e generali

Registri speciali:

Program Counter (PC)

Instruction Register (IC)

Registro indirizzi di memoria (MAR)

Registro dati di memoria (MDR)
Fondamenti di Informatica T [A-K] 2013-2014
Componenti CPU: Registri
speciali
• Program Counter (PC): contiene l’indirizzo della
prossima istruzione da eseguire
• Instruction Register (IC): contiene l’istruzione in
esecuzione; la CU legge tale istruzione e la esegue
• Registro indirizzi di memoria (MAR): contiene
l’indirizzo della cella di memoria da cui andare a
leggere o scrivere
• Registro dati di memoria (MDR): contiene il dato da
leggere o da scrivere in memoria
Fondamenti di Informatica T [A-K] 2013-2014
Registri speciali: Program counter
(PC)



contiene l’indirizzo della prossima istruzione
da eseguire
all’inizio dell’esecuzione di un programma
viene caricato con l’indirizzo della prima
istruzione di quel programma
quando l'istruzione viene eseguita, il PC viene
incrementato per contenere l’indirizzo
dell'istruzione successiva
Fondamenti di Informatica T [A-K] 2013-2014
Registri generali


in numero limitato (8, 16, 24)
sono usati come memorie temporanee
per contenere gli operandi delle
istruzioni e i risultati parziali durante
l’esecuzione delle istruzioni
Fondamenti di Informatica T [A-K] 2013-2014
Fetch-decode-execute
CICLO fetch-decode-execute
Si accede all'istruzione che corrisponde
all'indirizzo contenuto nel PC
L’istruzione è copiata nel registro delle istruzioni
(Current Instruction Register – IR)
Incremento del PC (contiene l’indirizzo
dell’istruzione successiva a quella in esecuzione)
Esecuzione dell’istruzione caricata
Fondamenti di Informatica T [A-K] 2013-2014
UNITA' ARITMETICO LOGICA (ALU)



Esegue calcoli e operazioni logiche con i dati
presenti nella memoria
preleva gli operandi e deposita il risultato delle
operazioni (da/in i registri generali)
A volte oltre alla ALU possiamo avere anche
un co-processore matematico
Fondamenti di Informatica T [A-K] 2013-2014
Cosa fa la UC?
Esempio: addizione fra due numeri
1.Preleva la prossima istruzione (usando
l'indirizzo presente nel) PC e la copia nel
IR (-> fetch)
2.Il PC viene incrementato all'istruzione
successiva
X=A+B
3.Decodifica l’istruzione: somma
(-> decode)
4.Determina dove si trovano i due
operandi, li preleva e li trasferisce nei
registri della ALU
5.Segnala all’ALU di eseguire la somma e
di porre il risultato in un registro
6.Trasferisce il risultato alla memoria
centrale
Fondamenti di Informatica T [A-K] 2013-2014
execute
Limite alla velocità dei componenenti
GHz)
Fondamenti di Informatica T [A-K] 2013-2014
Legge di Moore
Fondamenti di Informatica T [A-K] 2013-2014
Calcolo Parallelo
v
1
Number of processing elements
Fondamenti di Informatica T [A-K] 2013-2014
Scheda madre (motherboard)



E' una scheda elettronica (circuito stampato) che contiene i
componenti del calcolatore
Contiene gli alloggiamenti (socket) per il processore, per i banchi di
memoria, e quelli per le schede di espansione (slot)
Provvede alle linee di collegamento da/per la CPU (bus)
Fondamenti di Informatica T [A-K] 2013-2014
Unità di input/output
Unità di input
Unità di output
•
•
•
•
•
•
•
•
•
•
•
•
Tastiera
Mouse
Scanner
Trackball
Unità audio/video
Webcam
Touch screen
Video
Stampante
Plotter
Altoparlanti
Dispositivi controllati
(video proiettore, TV,
ecc.)
Fondamenti di Informatica T [A-K] 2013-2014
Scanner
Plotter
Trackball
Fondamenti di Informatica T [A-K] 2013-2014
Tastiera

Principale strumento di input

Esistono vari tipi di layout

QWERTY (Italia, UK, USA, etc.)

QWERTZ (Germania)

AZERTY (Francia, Belgio)
Fondamenti di Informatica T [A-K] 2013-2014
Monitor / Video





Principale unita' di output
La dimensione e' misurata in pollici (lunghezza della diagonale). Il rapporto tra i lati
può essere 4:3 o 16:9 (panoramico)
Consiste di una matrice rettangolare di pixel (picture element). Ogni pixel del monitor
può assumere un colore tra quelli disponibili.
Il pixel occupa una zona quadrata, il cui lato varia da monitor a monitor. Il numero di
pixel di base e il numero di pixel in altezza sono le dimensioni in pixel del monitor (per
esempio 1024 x 768 pixel).
Dimensioni comuni di questa matrice rettangolare di pixel sono le seguenti
640 pixel di base per 480 di altezza (standard VGA);
800 pixel di base per 600 di altezza;
1024 pixel di base per 768 di altezza (standard XGA)
1280 pixel di base per 1024 di altezza (standard SuperVGA).
1920 pixel di base per 1080 di altezza (full HD)

La risoluzione del monitor è il numero di pixel per unità di misura (pollice o
centimetro):

pixel per pollice (ppi, pixel per inch);

pixel per centimetro (ppc).
Fondamenti di Informatica T [A-K] 2013-2014
Stampanti


Principali tipologie

a getto d'inchiostro

laser
Definizioni

dpi (dots per inch): numero di punti stampati
in un pollice lineare (2.54 cm)
indica la qualità di stampa

ppm (pagine per minuto): numero di pagine
stampate in un minuto
indica la velocità di stampa
Fondamenti di Informatica T [A-K] 2013-2014