fondamenti di informatica
parte 1
appunti per il D.U. in Ingegneria
Informatica, di Telecomunicazioni
e di Meccanica, a.a. 2000-2001
di
anna maria carminelli gregori
fondamenti di informatica 1 parte
1 D.U.
1
PREMESSA
Anche quest’ anno le lezioni saranno svolte
usando i miei file contenenti appunti sulle
lezioni stesse;
il primo file e’ fondinf1.1 e si trova al sito
E:/carmin/duinf2000/fondinf1.1 (accessibile con
le operazioni specificate negli appunti a mano).
E’ costruito come tutti gli altri con/per Power
Point: gli altri sono posti alla stessa locazione
(direttorio). I loro nomi: fondinf1.2, fondinf1.3
fondinf1.4 fondinf1.5
fondamenti di informatica 1 parte
1 D.U.
2
Modalita’ di utilizzo
Nel Laboratorio di Informatica viene usato il
Sistema Operativo Windows95_NT ossia un
S.O. che controlla un insieme di computer
collegati in rete ad un Elaboratore Elettronico,
detto SERVER, che gestisce la rete locale e
condivide tra tutti il suo disco fisso, suddiviso
in piu’ partizioni chiamate E: , S: , H: (vedere
denominazioni in DOS, parte 2);
Significato e tipo della rete del Laboratorio: l’
utente usa uno degli elaboratori connessi al
Server e di questo Server puo’ leggere le
informazioni registrate
sul suo disco.
fondamenti di informatica 1 parte
1 D.U.
3
Laboratorio ed uso della rete
I file ed il software che lo studente (=utente )
vuole usare non sono residenti sulla macchina
locale , o CLIENT, ma sul disco condiviso dal
Server con tutti i computer del Laboratorio.
La connessione al Server avviene tramite
accesso con username e password chiesti all’
avvio del computer locale: la loro mancanza
inibisce l’ accesso al Server e quindi ai file.
RICORDARSENE !!
fondamenti di informatica 1 parte
1 D.U.
4
username e password
saranno comunicati ad ogni studente del
D.U.
PER ORA I LORO VALORI PROVVISORI
sono:
username:
password:
tutto in minuscolo perche’ Windows e’
“sensitivo” ossia conosce la differenza tra
minusolo e maiuscolo
!
fondamenti di informatica 1 parte
1 D.U.
5
Tali username e password
abilitano l’ utente ad accedere al disco del
Server (E: S:) ed a usare tutti i programmi li’
registrati, per es. S:\tc\bin\tc per programmi in
C++ (cfr. modalita’ d’uso del C++ parte 2 );
NON l’ abilitano a scrivere alcunche’ sul disco
del Server (E: S:) per preservare lo stesso da
cancellazioni e/o modifiche (SICUREZZA !);
per conservare i suoi programmi l’ utente puo’
usare un floppy personale e temporaneamente
il disco C:\temp del Client (Elaboratore) locale
1 parte
che sta usando.fondamenti di1informatica
D.U.
6
fondamenti di informatica 1
Scopo del corso:
fornire: i principi, i concetti fondamentali,
le nozioni e l’ impostazione per l’ utilizzo
corretto dell’ Elaboratore Elettronico (E.E.)
imparando le nozioni di base su:
fondamenti di informatica 1 parte
1 D.U.
7
Primo corso di: fondamenti di
informatica=Nozioni base su:
_hardware/software;
_la struttura funzionale di E.E.;
_i sistemi operativi;
_la programmazione;
_alcuni strumenti software;
_il linguaggio C, C++ ….
Propedeuticita': conoscenza di base della
matematica

