fondamenti di informatica
parte 1
appunti per Nettuno a.a. 20042005
di
anna maria carminelli gregori
fondamenti informatica1 parte 1
1
PREMESSA
Utilizzo degli appunti :
il primo file e’ fondinf1.1 ed usando Internet si
ottiene con:
ftp:\\serving4.ds.units.it\arc_stud\carmin\Nettu
no2004-05/fondinf1.1 .
E’ costruito come tutti gli altri con/per Power
Point: gli altri saranno 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
IL Sistema Operativo usato nel Laboratorio di
Informatica è Windows2000 ossia un S.O. che può
controllare un insieme di computer collegati in rete.
I computer fanno parte del dominio di rete ds.units.it
Il S.O. sta su un Elaboratore Elettronico, il SERVER, e
“gestisce” la rete condividendo tra i computer il suo
disco fisso, suddiviso in partizioni chiamate E: , H: , X:
(secondo le denominazioni in DOS, vedere parte 2);
Significato e tipo della rete del Laboratorio: l’ utente
usa uno dei computer (CLIENT) connessi al Server e di
questo Server puo’ leggere le informazioni registrate
sul suo disco.
Per gli studenti con psw. sulla partizione E: viene
“mappato” l’ archivio_studenti \\serving4\arc_stud
fondamenti di informatica 1 parte
1 D.U.
3
Laboratorio ed uso della rete
Quindi per accedere ai miei file dal laboratorio
basta E:/carmin/Nettuno2004-05/fondinf1.1
I file che lo studente (=utente ) vuole creare
possono stare o sulla macchina locale, Client,
(MyComputer), o sul disco condiviso del Server
in H: e X:
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.
RICORDARSENEfondamenti
!! di informatica 1 parte
1 D.U.
4
username e password
saranno comunicati ad ogni studente di
Nettuno
PER ORA I LORO VALORI PROVVISORI
sono:
username: teledid
password: nettuno2004
tutto in minuscolo perche’ Windows e’
“sensitivo” ossia conosce la differenza tra
minusolo e maiuscolo
!
fondamenti di informatica 1 parte
1 D.U.
5
I valori provvisori
abilitano l’ utente ad accedere al disco del
Server (importante partizione E:) ed a usare
tutti i programmi residenti sul Client o
“Mycomputer”
NON l’ abilitano a scrivere alcunche’ sul disco
del Server 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. Solo i valori definitivi
abilitano a scrivere su H: e X:
fondamenti di informatica 1 parte
1 D.U.
6
fondamenti di informatica 1
Scopo degli Appunti:
richiamare: 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++ ….per iniziare a fare
programmi semplici, ma ... tosti!
Propedeuticita': conoscenza di base della
matematica fondamenti di=>
informatica 1 parte
1 D.U.
8
… perchè l’ informatica, che
cos’ e’?
Intanto NON E’: Calcolo numerico ne’
Geometria ossia non e’ una disciplina
che insegna metodi numerici o geometrici;
NON E’ Probabilita’ nè Statistica nè.....
un gioco nel senso che non insegna a
giocare con l' elaboratore e va presa sul
serio;
nè una materia di ausilio alle altre …
fondamenti di informatica 1 parte
1 D.U.
9
Cosa e’ l’ informatica
…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 per questo corso
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
Il Programma di Nettuno ha
a) una parte teorica,
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.;
rappresentazione e codifica delle informazioni;
l' Hardware, struttura, componenti funzionali e fisiche
di E.E.; funzionamento ciclico della CPU e cenni sul
suo Linguaggio;
il Software ed il Sistema Operativo
fondamenti di informatica 1 parte
1 D.U.
12
(segue programma:
a)
utilizzo del S.O. sui Personal Computer (riferimenti DOS, e
WINDOWS);
editor, interpreti, compilatori e assemblatori, prog.
applicativi:
la programmazione: linguaggi e traduttori (Fortran, Pascal,
C, C++); composizione e struttura di un programma,
progetto e costruzione di un programma con metodo
TOP-DOWN;
fasi del processo di traduzione di un programma;
calcolo booleano: fondamenti, tabelle di verita’, circuiti
logici corrispondenti, combinatori e sequenziali.
fondamenti di informatica 1 parte
1 D.U.
13
(segue programma:)
b) il linguaggio C e C++:
b) Uso dell’ ambiente di sviluppo (della Borland per il
C++)
fasi di sviluppo di un programma: progetto - stesura compilazione - "linkaggio"- esecuzione; esempi in Lab.;
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.;
tipi di dati e di operatori; le variabili, le espressioni,
la frase di assegnazione; variabili locali e globali,
ambiente locale e globale; cenni su compilazione
separata;
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.;
elaborazione sequenziale, condizionale, ciclica;
argomenti di sottoprogrammi e passaggio di
parametri tra (sotto)-programmi (per indirizzo e
valore); funzioni e procedure; esempi in Lab.
argomenti del main; informazioni strutturate
come vettori, stringhe, matrici; passaggio di
vettori e matrici a sottoprogrammi;
esempi in Lab. con costruzione di programmi di
ordinamento.
fondamenti di informatica 1 parte
1 D.U.
15
Argomenti importanti da ritrovare
in questi appunti
1. Rappresentazione e codifica informazioni con le relative
conversioni;
2. Hardware & Software dove per Hardware si intende:
struttura, componenti funzionali e fisiche di E.E. e fasi del
funzionamento ciclico della CPU,
3. e per Software: Sistema Operativo (con riferimenti
WINDOWS e DOS); editor, interpreti, compilatori... e
prog. applicativi;
4. La programmazione: struttura di un programma e sua
costruzione a moduli in C++ con uso dei computer del
Lab. per implementarlo e farlo funzionare;
5. Argomenti di sottoprogrammi e passaggio di parametri
tra (sotto)-programmi
.
fondamenti di informatica 1 parte
1 D.U.
16
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.
17
Introduzione a E.E.
E.E.
cosa è, a cosa serve, come è …..
Storia e Antenati …….(curiosità)
Livelli di utilizzo
fondamenti di informatica 1 parte
1 D.U.
18
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.
19
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.
20
E.E. Storia e Antenati (curiosità)
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.
21
E.E. Storia e Antenati (curiosità)
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.
22
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.
23
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.
24
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.
25
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 di =0,1….9 coefficienti
fondamenti di informatica 1 parte
1 D.U.
26
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 disponibili
per la rappresentazione ed il valore di N e’:
n-1
Valore N=Si=0 di . ri
(notare i 0 per N intero)
Es. in base 2: 1102 = 1.22+1.21+0.20 = 610 …
… e in base 1 ?!fondamenti di informatica 1 parte
1 D.U.
27
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.
28
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.
29
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.
30
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.
31
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.
32
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.
33
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.
34
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+10I
1
2
Complemento
alla base 210 (=102 ) di 1
fondamenti di informatica 1 parte
1 D.U.
35
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.
36
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.
37
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:
10002+1=10012= -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.
38
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.
39
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.
40
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.
41
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, E, M)
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 (senza punto) =908;
E=+1
(0, +1, 908)
42
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 sia in
modulo e segno sia col complemento a 2 per
valori <0.
Esempio: -1/4 ha S=1, M=0.2510=0.012= 0.1002 . 2-1
cioe’ E= -1 = 1012, in modulo e segno. Se si
riservano 4 bit per M, 3 bit per E ed 1 per S si
ottiene: 1 101 10002 , con M senza punto!
Conversione da base 10 a base 2 per valori
frazionari: successione di moltiplicazioni per 2
basandosi sulla rappresentazione dei numeri e
sulla definizione euclidea di moltiplicazione.
43
Moltiplicazioni: perche’ ?
n-1
m
Valore N=Si=0 di . ri + Si=1 d-i. r -i =
Ni
+ Nf
Nf = d-1. r -1 + d-2. r -2 + d-3. r -3 + …. =
.
.
.
1
1
= r
(d-1 + d-2 r + d-3 r 2 + ….)
Nf . r = d + d . r -1 + d . r -2 + …
-1
-2
-3
la prima moltiplicazione isola la prima cifra d-1 ,
le moltiplicazioni successive isoleranno le altre
cifre.
fondamenti di informatica 1 parte
1 D.U.
44
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.
45
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.
46
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, E, M):
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.
47
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.
48
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.
49
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 01112 {
Lettera maiuscola F
Operazioni sulle informazioni:
1) "
elementari (livello hard. ling. macchina)
2) "
complesse ( "
soft. )
fondamenti di informatica 1 parte
1 D.U.
50
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.
51
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.
52
(
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.
53
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.
54
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.
55
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.
56
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.
57
Introduzione a E.E.
Struttura funzionale:
Temporizzatore
Unita’ Centrale di Controllo
Registri
Flag
Unita’ di controllo di
I/O
Periferiche
CPU Unita’ Aritmetico - Logica
Memoria Centrale
Memorie di massa
fondamenti di informatica 1 parte
1 D.U.
58
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.
59
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
1000MHz e periodo di 1nsec ...
fondamenti di informatica 1 parte
1 D.U.
60
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.
61
Componenti funzionali: C.M.
= Central Memory
Memoria Centrale: RAM (Random Access Memory)
Modello di von Neumann:
_ memoria di tipo lineare ossia: successione di
locazioni (pacchetti di bit, 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 (per unfondamenti
Personal
n.
di informatica 1 parte
1 D.U.
62
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 cablata permanentemente)
Memoria Periferica (o di massa) di LETTURA /
SCRITTURA: dischi, nastri (bobine) ... dispositivi
magnetici. Caratteristica: memoria permanente!
fondamenti di informatica 1 parte
1 D.U.
63
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.
64
Registro P di 4 bit => 16 byte
indirizzabili
CPU = “Ragnetto”
Central Memory
0000
0001
REG. P.
Registro P.= Pointer o
i.C.=Istruction Counter
fondamenti di informatica 1 parte
1 D.U.
1111
65
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)
66
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.
67
Ancora CPU
La CPU oltre alla Unita’ di Controllo contiene
REGISTRI, alcuni dei quali hanno 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.
68
Flusso di informazioni
Tornando allo schema della diapositiva 58 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.
69
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. che si puo’
pensare come una “membrana filtro” attorno
all’ hardware);
_ i programmi di utilita’.
I prg. Applicativifondamenti
formano
un altro strato .
di informatica 1 parte
1 D.U.
70
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.
71
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.
72
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.
73
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
Soft.base: S.O.
fondamenti di informatica 1 parte
1 D.U.
74
Sistema Operativo:
componenti essenziali
shell: conchiglia, guscio che interfaccia l’
utente; e’ sostanzialmente un interprete di
comandi che puo’ essere di tipo grafico;
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.
75
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 con oggetti rappresentati
da icone e manipolabili col mouse;
per ogni tipo di elaboratore: Unix (AT&T)
fondamenti di informatica 1 parte
1 D.U.
76
Software di base
E’ composto anche 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.
77
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 !) Altri esempi: Power_Point
che sto usando (!) e Data Base Management
System o Sistema di Gestione di Basi di Dati.
(Gestione = lettura e registrazione,
aggiornamento, visualizzazione.) Si tratta di un
Sistema = (insieme di programmi) per gestire
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.
78