Date post: | 01-May-2015 |
Category: |
Documents |
Upload: | orsola-carnevale |
View: | 216 times |
Download: | 0 times |
fondamenti informatica1 Nettuno parte 1
1
fondamenti di informatica parte 1
appunti per Nettuno a.a. 2005-08dianna maria carminelli [email protected]
fondamenti informatica1 Nettuno parte 1
2
PREMESSAUtilizzo degli appunti composti da 4 file che si
trovano sotto il “mio” sito da dove si può scaricare il materiale esposto a lezione ed esercitazioni. La più semplice modalità di collegamento è la seguente:
collegarsi alla Home Page dell' Università di Trieste, click su Facoltà, click su Ingegneria, click sull' indirizzo in alto http://www.ing.univ.trieste.it/ Si apre la pagina della Facoltà di Ingegneria e verso la fine, c'è archivio studenti (arc_stud)
2 click e si apre una finestra con (tra le altre) la cartella carminelli (…segue)
fondamenti informatica1 Nettuno parte 1
3
continua2 click e si apre la finestra con (tra le altre) la cartella
nettuno 20062 click e si aprirà la finestra con tutto il materiale, ossia: • 4 cartelle, in formato Power-Point, con le mie
dispense Fondinf.ppt contenenti gli argomenti più interessanti del corso (NELLA PRIMA DISPENSA SONO SPECIFICATI QUELLI DI MAGGIOR RILIEVO!!!) e nell’ ultima anche esempi di programmi che avevo dato a suo tempo ad esami;
• nella prima cartella c’è anche la Bibliografia del corso; • 6 cartelle indicate come Programmi dove si trovano
esempi di programmi in C++ e C che sono citati nelle dispense;
• altri file e cartelle utili! (per ora c’è solo una parte del materiale)
fondamenti informatica1 Nettuno parte 1
4
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 informatica1 Nettuno parte 1
5
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 informatica1 Nettuno parte 1
6
Perché il C++ ?E’ un linguaggio per professionisti chederiva dal C che é stato usato anche
per scrivere il Sistema operativo UnixSi presta alla soluzione di problemi di
vari tipi Simili al C++ ci sono vari linguaggi di
programmazione moderni, come il Java
Noto il C++ diventa facile capire programmi scritti in Java
fondamenti informatica1 Nettuno parte 1
7
Modalita’ di utilizzo IL Sistema Operativo usato nel
Laboratorio di Informatica è Windows XP ossia un S.O. che può controllare un insieme di computer collegati nel dominio di rete ds.units.it
Il S.O. sta su un Elaboratore Elettronico, il SERVER, e “gestisce” la rete condividendo con i computer il suo disco fisso, suddiviso in partizioni
Significato e tipo della rete del Laboratorio: l’ utente usa uno dei computer (CLIENT) connessi al Server di cui puo’ leggere le informazioni registrate sul suo disco.
Per gli studenti dotati di psw, l’ archivio studenti è “mappato” su:
arc_stud on ‘docenti.ing.units.it’
fondamenti informatica1 Nettuno parte 1
8
Gli studenti dotati di psw possono:1. accedere ai miei file dal laboratorio: basta
collegarsi a arc_stud on ‘docenti.ing.units.it’ e dare un clic sulle cartelle: carmin Nettuno2006 fond1 …
2. accedere al software del sistema su: prog_stud on ‘docenti.ing.units.it’ (S:)
3. creare file e memorizzarli o sulla macchina locale, Client, (MyComputer), o sul disco condiviso del Server on fs1ts.ds.units.it\home$ (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. RICORDARSENE !!)
fondamenti informatica1 Nettuno parte 1
9
username e passwordsono personali di ogni studente di Nettuno perché
“Non possiamo dare piu' account di gruppo, ma il presente
Username=teledidPassword=nettuno2006 ???? lo lasciamo attivo sicuramente per oggi
(18.11.2006). e forse nelle due settimane successive. POI gli studenti devono procurarsi il loro account personale (c'e' sia sulla lettera di prima immatricolazione, altrimenti chiedere in Segreteria). Questi sono valori provvisori (tutto in minuscolo perche’ Windows e’ “sensitivo” ossia conosce la differenza tra minusolo e maiuscolo !)
fondamenti informatica1 Nettuno parte 1
10
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 partizioni del Server
fondamenti informatica1 Nettuno parte 1
11
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 informatica1 Nettuno parte 1
12
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 informatica1 Nettuno parte 1
13
… 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 informatica1 Nettuno parte 1
14
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 informatica1 Nettuno parte 1
15
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 informatica1 Nettuno parte 1
16
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 informatica1 Nettuno parte 1
17
(segue programma: a)
utilizzo del S.O. sui Personal Computer (riferimenti DOS, e WINDOWS); software di base (editor, interpreti, compilatori e
assemblatori); prog. applicativi; la programmazione: linguaggi e traduttori (Fortran,
Pascal, C, C++); composizione e struttura di un programma,
con progetto e costruzione di un programma con metodoTOP-
DOWN; fasi del processo di traduzione di un programma; calcolo booleano: fondamenti, tabelle di verita’, circuiti
logici corrispondenti, combinatori e sequenziali.
fondamenti informatica1 Nettuno parte 1
18
(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 informatica1 Nettuno parte 1
19
(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 informatica1 Nettuno parte 1
20
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 informatica1 Nettuno parte 1
21
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 informatica1 Nettuno parte 1
22
E.E.cosa è, a cosa serve, come è …..Storia e Antenati …….(curiosità)Livelli di utilizzo
Introduzione a E.E.
fondamenti informatica1 Nettuno parte 1
23
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 informatica1 Nettuno parte 1
24
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 informatica1 Nettuno parte 1
25
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 informatica1 Nettuno parte 1
26
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 informatica1 Nettuno parte 1
27
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 informatica1 Nettuno parte 1
28
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 nano-secondo (10-9 sec.) ed anche del pico-secondo (10-12 sec.), sono dedicati a: memorizzare, combinare, trasferire bit = =>elaborare informazioni = sequenze di bit.
fondamenti informatica1 Nettuno parte 1
29
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)
Necessita’ di un Codice: corrispondenza tra 2 alfabeti !
fondamenti informatica1 Nettuno parte 1
30
Codifica/Decod. di informazioni:
1) di tipo numerico intero;2) di tipo numerico non intero
(floating-point);3) di tipo testo.
fondamenti informatica1 Nettuno parte 1
31
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= i=0…N.o cifredi.10i con di = 0,1…9
Es. 9410 = 4 . 100+9 . 101
fondamenti informatica1 Nettuno parte 1
32
Sistema posizionaleIn 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-1Valore N=i=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 informatica1 Nettuno parte 1
33
Importanza base 2 Come già indicato (repetita juvant) l’ elaboratore
elettronico per elaborare informazioni dispone di 2 soli simboli ossia di 0 e 1;
ogni informazione diventa una sequenza di 0 e 1;
i valori numerici per l’ elaboratore sono codificati in base 2, ma esistono tante basi…
Esempi: 01112 = 710 = 78 , 11112 =1510 = 178 NOTA: 3 bit sono necessari e sufficienti per
rappresentare la massima cifra unitaria in base 8 e 4 bit sono necessari e sufficienti per rappresentare la massima cifra unitaria in base 16.
fondamenti informatica1 Nettuno parte 1
34
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 informatica1 Nettuno parte 1
35
Conversioni tra basi: regole 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 = 1510 . 161 +1510 . 160 = 25510 = MAX INTERO IN
UN BYTE = 1 . 162 - 1 = 25610 - 1 = 10016 - 1.
fondamenti informatica1 Nettuno parte 1
36
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 informatica1 Nettuno parte 1
37
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 = Iª cifra)
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 informatica1 Nettuno parte 1
38
Valori significativiMAX 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 informatica1 Nettuno parte 1
39
Interi negativi: invece della notazione in modulo e segno
si usa quella in complemento a 2Una 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 informatica1 Nettuno parte 1
40
Complemento a 10L’ 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 informatica1 Nettuno parte 1
41
L’ “Orologio” decimale con 2 sensi: antiorario (-) orario (+)Altro esempio in Decimale:810-710 = 810+310 = =1 unita’
In Binario:1-1 = 0 1-1+102 = 1 02
1+(102 -1) = 1 02
Complemento alla base 210 (=102 ) di 1
8+3
fondamenti informatica1 Nettuno parte 1
42
In binario come si fa il complemento alla base 2 : ?
Si cambiano gli 0 in 1 , gli 1 in 0 e si somma 1es: 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) 0000La cifra 1 esce a sinistra dal registro: non conta Il bit piu’ significativo nel registro (a sinistra) se
posto a 1 rappresenta una quantita’ < 0,L’ intervallo di rappresentazione in n bit ha una
cifra in più a sinistra, come si vedrà in seguito:[-2n-1, +2n-1-1] se n=4 => [-8, +7]10
fondamenti informatica1 Nettuno parte 1
43
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 da1 0 0 0 02: cio’ equivale a cambiare gli zeri in
1 e sommare 1. VERIFICARE !!!!! Per es. 310=00112; 1 00002 - 00112 = 11012
fondamenti informatica1 Nettuno parte 1
44
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 informatica1 Nettuno parte 1
45
DomandeQuale 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 informatica1 Nettuno parte 1
46
Motivazione per il Floating-Point
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 informatica1 Nettuno parte 1
47
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 mValore N=i=0 di
. ri + i=1 d-i. r -i
fondamenti informatica1 Nettuno parte 1
48
Codifica floating-point usando la Mantissa M normalizzata:
occorre fissare il posto standard del punto decimale che si stabilisce stia a sinistra della prima cifra significativa. Per es.
9.0810=9 .100+ 0 .10-1+ 8 .10-2 = 0.908 . 101 = 908.0 . 10-2 =… Dove va il punto? In forma normalizzata va a sinistra di 908 preceduto dal segno: (-1)0 . 0.908 . 10+1
: NOTARE: M10 <1
Forma normalizzata di N=(-1)s . M . rE
Importante la tripla (S, M, E) con S {0,1} (il Segno del numero é (-1)S); M = valore assoluto del numero col primo bit =1; E= Esponente di r con segno. Nell’ esempio fatto S=0; M (senza punto)=908; E=+1 (0, 908, +1)
fondamenti informatica1 Nettuno parte 1
49
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.
fondamenti informatica1 Nettuno parte 1
50
Moltiplicazioni: perche’ ?
n-1 m Valore N=i=0
di . ri + i=1 d-i
. r -i = Ni + NfNf = d-1
. r -1 + d-2. r -2 + d-3
. r -3 + …. == r -1 . (d-1 + d-2
. r -1 + d-3. r -2 + ….)
Nf . r = d-1 + d-2. r -1 + d-3
. r -2 + …la prima moltiplicazione isola la prima cifra d-1 ,
le moltiplicazioni successive isoleranno le altre cifre.
fondamenti informatica1 Nettuno parte 1
51
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 informatica1 Nettuno parte 1
52
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 ! Overflow !
_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. 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 informatica1 Nettuno parte 1
53
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 informatica1 Nettuno parte 1
54
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 informatica1 Nettuno parte 1
55
Codice ASCII: qualche esempioPrimi 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 informatica1 Nettuno parte 1
56
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 01102 { Lettera maiuscola F
Operazioni sulle informazioni:1) " elementari (livello hard. ling. macchina)2) " complesse ( " soft. )
fondamenti informatica1 Nettuno parte 1
57
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 informatica1 Nettuno parte 1
58
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 informatica1 Nettuno parte 1
59
( 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 informatica1 Nettuno parte 1
60
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 informatica1 Nettuno parte 1
61
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 informatica1 Nettuno parte 1
62
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 informatica1 Nettuno parte 1
63
Il via alle varie unita’ componenti e’ scandito
periodicamente da un orologio (timer). “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 rappresentano i BUS ossia l’ insieme di cavi che permettono il passaggio di informazioni e di segnali di controllo e le frecce piccole solo di questi ultimi.
fondamenti informatica1 Nettuno parte 1
64
Un appunto in più:
Negli E.E. più moderni le C.P.U. possono essere anche in numero >1 (due o quattro) collegate tra loro.
Possono funzionare sia in modo indipendente sia in simbiosi usando memoria condivisa.
Intuitivamente il grafico seguente si riferisce ad un E.E. con una C.P.U.
fondamenti informatica1 Nettuno parte 1
65
Introduzione a E.E. Struttura funzionale:
Temporizzatore
Unita’ Centrale di Controllo Unita’ Aritmetico - Logica
Unita’ di controllo di I/O
Memoria Centrale
PerifericheMemorie di massa
CPU
Registri Flag
fondamenti informatica1 Nettuno parte 1
66
Flusso di informazioniNello schema della precedente diapositiva 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 (Central Processing Unit) e quindi nella RAM (Random Access Memory).
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 informatica1 Nettuno parte 1
67
Componenti funzionali: il clockLe 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 informatica1 Nettuno parte 1
68
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 informatica1 Nettuno parte 1
69
CPU (= microprocessore)Componenti di CPU 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) avvenga senza perdite.
fondamenti informatica1 Nettuno parte 1
70
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 indirizzabili (per un Personal n.o di byte).
fondamenti informatica1 Nettuno parte 1
71
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 informatica1 Nettuno parte 1
72
RAM E CPURAM: 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 informatica1 Nettuno parte 1
73
Registro P di 4 bit => 16 byte indirizzabili
CPU = “Ragnetto”
REG. P.
Central Memory
0000
0001
1111
Registro P.= Pointer o
i.C.=Istruction Counter
fondamenti informatica1 Nettuno parte 1
74
C.M. indirizzabile, ma fino a ?… Indirizzi e byte
Con 4 bit si ottengono 24= 16 possibili indirizzi; Con 8 bit si ottengono 28= 256 possibili indiriz. " 9 " " " 29= 512 " " " 10 " " " 210=1024 poss. ind.= 1K (Kilo byte)
" 11 " " " 211 = 2 K " " " 12 " " " 212 = 4 K " " " 13 " " " 213 = 8 K " " " 14 " " " 214 = 16 K " " " 15 " " " 215 = 32 K " " " 16 " " " 216 = 64 K " " . . . . . . . " 20 " " " 220=1024 K " " = 1M (Mega) . . . . . . . " 30 " " " 230 1000000 K " " = 1G (Giga) . . . . . . .
fondamenti informatica1 Nettuno parte 1
75
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 informatica1 Nettuno parte 1
76
Ancora CPULa 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 informatica1 Nettuno parte 1
77
Flusso di informazioniTornando 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 informatica1 Nettuno parte 1
78
E.E. Hard. + Soft. Per l’ utente:E.E. solo hardware => unfriendlyE.E. con Soft. di base => - unfriendlyE.E. con Soft. di base e Soft. applicativo => friendlyIl 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. Applicativi formano un altro strato .
fondamenti informatica1 Nettuno parte 1
79
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 informatica1 Nettuno parte 1
80
Esigenza dell’ utente:avere a disposizione una macchina con cui
poter lavorare e interagire indipendente- mente 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 informatica1 Nettuno parte 1
81
Sistema Operativo: aspetti (ricordare: il processo di virtualizzazione si
propaga ad ogni strato di software !)QUINDI: funzione 1 di S.O. = GESTORE OTTIMALE di
tutte le componenti di un Elaboratore (=Sistema Complesso) ossia CPU, memorie, interfacce di rete, … qualunque dispositivo;
funzione 2 di S.O. = Interfaccia amichevole
fondamenti informatica1 Nettuno parte 1
82
Schema di Sistema OperativoAnche il S.O. puo’ essere visto come
un sistema a scatole cinesi (o a cipolla): il seguente schema e’ un’ alternativa.
System_file/Syst.Service
Hardwarekernel
shell
Soft.base: prg.util.
S.O.
APPLICATIVI
fondamenti informatica1 Nettuno parte 1
83
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/Service: contiene il gestore delle informazioni-utente poste nei file (FILE cfr. parte 2) e dei Servizi per es. per le Reti;
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 informatica1 Nettuno parte 1
84
Nuova
Sincronismo ?Coordinamento ?Controllo?
fondamenti informatica1 Nettuno parte 1
85
S.O. piu’ diffusiper 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;
WindowsApple_top dotati di interfaccia grafica con oggetti rappresentati
da icone e manipolabili col mouse;
per ogni tipo di elaboratore: Unix (AT&T)
What you see is what you get !
fondamenti informatica1 Nettuno parte 1
86
Software di baseTipici esempi di programmi di utilita’:editor: per comporre testi semplici; interpreti: per interpretare ed eseguire un
comando;compilatori: “ “ e tradurre nel linguaggio macchina le frasi di un programma;assemblatori: analoghi ai Compilatori, ma il
linguaggio artificiale, in cui è scritto il programma origine e’ elementare …..
Strumenti Software indispensabili per costruire programmi eseguibili (vedere +oltre)
fondamenti informatica1 Nettuno parte 1
87
Programmi applicativiTipico 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 informatica1 Nettuno parte 1
88
Appendice1: esempi di conversioni
1610 = X16 ?1710 = X16+ 1 In un registro di 4 bit +710 = 01112 “ “ “ “ “ “ - 710 = 10012 espresso
come il complemento a 2 di 01112
Sottraendo 1 da -710 risulta: -710 -1 = 10012 -00012 ma -00012 = 11112
(nella notazione del complemento a 2) quindi: -710 -1 = 10012 + 11112 = 10002 ossia
distanza 000 da - 810
fondamenti informatica1 Nettuno parte 1
89
Appendice1: ancora esempi Avendo un registro a 8 bit si ha: +5 = 000001012 col primo bit dedicato al segno; -5 = 111110112 col primo bit sempre dedicato al segno
che automaticamente risulta 1 facendo il complemento a 2 di 000001012
Quindi trovando un valore del tipo 11111111111110102 si deve pensare subito ad un valore espresso in complemento a 2 in 16 bit.
Il suo valore? si ottiene facendone il complemento a 2 che è: 00000000000001012+1 = 00000000000001102 = 610 e quindi il valore richiesto è -610
Quale è la forma normalizzata binaria Floating Point con 1 bit per S, 3 bit per E , 4 bit per M del valore X=1/4 in base 10?
S=0, M=10002, E=1102
fondamenti informatica1 Nettuno parte 1
90
Nuove domande senza risposte:cosa rappresenta la seguente sequenza di
valori assoluti: 10 11 12 13 14 20 22 101 1010 ?Scrivere in italiano una frase ambigua;Cos’è un istruzione?Differenza tra CM e Memoria di massaDescrivere l’ architettura di Von NeumannUna ricetta per cucinare gli spaghetti é un
algoritmo?Con 1 byte si rappresentano 256 simboli diversi
e con 6 bit?
fondamenti informatica1 Nettuno parte 1
91
Ancora da RICORDARE :
la codifica F.P. normalizzata fa riferimento alla base 2 e quindi il valore dell’ esponente riguarda la base 2. Col metodo delle moltiplicazioni successive ogni moltiplicazione per la base isola una nuova cifra nella nuova base. Per es. =3.1410 avra’ 112 come parte intera e 00100011112 come parte decimale. Normalizzando +.1100100011112 E+102 con S=0, M=1100100011112, E=0102 .
fondamenti informatica1 Nettuno parte 1
92
ed ancora:Conversioni di base: avendo 1.510 da convertire in
base 2 occorre usare la codifica Floating Point. NON FARE 15.010 (10-1)10 , ma valutare 1.5 in base 2 che vale: ___ 21___20__0__2-1___ 2-2___
0 1 1 0 ossia 1.12 ottenendo M=1100 , E=012 e S=0. L’ esponente 2 é in base
2!Avendo in forma Floating Point
normalizzata : S=0 E=0102 M =10102 si ha: numero positivo, esponente (+10)= 22 , mantissa (1010)2=(1/2 +1/8=0.625*4=2.5)10
Avendo 1-1 si ottiene 0 in qualunque base, ma con la codifica in complemento a 2 e 6 bit per registro si ha: 000001+ 111111= 1 000000 e quindi 0 perchè
1 è fuori dal registro di 6 bit