=>
fondamenti di informatica 1 parte
1 D.U.
8
… ma l’ informatica, che
cos’ e’?
E` bene evidenziare subito cosa non e’ l'
Informatica ! NON E’:
Calcolo numerico ne’ Geometria ossia
non e’ una disciplina che insegna
metodi numerici o geometrici;
Probabilita’ ne’ Statistica ossia .....
Un gioco nel senso che non insegna a
giocare con l' elaboratore e va presa sul
serio;
fondamenti di informatica 1 parte
1 D.U.
9
Cosa e’ l’ informatica
NON E’ Semplicemente una materia di
ausilio alle altre, ma ha sue precise
finalita’ che si possono sintetizzare nel:
razionalizzare il trattamento delle
informazioni ... (e di E.E.)
Una possibile prima definizione:
scienza e professione della gestione delle
informazioni effettuata con le velocita’ e
precisione proprie
di E.E.
fondamenti di informatica 1 parte
1 D.U.
10
Bibliografia
Franco Crivellari: “Elementi di programmazione
con il C++”, Franco Angeli;
A.Bellini, A.Guidi: “Guida al linguaggio C”,
McGraw Hill;
P. Bishop: “L’ Informatica”, Gruppo Editoriale
Jackson, 1992;
R.A. MEO, M. Mezzalama ed altri: “Fondamenti
di informatica”, UTET.
fondamenti di informatica 1 parte
1 D.U.
11
Programma
 Il corso comprende:
 a) una parte teorica,
(25 ore)
 b) una parte applicativa. "
 a): introduzione all' Elaboratore Elettronico (E.E.), concetti di
. base su Hardware & Software, livelli di utilizzo e
. . ..
. funzionamento di E.E.; (2 ore)

rappresentazione e codifica delle informazioni;

algoritmi & informatica; (3 ore)

calcolo booleano: fondamenti, tabelle di verita’, circuiti
.
. logici corrispondenti, combinatori e sequenziali ; (4 ore)

l' Hardware, struttura, componenti funzionali e fisiche di
. E.E.; funzionamento ciclico della CPU e cenni sul suo . . .
. Linguaggio; cenni su reti (LAN e WAN) e Internet. (5 ore)
fondamenti di informatica 1 parte
1 D.U.
12
(segue programma:
a)











il Software ed il Sistema Operativo con suo
utilizzo sui Personal Computer (riferimenti DOS, e
WINDOWS e WINDOWS_NT); software di base (editor,
interpreti, compilatori e assemblatori); prog. applicativi:
cenni su Word Processor, sui Sistemi di gestione di Basi
di Dati, su iper- testi/media e WWW; (6 ore)
la programmazione: linguaggi e traduttori (Fortran,
C, C++); composizione e struttura di un programma,
progetto e costruzione di un programma con metodo
TOP-DOWN; (4 ore)
fasi del processo fondamenti
di traduzione
di un programma. (1 ora)
di informatica 1 parte
1 D.U.
13
(segue programma:)
b) il linguaggio C e C++:
 b) presentazione, uso, ambiente di sviluppo (Tc della
 Borland per il C++), fasi di sviluppo di un programma:
 progetto - stesura - compilazione - "linkaggio" esecuzione; esempi in Lab.;(2 ore )
 programmi monolitici e strutturati con uso di
 funzioni come e' tipico nei programmi in C e C++;
 concetto di funzione e di sottoprogramma in generale;
 librerie e file header del C e C++; esempi in Lab.;(4 ore)
 tipi di dati e di operatori; le variabili, le espressioni,
 la frase di assegnazione; variabili locali e globali,
 ambiente locale e globale;(2 ore )
fondamenti di informatica 1 parte
1 D.U.
14
(segue programma:)
b) il linguaggio C e C++:
 differenza tra indirizzo e contenuto di ogni informazione;
esempi in Lab. (4 ore );
 elaborazione sequenziale, condizionale, ciclica; (4 ore)
 argomenti di sottoprogrammi e passaggio di parametri tra
(sotto)-programmi (per indirizzo e valore); funzioni e
procedure; argomenti del main; compilazione separata;
esempi in Lab. (4 ore);
 informazioni strutturate come vettori, stringhe, matrici;
passaggio di vettori e matrici a sottoprogrammi;
 cenni su: strutture e alcune operazioni/funzioni relative;
registrazione/lettura su/da file sequenziali; esempi in
Laboratorio (5 ore).
fondamenti di informatica 1 parte
1 D.U.
15
Metodo usato: top - down
… o a raffinamenti successivi che
permette di presentare un problema o un
in generale un oggetto in modo globale,
scomponendolo ricorsivamente nelle sue
componenti essenziali, piu’ semplici da
capire e con specifici dettagli in evidenza.
Es. Programma del corso (precedente),

Elaboratore Elettronico (seguito),
fondamenti di informatica 1 parte

…….
1 D.U.
16
Introduzione a E.E.
E.E.
cosa è, a cosa serve, come è …..
Storia e Antenati …….
Livelli di utilizzo

fondamenti di informatica 1 parte
1 D.U.
17
E.E. cosa e’ ….. (es. Metodo
top - down)
E.E. e’ una macchina elettronica, funzionante in
modo automatico, capace di effettuare l’
elaborazione di informazioni.
Informazioni: sono parole e/o numeri
CODIFICATI nella forma piu’ adatta per l’
elaborazione.
Elaborazione di Informazioni: lettura dall’
esterno, memorizzazione su supporto elettronico
e/o magnetico, recupero, modifica,
visualizzazione all’ esterno di informazioni.
fondamenti di informatica 1 parte
1 D.U.
18
Hardware & Software
E.E.







e’ dunque fatto di circuiti elettronici =
componenti fisici = HARDWARE
…. ma questi da soli sono soltanto una
accozzaglia di fili e ferramenta.
Solo con l’ aggiunta di componenti logiche
= programmi = SOFTWARE che ne
governano l’hardware, E.E. diventa
capace di ELABORARE INFORMAZIONI.
fondamenti di informatica 1 parte
1 D.U.
19
E.E. Storia e Antenati
antenati: 1642 macchina calcolatrice meccanica di

Blaise Pascal;

1671 macc. calc. meccanica di Gotfried

Von Leibniz;

1821 macc. calc. mecc. di Charles

Babbage e successiva Macchina

Analitica (? Aritmetic Unit ?

Calcolatore Meccanico ?);

1850 nuova logica matematica

George Boole (algebra booleana);
fondamenti di informatica 1 parte
1 D.U.
20
E.E. Storia e Antenati
Antenati:







1890 uso di schede perforate da
parte di Hollerith;
1936 macchina di Turing: ….
…..
1946 ENIAC primo elaboratore costruito
all’ Univ. della Pennsylvania sul
modello di Von Newman;
……….
fondamenti di informatica 1 parte
1 D.U.
21
Elaborazione di Informazioni ….
Informazioni: parole-numeri CODIFICATI nella
forma piu’ adatta per l’ elaborazione ... o anche:
successione di simboli di un dato alfabeto con
proprio significato in un dato linguaggio.
Linguaggi: naturale con alfabeto composto da:
lettere minuscole, maiuscole, cifre ... simboli;
artificiale con alfabeto diverso ....
per es. alfabeto dell' elaboratore: 0
1

cifre binarie = binary digit = bit.
fondamenti di informatica 1 parte
1 D.U.
22
Bit
Perche’?
Ogni elemento dei componenti fisici dell’
elaboratore puo’ avere solo 2 stati
convenzionalmente indicati con 0 e 1 (per es. i
valori di tensione elettrica in un punto possono
essere: basso = 0, o alto = 1).
Elaboratore elettronico: i suoi circuiti elettronici,
con tempi di commutazione dell' ordine del nanosecondo (10-9 sec.), sono dedicati a:
memorizzare, combinare, trasferire bit =
=>elaborare informazioni = sequenze di bit.

fondamenti di informatica 1 parte
1 D.U.
23
Necessita’ di un Codice:
corrispondenza tra 2 alfabeti !
Il suo uso permette Codifica/Decodifica delle
informazioni.
La Codifica/Decodifica delle informazioni sfrutta
tutte le componenti!
Componenti dell elaboratore: Hardware,
Software ..... Firmware
Software ( = merce soffice contrapposto ad
Hardware = ferramenta)
Firmware = Software realizzato ad Hardware
(per es. il loader = caricatore)
fondamenti di informatica 1 parte
1 D.U.
24
Codifica/Decod. di informazioni:
1) tipo numerico intero
 Numeri: naturali, interi, interi relativi, reali relativi.
 Il codice numerico usato negli elaboratori si basa sul
Sistema numerico binario ossia a base 2 con uso dei
simboli 0 e 1. E’ un Sistema numerico posizionale 
 Sistema numerico posizionale: scelto un numero come
base, ogni valore numerico e’ esprimibile tramite
potenze della base moltiplicate per opportuni
coefficienti.
 Es. in base dieci: 94 = 9 . 101+4 . 100
 Intero10=
S di.10i
i
con d =0,1….9 coefficienti
i 1 parte
fondamenti di informatica
1 D.U.
25
Sistema posizionale
In generale nel sistema a base r (r>0)
la rappresentazione di N intero positivo e’:
N = dn-1 dn-2 . . . . d1d0  sequenza di simboli di
con di {0,1,2…..r-1}, n = n.ro posizioni di
rappresentazione
ed il suo valore e’:

n-1
.
e se r = 1 ??!
Valore N=Si=0 di ri

fondamenti di informatica 1 parte
1 D.U.
26
Interpretare sequenze di bit:
pacchetti & byte




Base 10: utilizzabili 10 simboli;
"
2: "
2"
"
8: "
8"
”
16: "
16 "
......
 Ogni valore numerico ha una rappresentazione in
binario: una sequenza di bit.
 Importanza dei raggruppamenti = pacchetti di bit:





in base 8 una cifra (0-7) e’ rappresentabile con un pacchetto di 3 bit;
" "
16 "
"
(0-F) " "
" "
”
" 4 "
Pacchetti importanti: byte = 8 bit;
parola = 2, 4, 8 ... byte;
una sequenza di bit e’ interpretabile raggruppando i bit a pacchetti.
fondamenti di informatica 1 parte
1 D.U.
27
Conversioni tra basi: regole
di calcolo
 Conversione di interi da base 2 a base 10: somma dei prodotti tra i
bit e le corrispondenti potenze di 2;
 Es. 0001 0101 01112 = 28+26+24+22+21+20 = 34310 =
1.162 +5.161+7.160
 Simboli in base 16: 0,1..9,A,B,C,D,E,F
 Rappresentazione e corrispondenza esadecimale:
 Binario Esad. Dec.
Binario Esad. Dec.
 0000
0
0
0001
1
1

.…
…
…
1001
9
9
 1010
A
10
1011
B 11
 1100
C
12
1101
D 13
 1110
E
14
1111
F
15
 FF16 = 15 . 161 +15 . 160 = 25510 = MAX INTERO IN UN BYTE =
1 . 162 - 1 = 25610 - 1 = 10016 - 1.
fondamenti di informatica 1 parte
1 D.U.
28
Conversioni di interi
Conversione da base 10 a base 2: successione
di divisioni per 2 fino ad avere quoziente = 0:
si ottiene una sequenza di bit che si puo’
leggere raggruppando i bit a pacchetti di 4 ossia
con cifre esadecimali.
Es. 8/2=4 e resto=0

4/2=2 “ “
=0

2/2=1 “ “
=0

1/2=0 “ “
=1  810=10002 =816
fondamenti di informatica 1 parte
1 D.U.
29
Algoritmo per divisioni N10->Nr
(Significato “algoritmo” cfr. avanti)
Si basa sulla rappresentazione di N10 nella base
r e sulla definizione euclidea di divisione:
N10 = dn-1rn-1 + dn-2rn-2 . . . . d1r1 +d0r0 =
 = r(dn-1rn-2 + dn-2rn-3 . . . . d1) + d0 =
 = rQ0+ d0 (e d0 e’ il resto di N10/r !)
Si procede analogamente per Q0, Q1, Q2…
... a proposito di divisioni e moltiplicazioni: in
cosa consistono quelle per la base ??! Per es.
come si fanno in binario divisioni/moltiplicaz.
per 2?
fondamenti di informatica 1 parte
1 D.U.
30
Valori significativi
MAX INTERO IN 16 BIT: FFFF16 = 65 53510
= 216 -1 = 1 0000 0000 0000 00002 -1 =
= 1111 1111 1111 11112
MAX INTERO RELATIVO IN 16 BIT: 7FFF16 = 32767
= 0111 1111 1111 11112
(IL BIT PIU` A SINISTRA DEDICATO AL SEGNO:
 0 = NUM. POSitivo
