Terminologia, Architetture dei sistemi di elaborazione e

Definizioni e
Architettura
1
Importante imparare il linguaggio
dell’informatica
• La terminologia è basilare per imparare una nuova
disciplina
– le parole rappresentano idee e concetti
o usare con precisione un termine significa comprendere l’idea
corrispondente
• Comunicazione con gli altri
– la capacità di formulare domande e ricevere aiuto
utilizzando e-mail, telefono e sistemi di help on-line
• L’informatica utilizza molti nuovi termini e acronimi
– i termini sono stati inventati per indicare idee, concetti e
dispositivi nuovi
2
Tipici usi (e abusi) informatici
• Uso difuso di acronimi e sigle
– WYSIWIG, RAM, CPU, PC, I/0 ...
• Molti termini gergali ancora più “strani” in
italiano
– Originale: click , backup, chat, format , bootstrap, ...
– Italianizzato: “cliccare”, “backuppare”, “chattare”,
“formattare”, …
• Metafore
– termini comuni (“windows”, “mouse”, “to surf”, “navigare”,
...) in informatica assumono un significato specifico
3
Esempio 1: Def. acronimo WYSIWYG
• Sta per “What you see is what you get”, tipicamente
riferito al testo
• Il testo è memorizzato come una sequenza di
caratteri (testo vero) e caratteri speciali (che
specificano il formato del testo: corsivo, a capo, ecc.)
• I primi software per scrivere testo non mostravano su
schermo il formato e gli utenti dovevano immaginare
quale sarebbe stato il risultato una volta stampato
• La proprietà WYSIWYG permette di visualizzare la
pagina su schermo così come apparirà una volta
stampata (es., software Microsoft Word)
4
Esempio 2: Processo di booting
• Booting (fare il boot): accensione del computer
• Rebooting: riaccensione rapida del computer
• Il termine deriva da “bootstrapping” (sollevarsi
da solo mediante le stringhe delle proprie
scarpe): si riferisce al fatto che il computer è in
grado di svolgere le prime operazioni di avvio
senza intervento dell’utente
5
Informatica
Esistono varie definizioni
“Scienza degli elaboratori elettronici”
(Computer Science)
“Scienza dell’informazione”
Definizione proposta:
“Scienza della rappresentazione e dell’elaborazione
dell’informazione”
Elaboratore elettronico (“Computer”)
è uno strumento per la rappresentazione e la
elaborazione delle informazioni
6
DATI
RIS
ULT
ATI
Cosa vede il normale utente
dell’informatica …
• Una “scatola” con interfacce più o meno
gradevoli, in cui inserisci i dati e ottieni dei risultati
7
Però ...
• Se l’utente inserisce dati e ottiene risultati
significa che aveva un problema che qualcuno ha
risolto per lui
Chi ha risolto il problema?
• Il computer? NO!
• Il problema è stato risolto dall’informatico che ha
trovato una soluzione, l’ha “spiegata” al computer
e il computer ha eseguito la soluzione in modo
eccezionalmente veloce (se confrontato alla
velocità umana)
Il computer non risolve problemi, ma esegue
velocemente le soluzioni che ha trovato l’uomo
8
Problemi da risolvere
I problemi che gli INFORMATICI risolvono sono di natura molto varia:
1) Trovare il maggiore fra due numeri
2) Dato un elenco di nomi e numeri di telefono, trovare il numero di una
data persona
3) Problema del lupo, della capra e del cavolo
4) Dati a e b, risolvere l'equazione ax+b=0
5) Stabilire se una parola precede alfabeticamente un’altra
6) Ordinare una lista di elementi
7) Identificare e prenotare aerei, treni, hotel, ...
1) Creare, modificare e alterare suoni, canzoni, ...
2) Analizzare e riconoscere immagini, ...
3) Salvare e recuperare delle informazioni, …
4) Trasmettere delle informazioni, …
5) ...
9
Componenti di un Computer
Hardware (“ferraglia”) (abbreviato HW)
Tutti i dispositivi fisici contenuti in un computer.
L'HW funziona sotto il controllo del software, senza
il quale è inutile.L'HW contiene tutti i circuiti che
consentono l'elaborazione dei dati
Software (abbreviato SW)
Sono i programmi; istruzioni dettagliate che dicono
al computer come svolgere una determinata
operazione
Software di sistema
Software applicativo
10
Dov’è il pulsante di accensione?
• Computer a componenti
– PC desktop con
componenti separati
o
o
o
o
monitor
hard disk
casse
ecc.
– permette agli utenti di
personalizzarne la
configurazione
– pulsante di accensione sul
case
Esempio di computer
a componenti
11
I componenti di un computer
12
Dov'è il pulsante di accensione?
• Computer monolitici
– i portatili sono costituiti da
un unico blocco che
comprende tutti i
componenti
– semplici ed economici
– pulsante d’accensione sul
lato del computer, talvolta
addirittura sulla tastiera
Esempi di computer
monolitico
Nei PC a componenti,
attenzione al pulsante di
accensione del monitor:
non serve per tutto il
computer!
13
Definizioni utilizzate comunemente
• Computer a componenti Desktop
• Computer monolitici Laptop
14
Elementi dell’hardware
• Processore (CPU)
• Memoria centrale (RAM)
• Memorie periferiche
– Hard disk (fisso)
– Flash memory (rimovibile)
• Altre periferiche
– Tastiera
– Mouse
– CD-ROM
– DVD
– Stampante
– Scanner
– Modem
–…
15
Monitor
• Schermo interattivo (mostra info generata sia
del computer che dell'utente)
– matrice di bit
o mostra informazione contenuta nella memoria del computer
16
Monitor (cont.)
• CRT e LCD
• Lo schermo mostra le immagini contenute
nella sua memoria. Spesso tali immagini, a
differenza di quanto viene proiettato da un
televisore, non hanno corrispondenza con
alcuna scena presente nella realtà fisica
– realtà virtuale
17
Cavi
• Collegano i componenti al computer e all’alimentazione
• Devono essere collegati nel modo corretto
– i cavi e le prese sono contrassegnate da ICONE standard
18
Colori
• RGB – Red, Green, Red
– Colori primari: rosso, verde, blu
– I colori sullo schermo sono formati da diverse
quantità dei colori primari
19
Pixel
• Lo schermo è suddiviso in una griglia di punti
chiamati pixel (picture element)
– un pixel ha circa le dimensioni del puntino di una
lettera i stampata in corpo 10
• Il computer visualizza ogni pixel nel colore
dell’immagine da rappresentare
• Maggiore è il numero di pixel in ogni riga e
colonna, maggiore risulta la risoluzione
dell’immagine
20
Esempio: pulsante virtuale
• Si colorano i pixel dello schermo in modo da
creare la figura di un pulsante
– fondale grigio chiaro
– si disegna un rettangolo colorando i lati superiore e
sinistro di bianco e i lati inferiore e destro di nero
• Per mostrare che il pulsante è stato premuto
– si invertono i colori bianco e nero
– si trasla la figura un pixel in basso a destra
21
Pulsante virtuale:
premuto / non premuto
22
Motherboard - Scheda madre
• Un circuito stampato
installato nel case
– contiene la maggior
parte dei componenti
più importanti di un
computer
23
Scheda madre (cont.)
• Schede più piccole si installano nella
motherboard per aggiungere funzionalità
• La scheda madre, fra le altre cose, contiene il
microprocessore (CPU) e la memoria centrale
(RAM)
24
Microprocessore
• È la parte "intelligente" del sistema
• Esegue effettivamente i calcoli
• Il termine “micro” è stato adottato intorno al
1980 per distinguere un singolo chip dai più
grandi mainframe di quel tempo
• Il termine microprocessore è ormai desueto:
oggi è più comune dire semplicemente CPU o
processore
25
Memoria centrale
• Il luogo ove risiedono i programmi e i dati
durante l’elaborazione
• RAM (Random Access Memory): memoria ad
accesso casuale. Chiamata memoria principale
• Il PC contiene milioni di byte di RAM
• Accesso casuale:
– qualsiasi elemento può essere recuperato
direttamente
– diverso dall’accesso sequenziale (usato ad esempio
nei dispositivi a nastro come audio e videocassette)
26
Tipi di accesso alla memoria
27
Hard disk
• Periferica di memorizzazione persistente ad
alta capacità
– memorizza i programmi e i dati quando non sono
in uso
– è fatto da una lega ferrosa che può essere
magnetizzata
o l’informazione rimane anche con il PC spento
o chiamata memoria permanente o memoria di massa o
memoria secondaria
28
Hard disk (cont.)
• Assomiglia a una
piccola pila di sottili
dischi metallici su cui si
muovono testine
magnetiche
29
Salvare informazioni dalla RAM
all’Hard disk
• L’operazione di salvataggio consiste nello
spostare i dati dalla RAM all’hard disk
– un utente esperto salva frequentemente
• La Ram è volatile
– i dati vengono persi quando il computer è spento
– se il computer “va in crash” o non funziona più
correttamente, rimangono solo i dati sul disco
30
Struttura del computer
PC: Program Counter
IR: Instruction Register
A: Accumulator
Memoria cache
• La memoria contiene sia i dati sia le istruzioni
• Il contenuto dei registri può essere scambiato con la
memoria e l’I/O
• Le istruzioni trasferiscono i dati e modificano il contenuto
dei registri
• Registri particolari:
– PC: indirizza l’istruzione corrente
– IR: contiene l’istruzione corrente
31
Il ciclo Fetch-Decode-Execute
L’esecuzione di ciascuna istruzione nella CPU
consta dei seguenti passi:
1. Carica l’istruzione da memoria in IR (Instruction
Register) (Fetch)
2. Incrementa PC (Program Counter)
3. Decodifica l’istruzione (Decode)
4. Carica l’operando in un registro
5. Esegui l’istruzione (Execute)
6. Torna al passo 1 per l’esecuzione
dell’istruzione successiva
32
La rappresentazione
delle informazioni
33
Scelta della rappresentazione
• Di solito è una scelta convenzionale
• A volte vi sono vincoli da rispettare
• Nel caso dei computer il vincolo è la
rappresentazione binaria (o digitale) delle
informazioni
• L’alfabeto di base con cui il computer codifica ogni
informazione consiste di due soli simboli: “0” e “1”
34
Motivo della scelta di solo 2 simboli
• Ragioni prevalentemente di tipo tecnologico
• I due simboli corrispondono, ad esempio:
– al passaggio/non passaggio di corrente attraverso un
cavo conduttore
– ai due diversi stati di polarizzazione di una sostanza
magnetizzabile
– ai due stati di carica elettrica di una sostanza
– al passaggio/non passaggio di luce attraverso un cavo in
fibra ottica
35
Bit
• L'entità minima di informazione in un calcolatore si
chiama bit (binary digit – cifra binaria)
• Può assumere solo due valori, cioè può permettere
la rappresentazione di due informazioni associate
ad uno dei due stati “0” e “1”
• Per poter rappresentare più informazioni devo
usare più bit mettendoli in sequenza
36
Esempio: sequenza di due bit
• Con due bit possiamo avere quattro configurazioni:
00
01 10 11
• E’ possibile far corrispondere quattro informazioni
a tante cose. Es.,
– le prime quattro lettere dell'alfabeto
– oppure i numeri da 1 a 4
– oppure i colori, oppure altre cose ...
00
01
10
11
a
b
c
d
1
2
3
4
verde
rosso
giallo
blu
37
Codifica dell’informazione
• Processo secondo cui si fa corrispondere ad
un’informazione una configurazione di cifre binarie
• E’ importante ricordare quante informazioni rieco a
codificare avendo un certo numero di bit:
–
–
–
–
–
Con 1 bit codifico 2 informazioni
Con 2 bit ne codifico 4
Con 3 bit ne codifico 8
...
Con n bit codifico 2n informazioni
38
Byte
• In informatica assume particolare importanza
un’aggregazione di 8 bit, che prende il nome di
byte
• Simbologia: b
bit
B
byte
• Poiché un byte è fatto di 8 bit
un byte consente di codificare 256 informazioni
39
Unità di misura
• Multipli di bit o di byte
1 KiloByte= 1.024 byte
x1024 = 1 MegaByte =
x1024 = 1 GigaByte =
x1024 = 1 TeraByte =
x1024 = 1 PetaByte =
• Abbreviazioni
Kb = Kilobit
Mb = Megabit
Gb = Gigabit
(per reti)
1.048.576 byte
1.073.741.824 byte
1.099.511.627.776 byte
….. byte
KB = KiloByte
MB = MegaByte
GB = GigaByte
(per memoria)
40
Codifica dei caratteri alfanumerici
• L'insieme dei caratteri alfabetici (anglosassoni),
numerici, di punteggiatura, le parentesi e gli
operatori aritmetici può essere codificato usando 7
bit (128 configurazioni)
• Per poter interagire e scambiarsi dati in modo
comprensibile, è necessario usare la stessa codifica
• Quindi, è necessario “mettersi d’accordo” per
definire un metodo standard per effettuare la codifica
41
Codice ASCII
• E’ il metodo di codifica più diffuso fra produttori di
hardware, software e dispositivi di rete
• ASCII = American Standard Code for
Information Interchange
• Nota: non è l'unico!
• Abbastanza diffuso anche EBCDIC = Extended
Binary Coded Decimal Interchange Code
42
Esempio di codifica ASCII standard
(usa 7 bit)
•
•
•
•
•
•
•
0100001
!
0100110
&
0110000
0
0111110
>
1000001
A
1100001
a
I numeri, così come le lettere, sono consecutivi.
Sono però insiemi separati
43
Codice ASCII standard – 7 bit
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
000
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
001
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
010
!
“
#
$
%
&
‘
(
)
*
+
,
.
/
011
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
100
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
101
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
110
°
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
111
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
Per ottenere la codifica a 7 bit, si legge prima
il numero
colonna
e poi
quello di riga
Sono
numeridella
interi
positivi
(necessario
un byte)
44
Codifica di una parola
• Parola = sequenza di caratteri
• Codifica della parola = sequenza delle codifiche dei
singoli caratteri
• ES: parola “cane”
•
c
a
n
e
• 01100011 01100001 01101110 01100101
• Esistono anche simboli per lo spazio bianco, il
simbolo di fine riga, ...
• Si possono rappresentare testi complessi
45
Codifica dei numeri
• Col codice ASCII posso codificare anche le cifre
decimali da “0” a “9”
• Parola = sequenza di caratteri
• Numero = sequenza di cifre
• Es: 324 si potrebbe rappresentare come
• 00110011 00110010 00110100
3
2
4
46
Codifica dei numeri - continua
• MA usare la codifica ASCII per i numeri è una
rappresentazione non efficiente perché i primi
quattro bit sono uguali e, soprattutto, non è adatta
per eseguire le operazioni aritmetiche sui numeri
• Esiste un modo molto più naturale per codificare i
numeri che prende spunto dal sistema di
numerazione tradizionale
47
Sistema di numerazione: decimale e
posizionale
• Usa dieci cifre
• Ogni cifra ha un valore che dipende dalla
posizione che occupa all’interno del numero
• La rappresentazione “645” (la cifra 6 seguita dalla
cifra 4 seguita dalla cifra 5) denota, nel sistema
decimale, il numero 645
• Il numero 645 ha in realtà l’interpretazione seguente:
– 6 centinaia, 4 decine, 5 unità
– 6*(102) + 4*(101) + 5*(100) = 600+40+5 = 645
48
Esempio: Sistema decimale
Il numero 135 decimale può essere rappresentato come segue:
B = 10
n=3
base
numero cifre
cifra
1
3
5
posizione
2
1
0
10 2
10 1
10 0
peso
(ricordare che si parte da 0)
1 • 10 2 + 3 • 101 + 5 •100 = 135
49
Sistema di numerazione decimale (2)
• In generale la rappresentazione:
cncn-1...c1c0
in cui ogni cifra ci è compresa fra 0 e 9, denota:
c0 * 100
c1 * 101
...
cn-1 * 10n-1
cn * 10n
+
+
+
(ossia c0 unità)
(ossia c0 decine)
...
50
Rappresentazione binaria
• E’ una codifica “posizionale” che invece di usare 10
cifre, ne usa solo 2
• Quindi, tutti i numeri vengono codificati usando le
due cifre “0” e “1” e uno schema posizionale in cui
si usa la base 2 invece della base 10
• cncn-1...c1c0 in cui ogni cifra ci vale 0 o 1, denota:
c0 * 20+c1 * 21+...+cn-1 * 2n-1+cn * 2n
• Esempio: 1110(base 2) denota:
1*23+1*22 +1*21+1*20+= 8+4+2+0 = 14(base 10)
51
Esempio: Sistema binario
Valore decimale corrispondente al numero binario 1101 ?
cifra2
1
1
0
1
peso
23
22
21
20
valore
1•8
1•4
0•2
1•1
11012 = 1 • 23 + 1 • 22 + 0 • 21 + 1 • 20 = 1310
52
Massimo numero rappresentabile?
• Sappiamo che con quattro cifre decimali è
possibile rappresentare tutti i numeri fra 0 e 9999
in quanto il numero successivo (10000)
richiederebbe una quinta cifra (non disponibile)
• In informatica si parla di overflow: quando un
numero “esce” dal numero di cifre destinate alla
rappresentazione
• Date n cifre decimali, è possibile rappresentare i
numeri da 0 a 10n-1
Esempio (n=4): 9999 = 10000-1 = 104-1
53
Massimo numero in binario
• Le stesse considerazioni del sistema decimale
valgono anche per il sistema binario prendendo
come base il numero 2 al posto del numero 10
• Quindi, date n cifre binarie, è possibile
rappresentare i numeri da 0 a 2n-1
• Ricordare: nel momento in cui si fissa il numero di
bit destinati alla rappresentazione di un numero, si
fissa anche il massimo numero rappresentabile
54
Oltre i numeri interi positivi
• Con il metodo di codifica esaminato, è possibile
rappresentare qualunque numero intero positivo
rientra nel numero di bit disponibili a rappresentarlo
• Tuttavia, esiste la necessità di rappresentare anche
altri tipi di numeri, quali:
– Numeri interi negativi: -34 -23456 ...
– Numeri frazionari positivi: 234,45 79,001 ...
– Numeri frazionari negativi: -234,45 -79,001 ...
• Si usano altri metodi di codifica (più complessi) che
non sono argomento di questo corso
55