1 = NUM. NEGativo)
PER NUM. "REALI": CODIFICA IN "VIRGOLA
MOBILE" (NOTAZIONE SCIENTIFICA +avanti )
fondamenti di informatica 1 parte
1 D.U.
31
Interi negativi: invece della
notazione in modulo e segno
si usa quella in complemento a 2
Una motivazione: per il Circuito Sommatore e’
elementare fare la Differenza se si usa il
complemento a 2 del sottraendo.
Complemento alla base e significato in base10:
es. 8-3 = 5 Sommando ad 8 il complemento alla
base 10 di 3
8+(10-3)=1 5 il risultato ha sempre 5 unita’
8-3+10 = 1 5 fondamenti di informatica 1 parte
1 D.U.
32
Complemento a 10
L’ uso del complemento alla base 10 di 310
nella sottrazione produce sempre il
risultato con 5 unita’ (ripetizione delle
cifre: vedere “orologio” decimale.)
Avendo un dispositivo (Registro)
contenente le sole unita’ il risultato della
sottrazione si puo’ ottenere sommando a 8
il complemento a 10 di 3 che vale 7 ossia
quanto manca a 10 da 3 ossia 10-3.
fondamenti di informatica 1 parte
1 D.U.
33
L’ “Orologio” decimale con 2
sensi: antiorario (-) orario (+)
5
4
In Binario:
1-1
=
0
1-1+102 = 1 02
1+(102 -1) = 1 02
8
Altro esempio in Decimale:
7
810-710 = 810+310 =
6
=1 unita’
3
38+
9
0+1
1
2

Complemento
alla base 210 (=102 ) di 1
fondamenti di informatica 1 parte
1 D.U.
34
In binario come si fa il
complemento alla base 2 : ?
Si cambiano gli 0 in 1 , gli 1 in 0 e si somma 1
es: in un registro fatto di soli 4 bit = |x|x|x|x|
complemento a 210=00102=>(1101+1=1110)2
e quindi: (2-2)10= 00102 +1110 = (1) 0000
La cifra 1 esce a sinistra dal registro: non conta
Il bit piu’ significativo del registro (a sinistra) se
posto a 1 rappresenta una quantita’ < 0,
intervallo di rappresentazione in n bit:
[-2n-1, +2n-1-1]
se n=4 => [-8, +7]10
fondamenti di informatica 1 parte
1 D.U.
35
Perche’ si cambiano gli 0 in 1
e si somma 1 ?
Con un registro a 4 bit:
|x|x|x|x|
MAX valore IN 4 BIT: F16 =
1 1 1 12 = 1510 =

= 1610-1 =1 0 0 0 02 -1
Per fare il complemento a 2 di un valore con 4 bit
occorre calcolare quanto dista quel valore da
1 0 0 0 02 : cio’ equivale a cambiare gli zeri in 1 e
sommare 1. VERIFICARE !!!!!
Per es. 310=00112; 100002 - 00112 = 11012
fondamenti di informatica 1 parte
1 D.U.
36
Intervallo di
rappresentazione con 4 bit =
=>[-8, +7]10= [10002 , 01112] Perche’ ? Con 4 bit
il n.o valori = 1610 da 0 a15 ossia da 0000 a 11112
Destinare il bit di sinistra al segno significa dividere
per 2 l’ intervallo. Si hanno 8 valori  0 ossia da 0 a
710  0 (ed 8 valori < 0 ). Risulta +710 = 01112.
Facendo il complemento a 2 di 01112 si ha:
1000+1=1001= -710 che dista 1 da -810
-810 invece dista 0 da -810 ossia: -810=10002
Ecco quindi: intervallo di rappresentazione in n bit:
[-2n-1, +2n-1-1]
fondamenti di informatica 1 parte
1 D.U.
37
Domande
Quale e’ il complemento a 2 di 1 ?
Quanto vale 11112 nella notazione del
complemento a 2 ?
Overflow = tracimazione: quando si
verifica? Per registri a 4 bit la somma:
11112 +1 produce: 1|0|0|0|0| ossia zero
con riporto di 1 in posizione esterna:
questo e’ un esempio di tracimazione.
fondamenti di informatica 1 parte
1 D.U.
38
Motivazione per il FloatingPoint
Intervalli di rappresentazione limitati:
come si risolve il problema? Con l’
aumento del parallelismo dei registri di
memoria e del circuito sommatore ?
non basta: occorre un altro tipo di
rappresentazione ossia, per esempio, la
codifica floating-point normalizzata (vedi
diapo seguente).
fondamenti di informatica 1 parte
1 D.U.
39
Codifica/Decod. di informazioni:
2) tipo numerico non intero
Con un Sistema posizionale a base r (r>0)
la rappresentazione di un numero positivo N
con n cifre intere e m frazionarie e’:
N = dn-1 dn-2 . . . d1d0 . d-1 d-2 . . . d-m
con di {0,1,2…..r-1}
ed il suo valore e’:

n-1
m
.
.
i
Valore N=Si=0 di r + Si=1 d-i r i
fondamenti di informatica 1 parte
1 D.U.
40
Codifica floating-point
normalizzata per fissare il
posto standard del punto decimale che si
stabilisce stia a sinistra della prima cifra
significativa. Se 9.0810=9 .100+0 .10-1+8 .10-2 =
0.908 . 101 = 908.0 . 10-2 =… Dove va il punto?
In forma normalizzata a sinistra di 908 ossia
...=(-1)0 . 0.908 . 10+1 . In forma normalizzata si ha:
N=(-1)s . M . rE ossia e’ importante la tripla (S, M, E)
con S {0,1}  Segno del numero, dato da (-1)S; M = suo
valore assoluto con r-1 M <1; E= Esponente di r con
segno. Nell’ esempio fatto S=0; M=908; E=+1 
1 parte
 (0, 908, +1) fondamenti di1informatica
D.U.
41
CHIOSA
... naturalmente e’ tutto in binario con: 1 bit
riservato a S, X bit riservati a M, e Y bit riservati
a E (esponente della base 2) esprimibile in
modulo e segno!!!! Esempio: -1/8 ha S=1,
M=0.12510=0.0012= 0.1002 . 2-2 cioe’ E= -210 =
=1 102. Se si riservano 4 bit per M, 3 bit per E
ed 1 per S si ottiene: 1 1000 1102 .
Conversione da base 10 a base 2 per valori
frazionari: successione di moltiplicazioni per 2
basandosi sulla rappresentazione dei numeri e
sulla definizionefondamenti
euclidea
di moltiplicazione.
di informatica 1 parte
1 D.U.
42
Moltiplicazioni: perche’ ?
Valore N=Si=0 di . ri + Si=1 d-i. r -i =

Ni
+ Nf
.
.
1
2
Nf =
r + d-2 r + d-3 r 3 + …. =
= r -1 . (d + d . r -1 + d . r -2 + ….)
.
d-1
-1
-2
-3
Nf . r = d-1 + d-2. r -1 + d-3. r -2 + …
la prima moltiplicazione isola la prima cifra,
le moltiplicazioni successive isoleranno le
fondamenti di informatica 1 parte
altre cifre.
1 D.U.
43
nota
…. ma se il valore numerico e’ una
potenza negativa di 2 o una combinazione
di potenze negative di 2 la conversione in
base 2 diventa elementare !
Es. 0.510=1/210 = 0.12

0.7510=(1/2+1/4)10=0.112
VERIFICARE COL METODO DELLE
MOLTIPLICAZIONI SUCCESSIVE !
fondamenti di informatica 1 parte
1 D.U.
44
Intervalli di Rappresentazione in
binario
 IMPORTANTE!
 _Campo Finito di Numeri: limiti superiore e inferiore
finiti: se un' operazione produce un risultato oltre questi
limiti: ERRORE !
 _Precisione Limitata dei Valori Numerici: in ogni tipo di
rappresentazione esiste un numero finito di bit fissato
per la rappresentazione di un valore numerico. (Per es. p
non puo’ essere rappresentato con tutte le sue cifre.)
Arrotondamenti o troncamenti non producono risultati
esatti ma approssimati nei limiti della precisione
ottenibile con il numero di bit fissato.
fondamenti di informatica 1 parte
1 D.U.
45
Aritmetica
1) notazione Fixed-Point:
intervallo di rappresentazione limitato (per es. con 16
bit:
-32768 <---> +32767)
operazioni effettuate direttamente dalle componenti
apposite di E.E. Se pero’ si tratta di moltiplicazioni per 2
basta uno schift a sinistra ! (a destra per la divisione !!)
2) notazione Floating-Point Normalizzata(S,M,E):
intervallo di rappresentazione limitato (per es. con 32
bit di cui 1 bit per S, 8 bit per E, 23 bit per M:
(+/-)10-38 <---> 10+38 a cui va aggiunto lo 0;
operazioni effettuate da altre componenti di E.E.
fondamenti di informatica 1 parte
1 D.U.
46
Codifica/Decod. di informazioni:
3) informazione di tipo testo
 Testo = Successione di caratteri
Viene usato il Codice ASCII (American Standard
Code for Information Interchange) che associa
ad ogni carattere un byte contenente una
configurazione dei suoi 8 bit alla quale
corrisponde un valore numerico n
0  n  25510 ossia
0000 0000  n  1111 11112 ossia 00  n  FF16
 Byte: sequenza di 8 bit; con un byte si hanno 256
possibili combinazioni diverse (28 = 2 elementi diversi
combinati a ottetti)
fondamenti di informatica 1 parte
1 D.U.
47
Codice ASCII: qualche
esempio
Primi 32 caratteri con valori decimali da 00 a
31: caratteri di controllo per esempio ^G=BEL;
da 3210 a 6410 si hanno caratteri speciali come
la spazio, il $, le parentesi (), le cifre da 0 a 9 e
la @ ;
da 6510 a 9010 lettere maiuscole A-Z;
poi ancora caratteri speciali come le parent. {};
da 9710 a 12210 lettere minuscole a-z;
poi ancora caratteri
speciali e simboli grafici.
fondamenti di informatica 1 parte
1 D.U.
48
Codifiche: conclusioni
 Informazione => successione di caratteri alfanumerici

=> successione di bit

=>
interpretabile a livelli Hard/Soft.
Importanza interpretazione numerico/alfabetica:
es.
Valore intero = 4616 = 7010
 0100 0111 {

Lettera maiuscola F
Operazioni sulle informazioni:
1) "
elementari (livello hard. ling. macchina)
2) "
complesse ( "
soft. )
fondamenti di informatica 1 parte
1 D.U.
49
Istruzioni relative e note
1) es. Somma numeri interi;

Confronta byte; .........
2) es. Ordina una sequenza di parole;

Visualizza un’ immagine, un suono…
NOTA 1: qualsiasi tipo di informazione (immagini,
suoni...) e’ rappresentabile con sequenze di bit
(rappresentazione unitaria!) e quindi gestibile usando
appropriatamente E.E.
NOTA 2: Ogni operazione complessa e’ realizzata con
un insieme di apposite istruzioni che utilizzano
operazioni elementari: ... algoritmo !
fondamenti di informatica 1 parte
1 D.U.
50
Nozione di algoritmo:
insieme di regole non ambigue tese ad elaborare
informazioni,
eseguibili automaticamente, (per esempio da uno
schiavo che sappia contare senza sbagli e sia
dotato di memoria ove annotare le informazioni
che deve elaborare ed i risultati via via ottenuti) e
a partire dai dati producano i risultati in un tempo
finito.
Programma: algoritmo scritto per l' elaboratore.
Importante: prima algoritmo, dopo programma !
fondamenti di informatica 1 parte
1 D.U.
51
(
CURIOSITA’:
il nome deriva da Al-Kuwarizmi, matematico
Persiano, il quale nell’ 800 d.C. scrisse un
trattato di artimetica con la descrizione
dei passi necessari per effettuare le
operazioni aritmetiche. Il trattato iniziava
con la frase: “Al-Kuwarizmi dice: … ”
Il trattato fu tradotto in latino ed in latino la
frase iniziale divento’: “ Algoritmo dicit: … ”
)
fondamenti di informatica 1 parte
1 D.U.
52
Che cosa e’ l' informatica …
La creazione di algoritmi che combinano
anche in modo complesso sequenze di
operazioni semplici (blocchi) ...
puo’ sintetizzare meglio
che cosa e’ l' informatica.
fondamenti di informatica 1 parte
1 D.U.
53
Livelli di utilizzo di E.E.
 Livello utente:
 E.E. = scatole cinesi = sistema a cipolla col primo strato
di tipo software amichevole che ad un dato INPUT
risponde con un certo OUTPUT;
 obiettivo utente: acquisire familiarita’ col sistema.
 Livello professionista:
 conoscenza precisa e completa di ogni componente
funzionale di E.E.
 Studenti Informatica: entrambi livelli, ma per un uso piu’
immediato solo uno sguardo su hardware e SUBITO
visione software.
fondamenti di informatica 1 parte
1 D.U.
54
Da Babage ad oggi ??
La struttura funzionale di un Personal
Computer (ossia di un E.E. standard, non di
tipo particolare) e’ sempre quella ideata
prima da Charles Babbage intorno al 1820 e
poi realizzata da Von Neumann negli anni ‘40.
La tecnologia elettronica e’ cambiata, e’
cresciuta la potenzialita’ ... ma la “filosofia”
del funzionamento e’ rimasta inalterata.
Segue un’ elementare sintesi semplificata del
comportamento
di E.E.
fondamenti di informatica 1 parte
1 D.U.
55
Il via alle varie unita’
componenti e’ scandito
periodicamente da un orologio.
 “Si sveglia” l’ Unita’ Centrale di elaborazione
(C.P.U.), collegata alle altre unita’ ed in
particolare alla Memoria Centrale (C.M.) che
interroga ed alla quale chiede informazioni.
Queste passano da un’ unita’ all’ altra come
evidenziato nello schema di massima
successivo, dove le frecce grandi
simboleggiano il passaggio di informazioni e di
segnali di controllo e le frecce piccole solo di
1 parte
questi ultimi. fondamenti di1informatica
D.U.
56
Introduzione a E.E.
Struttura funzionale:
Temporizzator
e
Unita’ Centrale di Controllo
Registri
Unita’ di controllo di
I/O
Periferiche
UCP
Unita’ Aritmetico - Logica
Flag
Memoria Centrale
Memorie di massa
fondamenti di informatica 1 parte
1 D.U.
57
Componenti funzionali: il
clock
Le operazioni svolte dalle componenti di E.E.
devono essere sincronizzate: per esempio per
ottenere la somma di 2 valori questi devono
essere prima posti in registri della CPU e poi
sommati. Per questo scopo occorrono un
temporizzatore e un coordinatore. (Come nelle
triremi romane: lo schiavista dava il tempo.)
Il segnale che cadenza le operazioni e’ quello
del clock che genera ed invia a tutte le
componenti un segnale periodico con periodo T
= X nano-secondi, frequenza f =1/T.
fondamenti di informatica 1 parte
1 D.U.
58
Valori di T e di f ?
Per es. T= 40nsec, f= 25MHz (Mega
Hertz=Milioni di battiti o impulsi al secondo)
Per eseguire un’ istruzione occorrono alcuni
impulsi di orologio: se questo ha f=100MHz
verranno eseguite mediamente circa
quaranta milioni di operazioni/sec.
Oggi si hanno clock con frequenza di
500MHz e periodo di 2nsec ...
fondamenti di informatica 1 parte
1 D.U.
59
Componenti funzionali: CPU
La Central Processing Unit (C.P.U.) e’ la parte
fondamentale di E.E. Le sue componenti sono i
Registri, i Flag (=indicatori di stato), le Unita’ di
Controllo e Aritmetico-Logica (ALU), tutte
connesse e “immerse” nella stesso “chip” (nello
schema un rettangolo in grassetto... “ragnetto”)
La CPU coordina e controlla tramite la Central
Control Unit tutte le operazioni svolte al suo
interno e in generale da ogni unita’ di E.E. Per
esempio la Central Control Unit invia a tutte le
componenti segnali di controllo perche’ il
trasferimento dei bit (per es. dalla Memoria in
registri) avvengafondamenti
senza
perdite.
di informatica 1 parte
1 D.U.
60
Componenti funzionali: C.M.
= Central Memory
Memoria Centrale: RAM (Random Access Memory)
Modello di von Neumann:
_ memoria di tipo lineare ossia: successione
di locazioni (posizioni, celle,byte, parole)
numerate e indirizzabili sequenzialmente !
NOTARE DIVERSITA’ tra: INDIRIZZO di una
locazione e CONTENUTO di una locazione !!
Dimensione della memoria: numero di locazioni
o di byte).
indirizzabili (perfondamenti
un Personal
n.
di informatica 1 parte
1 D.U.
61
Funzione della Memoria
Centrale e … “colleghe”:
ricordare dati, risultati intermedi e definitivi,
programmi .... ma finche’ l' elaboratore resta
acceso! Caratteristica: RAM e’ volatile!
Tecnologia: circuiti integrati a larga scala(LSI);
aspetto: sequenza di “centopiedi”.
Altro tipo: ROM (Read Only Memory = memoria
di SOLA LETTURA: permanente)
Memoria Periferica (o di massa) di LETTURA /
SCRITTURA: dischi, nastri (bobine) ... dispositivi
magnetici. Caratteristica: memoria permanente!
fondamenti di informatica 1 parte
1 D.U.
62
RAM E CPU
RAM: indirizzo di ogni sua locazione => in
registri della CPU ( es. registro P = Puntatore,
registro I.C.= Istruction Counter ….)
RAM: Contenuto di ogni locazione => in altri
registri della CPU (es. A = Accumulatore ...)
RAM: scandibile e rintracciabile col Registro P;
Memoria <=> Registro P
Unita’ Centrale = Unita’ Elaborativa = CPU =
(MicroProcessore per Personal Computer) (per
es. MC68020, 386SX, Pentium.....)
fondamenti di informatica 1 parte
1 D.U.
63
Registro P di 4 bit => 16 byte
indirizzabili
 CPU = “Ragnetto”
Central Memory
0000
00
REG. P.
01
Registro P.= Pointer o

i.C.=Istruction Counter
fondamenti di informatica 1 parte
1 D.U.
1111
64
C.M. indirizzabile, ma fino
a ?… Indirizzi e byte
 Con 4 bit
 Con 8 bit
"
9"
 " 10 "
 " 11 "
 " 12 "
 " 13 "
 " 14 "
 " 15 "
 " 16 "
. . . . . . .
 " 20 "
. . . . . . .
 " 30 "
. . . . . . .
si
si
"
"
"
"
"
"
"
"
ottengono 24= 16 possibili indirizzi;
ottengono 28= 256 possibili indiriz.
"
29= 512 "
"
"
210=1024 poss. ind.= 1K (Kilo byte)
"
211 = 2 K "
"
"
212 = 4 K "
"
"
213 = 8 K "
"
"
214 = 16 K "
"
"
215 = 32 K "
"
"
216 = 64 K "
"
" "
220=1024 K "
" "
230=1000000 K "
fondamenti di informatica 1 parte
1 D.U.
" = 1M (Mega)
" = 1G (Giga)
65
Conseguenza:
Per indirizzare fino a 1024 celle (byte)
occorrono 10 bit ossia un REGISTRO di 10 bit;
per indirizzare fino a 64K byte occorrono 16
bit ossia un REGISTRO di 2 byte;
per indirizzare fino a 1024K byte occorrono 20
bit ossia un REGISTRO di 20 bit …
Volendo dimensioni elevate di memoria
occorrono REGISTRI sempre piu’ larghi. Dove
stanno ? Nella CPU.
fondamenti di informatica 1 parte
1 D.U.
66
Ancora CPU
La CPU oltre alla Unita’ di Controllo contiene
REGISTRI che hanno anche la funzione di
memoria locale molto veloce e la ALU che
accede ad essi ed opera sui dati li’ trasferiti
dalla C.M. Le operazioni che ALU sa fare
(usando per es. il registro A = Accumulatore)
sono le 4 dell’ aritmetica elementare e le
operazioni logiche (confronti per es.).
Quanti bit hanno questi REGISTRI ?
Dipende dal modello di CPU: da 16 a 64 bit.
fondamenti di informatica 1 parte
1 D.U.
67
Flusso di informazioni
Tornando allo schema della diapositiva 57 si
puo’ immaginare in prima approssimazione
un flusso di informazioni che dall’ unita’ di
input attiva (per es. la tastiera) fluisce fino ai
registri della CPU e quindi nella RAM.
Da qui le informazioni possono tornare nei
registri della CPU per essere modificate e/o
probabilmente visualizzate insieme ai risultati
fluendo quindi alla periferica scelta (per es. il
video).
fondamenti di informatica 1 parte
1 D.U.
68
E.E.  Hard. + Soft.

Per l’ utente:
E.E. solo hardware
=> unfriendly
E.E. con Soft. di base => - unfriendly
E.E. con Soft. di base e

Soft. applicativo => friendly
Il Soft. di base ha 2 strati:
_ il Sistema Operativo (S. O.)
_ i programmi di utilita’
I prg. Applicativi
formano
un altro strato .
fondamenti
di informatica 1 parte
1 D.U.
69
Sistema Operativo:
e’ un insieme di programmi specializzato
nel governare il funzionamento di E.E.
rendendo la gestione delle sue risorse
trasparente per l’ utilizzatore;
mette cosi’ a disposizione dell’ utilizzatore
una macchina virtuale non esistente, ma
piu’ potente e amichevole dell’ hardware
in quanto risponde ai comandi-utente;
il processo di virtualizzazione si propaga
ad ogni strato aggiuntivo di software.
fondamenti di informatica 1 parte
1 D.U.
70
Esigenza dell’ utente:
avere a disposizione una macchina con cui
poter lavorare e interagire indipendentemente dal suo hardware, comunicando con
uno strumento amichevole, ma efficiente ossia
che utilizzi l’ hardware (tutte le unita’ di E.E.)
“al meglio”.
Il S.O. risponde a questa esigenza dando all’
utente (o programma = strato di software piu’
esterno) l’ equivalente di “una macchina estesa
o macchina virtuale” (S.Tanenbaum).
fondamenti di informatica 1 parte
1 D.U.
71
Sistema Operativo: aspetti
(ricordare: il processo di virtualizzazione si
propaga ad ogni strato di software !)
QUINDI:
funzione 1: S.O. = GESTORE OTTIMALE
di tutte le componenti di un Elaboratore
(=Sistema Complesso) ossia CPU,
memorie, interfacce di rete, … qualunque
dispositivo;
funzione 2: S.O.
= Interfaccia amichevole
fondamenti di informatica 1 parte
1 D.U.
72
Schema di Sistema
Operativo
Anche il S.O. puo’ essere visto come un
sistema a scatole cinesi (o a cipolla): il
seguente schema e’ un’ alternativa.
APPLICATIVI
Soft.base: prg.util.
shell
System_file
kernel
Hardware
S.
O.
fondamenti di informatica 1 parte
1 D.U.
73
Sistema Operativo:
componenti essenziali
shell: conchiglia, guscio che interfaccia l’
utente; e’ sostanzialmente un interprete di
comandi con eventuale interfaccia grafica;
System_file: contiene il gestore-informazioni
dell’ utente poste nei file (FILE cfr. parte 2);
kernel: e’ il nucleo del sistema operativo.
Interfaccia l’ hardware nel senso che esegue le
funzioni di base come smistare il controllo della
C.P.U. tra i programmi residenti in memoria (cio’ e’
fatto dallo Scheduler, sua componente) e sincronizzare
la CPU con la memoria e/o altre unita’ … (cfr.+oltre)
fondamenti di informatica 1 parte
1 D.U.
74
S.O. piu’ diffusi
per personal computer:
DOS = Disk Operating System basato su
comandi e messaggi: il suo “zoccolo duro” e’
composto da 3 programmi MSDOS.SYS, IO.SYS
COMMAND.COM;
Windows
Apple_top
What you see is what
you get !
 dotati di interfaccia grafica a oggetti rappresentati da
icone e manipolabili col mouse;
per ogni tipo di elaboratore: Unix (AT&T)
fondamenti di informatica 1 parte
1 D.U.
75
Software di base
E’ composto da programmi di utilita’ di cui tipici
esempi sono:
editor;
interpreti;
compilatori;
assemblatori
….
Strumenti Software indispensabili per
costruire programmi
eseguibili (vedere +oltre)
fondamenti di informatica 1 parte
1 D.U.
76
Programmi applicativi
Tipico esempio: Word Processor o elaboratore
di testi -> fa apparire E.E. come una potente e
veloce macchina da scrivere (che non c’e’ !
Virtualizzazione !)
Altro esempio: Data Base Management System
o Sistema di Gestione di Basi di Dati. (Gestione
= lettura e registrazione, aggiornamento
visualizzazione.) Si tratta di un insieme di
programmi per la gestione di archivi di
informazioni strutturate (per es. in forma di
tabelle) e manipolabili singolarmente o in modo
incrociato, integrato.
fondamenti di informatica 1 parte
1 D.U.
77
R.D.B.M.S. o S.G.B.D.R
Questi sono i Sistemi di Gestione di Basi di Dati
Relazionali (S.G.B.D.R. o in inglese Relational
Data Base Management System = R.D.B.M.S.) .
Relazionali perche’ gli archivi appaiono all’
utente come tabelle o Relation ossia Relazioni
(intese in senso matematico di “associazioni tra
dati”, messe in evidenza dalle tabelle).
Sulle tabelle di dati si lavora con operazioni che
seguono regole precise => Algebra delle
fondamenti di informatica 1 parte
relazioni.
1 D.U.
78
…. Friendly ?
L’ algebra non e’ amichevole, R.D.B.M.S.
spesso lo sono. I Relational D.B.M.S. spesso
presentano un interfaccia grafica per
facilitare il modo di operare. Esempio:
sistema M.S.ACCESS e il DataBase db1.
SEMPRE pero’ occorre sapere COSA si vuole
fare, COSA si vuole ottenere ossia aver
chiare le specifiche di progetto. COME fare
puo’ essere indicato da un uso appropriato
dell’ HELP del Sistema
in linea.
fondamenti di informatica 1 parte
1 D.U.
79
Scarica

fondinf1.1