183
CORSO DI INTRODUZIONE ALL’INFORMATICA Ing. Giovambattista Ianni E-Mail: [email protected] Indirizzo: Dipartimento di Matematica, Università della Calabria 87036 Rende (Cosenza) Tel. Ufficio: 0984 - 496430

1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: [email protected] Indirizzo: Dipartimento di Matematica, Università della Calabria

Embed Size (px)

Citation preview

Page 1: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

1

CORSO DIINTRODUZIONE

ALL’INFORMATICA

Ing. Giovambattista IanniE-Mail: [email protected]

Indirizzo: Dipartimento di Matematica,

Università della Calabria

87036 Rende (Cosenza)

Tel. Ufficio: 0984 - 496430

Page 2: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

2

PROGRAMMA DEL CORSO

LEZIONI Introduzione Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori (Reti Locali, Internet) Elementi di Programmazione

Page 3: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

3

PROGRAMMA DEL CORSO

LABORATORIOAmbiente Operativo WindowsElaborazione dei TestiStrumenti e Servizi InternetFogli Elettronici

Page 4: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

4

Prove di Accertamento:

• Scritto (teoria) +

• Prova Pratica (laboratorio)

Page 5: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

5

TESTI CONSIGLIATI:

Sciuto, Bonanno, Fornaciari, Mari Introduzione ai Sistemi Informatici

McGraw-Hill 1997

Curtin, Foley, Sen, Morris Informatica di Base McGraw-Hill 1999

Page 6: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

6

INTRODUZIONEAGLI ALGORITMI

Page 7: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

7

ALCUNE DOMANDE FONDAMENTALI

Quali istruzioni esegue un elaboratore? Quali problemi può risolvere un

elaboratore? Esistono problemi che un elaboratore

non può risolvere? Che ruolo ha il linguaggio di

programmazione?

Page 8: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

8

Il PROBLEMA DI FONDO

Come si costruisce la soluzione a un problema?

Qual è il giusto “punto di partenza” per pensare la

soluzione a un problema? Quali metodologie e tecniche usare?

Page 9: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

9

ALGORITMOSequenza finita di mosse che risolve in un tempo finito unaclasse di problemi.

CodificaFase di scrittura di un algoritmo attraverso un insiemeordinato di frasi (“istruzioni”), scritte in un qualchelinguaggio di programmazione, che specificano leazioni da compiere.

EsecuzioneL'esecuzione delle azioni nell'ordine specificato dall'algoritmoconsente di ottenere, a partire dai dati di ingresso, irisultati che risolvono il problema.

ALCUNI CONCETTI CHIAVE

Page 10: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

10

ESECUZIONE

Page 11: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

11

• Ogni elaboratore è una macchina in grado di eseguireazioni elementari su dati• L'esecuzione delle azioni elementari è richiestaall'elaboratore tramite comandi chiamati istruzioni• Le istruzioni sono espresse attraverso frasi di unopportuno linguaggio di programmazione• Un programma non è altro che la formulazione testualedi un algoritmo in un linguaggio di programmazione

ALGORITMO E PROGRAMMA

Page 12: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

12

ESEMPIO DI PROGRAMMA

Sub SOMMA( )Dim A, B as IntegerA = InputBox("Immetti un numero")B = InputBox(“Immetti un secondo

numero”)Print “Somma:”; A+B

End Sub

Page 13: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

13

ALGORITMI: PROPRIETA’ FONDAMENTALI

1) Eseguibilità: ogni azione deve essere eseguibile da parte dell’esecutore dell’algoritmo in un tempo finito

2) Non-ambiguità: ogni azione deve essere univocamente interpretabile dall'esecutore

3) Finitezza: il numero totale di azioni da eseguire, per ogni insieme di dati di ingresso, deve essere finito.

Page 14: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

14

ALGORITMI EQUIVALENTIDue algoritmi si dicono equivalenti quando:• hanno lo stesso dominio di ingresso;• hanno lo stesso dominio di uscita;• in corrispondenza degli stessi valori nel dominio diingresso producono gli stessi valori nel dominio diuscita.

Page 15: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

15

ALGORITMI EQUIVALENTI Due algoritmi equivalenti:• forniscono lo stesso risultato• ma possono avere diversa efficienza• e possono essere profondamente diversi !

Esempio: moltiplicare tra loro due numeri

Algoritmo 1Somme successive:12x12 = 12+12+…+12=144

Algoritmo 2“somma e shift”: 12x 12= 2412= 144

Page 16: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

16

CI SONO COSE CHE UN

CALCOLATORE NON PUÓ FARE?

Sì. Ci sono problemi non calcolabili da nessun modello di calcolo reale o astratto

Esempio: data una funzione f : N N, stabilire se f(x) è costante per ogni valore di x

Page 17: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

17

RAPPRESENTAZIONE DELLE INFORMAZIONI

Page 18: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

18

RAPPRESENTAZIONE DELLE INFORMAZIONI

Idea di fondo: Usare presenza/assenza di carica elettricapassaggio/non passaggio di corrente/luce

BInary digiT (cifra binaria): il BIT

Usiamo cioe’ una rappresentazione binaria(a due valori) dell’informazione

Page 19: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

19

INFORMAZIONI COMPLESSE

Con 1 bit rappresentiamo solo 2 diverse informazioni:

si/no - on/off - 0/1

Mettendo insieme piu’ bit possiamo rappresentare piu’ informazioni:

00 - 01 - 10 - 11

Page 20: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

20

INFORMAZIONI COMPLESSE

In generale, con N bit, ognuno dei quali puo’ assumere 2 valori, possiamo rappresentare 2N informazioni diverse

viceversa:

Per rappresentare M informazioni dobbiamo usare N bit, in modo che: 2N >= M

Page 21: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

21

ESEMPIO:

Per rappresentare 57 informazioni diversedobbiamo usare gruppi di almeno 6 bit. Infatti:

26 = 64 > 57Cioe’ un gruppo di 6 bit puo’ assumere 64 configurazioni diverse:

000000 / 000001 / 000010 …/ 111110 / 111111

Page 22: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

22

IL BYTE:In informatica ha assunto particolare importanza il concetto di:

byte = 8 bit = 28 = 256 inf. diverseIl byte e’ usato come unita’ di misura per indicare le dimensioni della memoria, la velocita’ di trasmissione, la potenza di un elaboratoreUsando sequenze di byte (e quindi di bit) si possono rappresentare caratteri, numeri immagini, suoni.

Page 23: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

23

IL SISTEMA DECIMALE

10 cifre di base: 0, 1, 2, …, 9 Notazione posizionale: la posizione di una cifra in

un numero indica il suo peso in potenze di 10. I pesi sono:– unita’ = 100 = 1 (posiz. 0-esima)– decine = 101 = 10 (posiz. 1-esima)– centinaia = 102 = 100 (posiz. 2-esima)– migliaia = 103 = 1000 (posiz. 3-esima)– … .. .. .. .. .. ...

Page 24: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

24

ES. DI NUMERO RAPPR. IN NOTAZIONE DECIMALE

Il numerale 2304 in notazione decimale(o in base 10) rappresenta la quantita’:

2304 = 2*103 + 3*102 +0*101 + 4*100 =

2000 + 300 + 0 + 4 = 2304 (numero)Nota: numero e numerale qui coincidono, perche’ il sisema decimale e quello adottato come sistema di riferimento.

Page 25: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

25

IL SISTEMA BINARIO

2 Cifre di base: 0 e 1. Notazione posizionale: la posizione di una cifra in un

numero binario indica il suo peso in potenze di 2. I pesi sono:– 20 = 1 (posiz. 0-esima)– 21 = 2 (posiz. 1-esima)– 22 = 4 (posiz. 2-esima)– 23=8; 24=16; 25=32; 26=64; 27=128; 28=256; 29=512; 210 =

1024; 211=2048, 212=4096;...

Page 26: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

26

ES. DI NUMERO RAPPR. IN NOTAZIONE BINARIA

Il numerale 10100101 in notazione binaria (o in base 2) rappresenta la quantita’:

10100101

1*27+0*26+1*25+0*24+0*23+1*22+0*21+1*20

128 + 0 + 32 + 0 + 0 + 4 + 0 + 1 =

165 (numero)

Page 27: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

27

IL NUMERO PIU’ GRANDE RAPPRESENT. CON N CIFRE

Sist. Decimale = 99…99 = 10N - 1

Sist. Binario= 11..11 = 2N - 1

Esempio: 11111111 (8 bit binari) = 28 -1 =

255. Per rappresentare il n. 256 ci vuole un

bit in piu’: 100000000 = 1*28 = 256.

Page 28: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

28

QUINDI:

Fissate quante cifre (bit) sono usate per rappresentare i numeri, si fissa anche il numero piu’ grande che si puo’ rappresent.:

– con 16 bit: 216 - 1 = 65.535– con 32 bit: 232 - 1 = 4.294.967.295– con 64 bit: 264 - 1 = circa 1,84 * 1019

Pero’: si possono rappresentare numeri piu’ grandi se si tollera un certo grado di imprecisione.

Page 29: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

29

CONVERSIONE DA BASE 2 A 10

Basta moltiplicare ogni bit per il suo peso e sommare il tutto:

Esempio:10100

1*24 + 0*23 + 1*22 + 0*21 + 0*20 =

16 + 4 = 20

la conversione e’ una somma di potenze (N.B. se il numero binario termina per 1 e’ dispari altrimenti e’ pari).

Page 30: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

30

CONVERSIONE DA BASE 10 A 2

Dividere il numero per 2 ripetutamente finche` il risultato non e` 0

Scrivere i resti in ordine inverso.

Esempio: conversione del numero 12

Divisioni: 12/2 = 6/2 = 3/2 = 1/2 = 0

Resti: 0 0 1 1

12 = 1100

Page 31: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

31

CONVERSIONE DA BASE 10 A 2

Idea di fondo: usare le potenze di 2 che, sommate, danno il numero N da convertire:

– Prendere le potenze di 2 <= di N nell’ordine dalla piu’ grande alla piu’ piccola (cioe’ 20)

– Associare il bit 1 alle potenze che vengono usate nella somma per ricostruire N

– Associare il bit 0 alle potenze non usate.

Page 32: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

32

ESISTONO ANCHE ALTRE BASI DI NUMERAZIONE:

CODICE OTTALE– cifre: 0, 1, 2, 3, 4, 5, 6, 7

– 10 (ottale) = 8 (decimale)

CODICE ESADECIMALE– cifre: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

– 10 (esadecimale) = 16 (decimale); B = 11; 2B=2*161+B*160 = 32+11 = 43

Page 33: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

33

RAPPRESENTAZIONE DI NUMERI POSITIVI E NEGATIVI

Il bit piu` a sinistra rappresenta il segno del

numero: 0 = ‘+’ 1 = ‘-’

1101 = -5

Con un byte possiamo rappresentare tutti i numeri

compresi tra

+128 (01111111) e –128 (11111111)

Page 34: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

34

RAPPRESENTAZIONE DI NUMERI FRAZIONARI IN

VIRGOLA FISSAUn numero frazionario e’ rappresentato come

una coppia di numeri interi: la parte intera e

la parte decimale.

12,52 <12; 52>

<1100; 110100>

Page 35: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

35

NUMERI A VIRGOLA MOBILE (NUMERI FLOATING POINT)

Idea: 12,52 = 1252/100 = 1252 * 10-2

Un numero decimale e’ rappresentato come un

intero moltiplicato per una opportuna potenza di

10, cioe’ con una coppia:

<1252; -2>

mantissa esponente

Page 36: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

36

NUMERI FLOATING POINT

E’ necessario stabilire quanti bit assegnare alla mantissa e all’esponente.

Ad esempio, con 16 bit a disposizione possiamo usarne 12 per la mantissa e 4 per l’esponente

(in realta’ dovremmo anche tener conto dei segni)

Page 37: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

37

NUMERI FLOATING POINT

Con lo stesso metodo possiamo rappresent. Numeri molto grandi. Ad esempio, con 8 bit:

5 bit di mantissa: 11111 = 313 bit di esponente: 111 = 3

11111111 = 31 * 107 = 310 milioni

Mentre, con la notazione classica, con 8 bitrappresentiamo al massimo il n. 255

Page 38: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

38

NUMERI FLOATING POINT

Ma allora, perche; non usare sempre la notazione floating point?

Perche’ si perde in precisioneEsempio: 5 cifre (decimali) : 4 per la mantissa, 1 per l’esponente. Rappresentare

312,45<3124; -1> = [312,4 .. 312,5]???

Page 39: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

39

NUMERI FLOATING POINT

Quindi: possiamo rappresentare numeri molto grandi o con molti decimali al costo di una perdita di precisione

Perche’? Perche’ i computer permettono solo rappresentazioni finite, e cosi’ dobbiamo approssimare alcuni numeri (ad esempio gli irrazionali), ma anche immagini e suoni

Page 40: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

40

LA CODIFICA DEI CARATTERI

E’ necessario convenire un codice per rappresentare i caratteri.Il codice ASCII (American Standard Code for Interchange Code) usa i primi 7 bit di ogni byte:

27 = 128 caratteri diversiSufficienti per l’alfabeto anglosassone

Page 41: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

41

ALTRI CODICI DI CODIFICA

ASCII ESTESO– Usa anche il primo bit di ogni byte– 256 caratteri diversi– non e’ standard (cambia con la lingua usata)

UNICODE– standard proposto a 16 bit (65.536 caratteri)

EBCDIC– altro codice a 8 bit della IBM (quasi in disuso)

Page 42: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

42

Le cifre 0..9 rappresentate in Ascii sono simboli o caratteri NON quantita’ numeriche

Non possiamo usarle per indicare quantita’ e per le operazioni aritmetiche. (Anche nella vita di tutti giorni usiamo i numeri come simboli e non come quantita’: i n. telefonici)

NUMERI IN ASCII

Page 43: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

43

CODIFICA DELLE IMMAGINI B/N

Dividere l’immagine in una griglia a righe orizzontali e verticali

Ogni quadratino della griglia e’ un pixel Codificare ogni pixel con:

– 0 se il pixel e’ bianco

– 1 se il pixel e’ nero

Convenire un ordinamento per i bit usati nella codifica

Page 44: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

44

CODIFICA DELLE IMMAGINI

Quindi: le immagini sono rappresentate con un certo livello di approssimazione, o meglio, di risoluzione, ossia il numero di pixel usati per riprodurre l’immagine:

– 640 x 480 pixel; 800 x 600 pixel– 1024 x 768 pixel; 1280 x 1024 pixel

N.B. Ha importanza anche il dot pitch, il grado di definizione del pixel: 0,25 - 0,28)

Page 45: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

45

CODIFICA DELLE IMMAGINI

- Anche il colore e’ approssimato. Per il bianco e nero, con 8 bit si codificano 256 livelli di grigio. (ottenuti regolando la luminosita’ del pixel)

- Per i video a colori, con 8 bit si rappresent. 256 colori, con 16 bit 64.000 colori, con 24 bit 16 milioni di colori diversi per pixel

- BITMAP: la rappresentazione di una immagine con codifica dei pixel. Porta via molto spazio:

(immagine a 640 x 480 x 256 c.=307.200 Byte)

Page 46: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

46

CODIFICA DELLE IMMAGINI

- E’ possibile risparmiare spazio nella rappr. delle immagini: Aree dello stesso colore si rappresentano in modo “abbreviato”.

- Esistono vari formati di codifica:

(bmp, gif, jpg, pict, tiff)

- E’ in genere possibile passare da un formato ad un altro.

Page 47: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

47

CODIFICA VETTORIALEDELLE IMMAGINI

Istruzioni su come disegnare l’immaginep.e.: Linea dal punto <10;12> a <20; 30> Idonea per immagini di tipo geometrico (p.e.,

progetti ingegneristici). Richiede poco spazio. Il formato piu` diffuso e` il PostScript (ps, eps) - anche per la stampa dei testi Altri formati: wmf, cdr (CorelDraw)

Page 48: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

48

CODIFICA DEI FILMATI Sono sequenze di immagini compresse: (ad

esempio si possono registrare solo le variazioni tra un fotogramma e l’altro)

Esistono vari formati (compresi i suoni):– mpeg (il piu’ usato)– avi (microsoft)– quicktime (apple)– mov

E’ possibile ritoccare i singoli fotogrammi

Page 49: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

49

CODIFICA DEI SUONIL’onda sonora viene misurata (campionata)ad intervalli regolari

Minore e l’intervallo di campionamento emaggiore e la qualita’ del suono

CD musicali: 44000 campionamenti al secondo, 16 bit per campione.

Page 50: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

50

CODIFICA DEI SUONI

Alcuni formati:

• ---.mov

• ---.wav

• ---.mpeg, ---.avi,

• formato midi usato per l’elaborazione

della musica al computer

Page 51: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

51

IL CONCETTO DI FILE

FILE: sequenza di byte conosciuta nel computer con un certo nome.

TIPI DI FILE:– file di dati (es: immagini o suoni)– programmi (es: word o explorer)– file di testo (cioe’ caratteri ascii)

ESTENSIONI DI UN FILE (windows95/98)– nome.gif, nome.exe, nome.doc, ...

Page 52: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

52

LA STRUTTURA DEI FILE (?)E’ meglio vedere un file come una sequenza di byte. E’ il programma che usail file a gestirne il contenuto in modo corretto.

Ad esempio, nei file di testo quando viene incontrato il byte = <new line> si devonovisualizzare i caratteri successivi nellariga sottostante.

Page 53: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

53

ARCHITETTURA DEI CALCOLATORI

Page 54: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

54

ARCHITETTURA DEI COMPUTER(L’HARDWARE!!!)

Processore (CPU)

Memoria Principale (o Primaria o RAM)

Memoria di Massa (o secondaria, il famoso hard disk, ma anche nastri, CD)

Dispositivi di Input/Output (video, tastiera, stampanti,…)

Page 55: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

55

FUNZIONAMENTO

Programmi e dati risiedono in file memorizzati in memoria secondaria.

Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella memoria primaria.

La cpu e’ in grado di eseguire le istruzioni di cui sono composti i programmi

Page 56: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

56

LA MEMORIA PRINCIPALE

Sequenza di celle di memoria Ogni cella memorizza un byte Fisicamente e’ fatta di componenti elettronici

(transistors) miniaturizzati Ogni unita’ elementare puo’ trovarsi a due

diversi livelli di tensione elettrica: ecco il corrispettivo fisico del bit

Page 57: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

57

LA MEMORIA PRINCIPALE

Le celle sono numerate in sequenza: il numero di ogni cella costituisce il suo indirizzo

Specificando l’indirizzo di una cella, la cpu e’ in grado di leggere e/o modificare il valore del byte memorizzato in quella cella

Random Access Memory (RAM), perche’ ogni cella e’ indirizzabile direttamente.

Page 58: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

58

LA MEMORIA PRINCIPALE(LA RAM)

00101111

11001101

01010100

…………..

10000110

0

11111101

1

2

3

65.536

...

Page 59: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

59

DIMENSIONI DELLA RAM

Spazio di indirizzamento: insieme o numero delle celle indirizzabili direttam.

Il numero di celle indirizzabili e’ una potenza di due. Con:– 16 bit si indirizzano 216 celle = 65.536 celle

– 32 bit si indirizzano 232 = 4.294.967.296 celle

– …..

Page 60: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

60

UNITA’ DI MISURA DELLA MEMORIA

Si usano delle unita’ di misura per indicare la dimensione della memoria:– kilobyte (KB) = 1024 byte (210 byte)– megabyte (MB) = 1000 KB (220 B)– gigabyte (GB) = 1 miliardo di byte

Quindi: – con 16 bit si indirizzano 64KB di memoria– con 32 bit si indirizzano 4GB di memoria

Page 61: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

61

DIMENSIONI TIPICHE DELLA RAM

Nei Personal computer:– 8, 16, 32, 64, 128 Megabyte – una volta era un lusso avere 64 KB

Nei Mainframe/Workstations:– 32, 64, 128, 256, …., Megabyte

Ricordatevi che la memoria e’ espandibile (fino ad un certo limite)

Page 62: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

62

ALTRE INFO. SULLA RAM: LA PAROLA O WORD

La parola (word) di un computer:quanti bit possono essere letti/scritti/usati

dalla cpu con un unico accesso alla memoria

(16, 32, 64, 128 bit) Piu’ grande e la parola, maggiore e’ la

potenza del computer (vedasi le playstations)

Page 63: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

63

ALTRE PROPRIETA’ DELLA RAM

La ram e’ veloce: per leggere/scrivere una cella ci vogliono, in media 5--30 nanosecondi (millesimi di milionesimi di secondo = 30 * 10-9)

la ram e’ volatile: e’ fatta di componenti elettronici, e se togliete l’alimentazione perdete tutto

La ram e’ costosa (relativamente)

Page 64: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

64

LA MEMORIA SECONDARIA(L’HARD DISK)

Programmi e dati risiedono normalmente in memoria secondaria.

Quando si lancia un programma questo viene copiato dalla memoria secondaria (di solito un hard disk) in memoria primaria. Questa operazione si chiama caricamento (eseguita dal sistema operativo).

Page 65: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

65

L’HARD DISK:

E’ fatto di supporti magnetici permamenti, gestiti mediante dispositivi meccanici.

Tempi di accesso dell’ordine dei micro/millisecondi.

Spazio disponibile:– Hard disk:2, 4, 5, 6, 8, 10 Gigabyte

(una volta era un lusso avere 20 Megabyte)

– Floppy disk (3.5”): 1.44 Megabyte(obsoleto ma, incredibilmente, ancora in uso)

Page 66: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

66

I BLOCCHI DELL’HARD DISK

Nell’hard disk la memoria e’ organizzata in blocchi di dimensione fissa (512B, 1KB,2KB,..) indirizzabili direttamente

La lettura/scrittura del disco avviene sempre in blocchi, per risparmiare tempo (pensate al tempo perso se si dovesse leggere un byte per volta!)

Il disco e’ quindi formattato in blocchi

Page 67: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

67

MEMORIA PRIMARIA VS

MEMORIA SECONDARIA

RAM HARD DISK

veloce (nanosec) lenta (microsec)

piccola (Megabyte) grande (Gigabyte)

volatile permanente

Notate che, in teoria, il computer potrebbe funzionare con la sola ram o il solo harddisk

Page 68: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

68

NASTRI MAGNETICI, CD

A parte le diverse tecnologie di costruzione sono anch’essi organizzati in blocchi (att. Non i CD musicali)

Nastri: accesso sequenziale, e quindi molto lento. Vengono usati soprattutto per i backup, perche sono i supporti piu’ economici.

CD: spesso sono solo leggibili

Page 69: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

69

IL PROCESSORE - CPU(CENTRAL PROCESSING UNIT)

Si occupa di eseguire i programmi che sono scritti in linguaggio macchina

I programmi sono fatti di istruzioni

le istruzioni sono operazioni elementari:

– somma due numeri, confronta due numeri,

Page 70: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

70

LE ISTRUZIONI MACCHINA

Codice istruzione | argom. 1 | argom. 2

•16 o 32 bit di lunghezza

•gli argomenti possono mancare

Page 71: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

71

IL SET DI ISTRUZIONI MACCHINA

Ogni tipo di processore e’ in grado di eseguire un numero limitato (40/100) di istruzioni

Istruzioni aritmetiche, logiche, di spostamento, di lettura/scrittura in memoria, di salto.

Combinando in modo diverso sequenze anche molto lunghe di istruzioni (i programmi) si possono far fare al computer tantissime cose completamente diverse

Page 72: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

72

LE COMPONENTI DELLA CPU: LA CONTROL UNIT (CU)

Esegue in modo ciclico:– preleva dalla memoria centrale la prossima

istruzione da eseguire;

– preleva gli operandi specificati nelll’istruzione

– esegui l’istruzione

– ripeti tutto Alla velocita’ del clock (300, 400,... MHz) (es.:

300 milioni di cicli al secondo)

Page 73: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

73

LE COMPONENTI DELLA CPU: I REGISTRI

piccole unita’ di memoria (2, 4, 8 byte) con tempi di accesso molto piu’ bassi delle celle della memoria primaria

Ospitano le informazioni necessarie per eseguire l’istruzione corrente

In numero molto limitato (10, 20, 64) si dividono in registri speciali e generali

Page 74: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

74

LE COMPONENTI DELLA CPU: I REGISTRI SPECIALI

Il Program Counter (PC) – contiene l’indirizzo in memoria centrale della prossima

istruzione da eseguire.– All’inizio dell’esecuzione di un programma viene

caricato con l’indirizzo della prima istruzione di quel programma.

– Ad ogni struzione eseguita viene il PC viene modificato per contenere l’indirizzo della istruzione successiva

Page 75: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

75

LE COMPONENTI DELLA CPU: I REGISTRI SPECIALI

L’Instruction Register (IR):– contiene l’istruzione correntemente in esecuzione– la CU legge l’istruzione contenuta nell’instruction

register e la esegue IL Registro di stato (PS - Progr. status)

– descrive lo stato corrente della esecuzione– segnala eventuali errori (ad es.: overflow)

Page 76: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

76

LE COMPONENTI DELLA CPU: I REGISTRI SPECIALI

Registro Indirizzi Memoria (RIM)

– contiene l’indirizzo della cella da cui leggere o in cui scrivere un dato

Registro dati Memoria (RDM)– contiene il dato letto dalla memoria o da scrivere

in memoria

Page 77: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

77

LE COMPONENTI DELLA CPU: I REGISTRI GENERALI

I registri generali:

–in numero di 8, 16, 64

–sono usati come memorie temporanee per contenere gli operandi delle istruzioni e i risultati parziali durante l’esecuzione delle istruzioni.

Page 78: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

78

LE COMPONENTI DELLA CPU: LA ARITHMETIC-LOGIC UNIT (ALU)

Si occupa di eseguire le operazioni di tipo aritmetico/logico: somme, confronti…

preleva gli operandi dai / deposita il risultato delle operazioni nei: registri gen.

A volte e’ affiancata da un co-processore matematico

Page 79: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

79

UN PROGRAMMA IN LINGUAGGIO MACCHINA (ASSEMBLER)

LOAD 3568 R1

LOAD 3574 R2

ADD R1 R2

STORE R1 3568

JUMP 1000

…….

1000

STORE R1 3568

1004

1008

1012

1016

Page 80: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

80

LA MEMORIA CACHE

livello di memoria intermedio tra i registri e la ram. per memorizzare i dati usati piu’ spesso senza

doverli recuperare im memoria 64KB, 128KB, 256KB, 512KB interna o esterna alla CPU Influisce moltissimo sulle prestazioni e il costo della

CPU (e quindi del computer)

Page 81: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

81

MEMORIE DI UN COMPUTER

Registri 16/64 Byte 100 * picosec.

Cache 128/512 KB nanosecondi

RAM 16/256 MB 10 * nanosec

Hard disk 2/10 GB 10 * microsec.

Nastri > 10 GB millisecondi

Page 82: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

82

DISPOSITIVI DI INPUT/OUTPUT (I/O, PERIFERICHE)

Terminali. Tastiera + Video:– risoluzione, dimensione in pollici,…

Stampanti: – ad aghi, a getto, d’inchiostro, laser,…

Modem: per collegarsi in rete Scanner: per digitalizzare le immagini

Page 83: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

83

I PROGRAMMI (IL SOFTWARE!!!)

Qualcosa di assolutamente immateriale, memorizzato mediante supporti magnetici ed elettronici che dice al computer cosa fare

Il computer e’ programmabile. Usando programmi (sequenze di istruzioni) diversi, gli facciamo fare cose diverse

Page 84: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

84

IL SOFTWARE DI BASE

Si ma: dobbiamo impartire ordini al computer usando solo il codice binario???

Ovviamente no: il computer e’ dotato di alcuni programmi (il software di base) che rendono il computer facile da usare

Questi programmi trasformano il computer in una macchina virtuale, piu’ vicina alle esigenze dell’utente che puo’ cosi’ ignorare i dettagli implementativi.

Page 85: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

85

IL SOFTWARE DI BASE

Il sistema operativo: che permette di– sfruttare le risorse del computer in modo

semplice e (si spera) intuitivo (si pensi ad esempio alle interfacce grafiche)

– usare i programmi che ci interessano (di scrittura, di studio, i videogames) senza preoccuparci di come questo avvenga all’interno del computer

Page 86: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

86

IL SOFTWARE DI BASE

I Linguaggi di programmazione ad alto livello, che permettono di:

–scrivere i propri programmi, cioe’ di usare il computer come vogliamo noi

–di poter usare questi programmi su qualsiasi (beh, quasi) computer (questa si chiama portabilita’)

Page 87: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

87

IL SISTEMA OPERATIVO

E’ di gran lunga il programma piu’ importante che gira su un qualsiasi computer

Senza il Sistema Operativo (SO) il computer sarebbe scomodissimo e complicatissimo da usare.

Page 88: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

88

COSA FA IL SIST. OPERATIVO?

Gestisce in modo efficiente le risorse del

computer: cpu, memoria, periferiche.

Interpreta i comandi dell’utente: mouse e

clicks, esecuzione di programmi,…

Nasconde la macchina fisica all’utente

Page 89: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

89

LA CIPOLLA DEL SISTEMA OPERATIVO

INTERFACCIA COMANDI

GESTIONE MEMORIA/RISORSE

KERNEL(machine dependent)

Page 90: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

90

TIPI DI SISTEMI OPERATIVI:

Mono-utente o Multi-utente (Mono/multi-user)

Mono o Multi-programmati (Mono/multi-tasking)

Distribuiti ( o di rete)

Page 91: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

91

LE FUNZIONI PRINCIPALI DEI SO

Gestione del processore e dei processi

gestione della memoria principale

gestione della memoria virtuale

gestione della memoria secondaria (il file system)

Page 92: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

92

Reti di Calcolatori

Page 93: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

93

TIPI DI RETI ( dal punto di vista della loro estensione)

Rete locale (LAN - Local Area Network): collega due o piu’ computer in un area non piu’ grande di un palazzo. Collega i computer di un laboratorio, gruppo di lavoro, ufficio, ditta.

Internet: la rete delle reti. Collega fra loro reti locali e singoli computer di tutto il mondo

Rete metropolitana: concettualmente simile ad una rete locale, collega computer di una singola organizzazione (es.: Banca con filiali cittadine).

Page 94: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

94

TIPI DI RETI LOCALI: LINEARI(ETHERNET, APPLETALK)

Ethernet e’ il tipo di rete locale piu’ diffuso. Qualsiasi computer di qualsiasi tipo prevede la

possibilita’ di usare una scheda Ethernet per connettersi alla rete locale

PC1 PC2 PC3 PC4

Page 95: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

95

ETHERNET - APPLETALK

Quando un computer vuole comunicare invia il segnale sul cavo di collegamento.

Se un computer si accorge che un altro sta trasmettendo, aspetta

Se si verifica un conflitto (due computer hanno tentato di comunicare contemporaneamente) i due computer si fermano e aspettano per un tempo T casuale, poi riprovano.

Velocita’ di trasmissione: 100 Megabit/secondo

Page 96: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

96

TIPI DI RETI LOCALI: AD ANELLO

La tecnica token-ring viene usata per la comunicazione tra gli elaboratori.

PC2

PC3

PC4

PC1

Page 97: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

97

Un token (un gruppetto di byte) viene passato continuamente da un computer all’altro.

Un computer puo’ trasmettere sulla rete solo quando e’ in possesso del token.

Se un computer riceve un messaggio non destinato a lui, lo rimette in circolo.

TOKEN RING

Page 98: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

98

TIPI DI RETI LOCALI: PUNTO A PUNTO

Ottima tolleranza ai guasti; ma altissimi costi per i collegamenti ( O(n2)) Utilizzabile solo per reti con pochissimi nodi.

PC1 PC2

PC3 PC4

Page 99: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

99

TIPI DI RETI LOCALI: A STELLA

HUB: dispositivo hardware specializzato che smista le comunicazioni dei computer

PC2PC1

PC4PC3 hub

Page 100: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

100

TIPI DI RETI LOCALI: A TOPOLOGIA MISTA

hub

Page 101: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

101

SISTEMI OPERATIVI DI RETE (LOCALE)

In una LAN si vogliono condividere le risorse, di solito, come minimo, stampanti e hard disk.

Il S.O. deve permettere anche l’uso di quelle risorse che non sono fisicamente collegate al computer su cui si sta lavorando.

I S.O. dei compuer in rete devono quindi dialogare fra loro per permettere la condivisione delle risorse.

Page 102: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

102

FILE SYSTEM DISTRIBUITO

Parliamo di file system distribuito quando l’utente del file system vede un’unica struttura ad albero, e non si accorge che alcune parti dell’albero (sub-tree) risiedono in realta’ sull’hard disk di un altro computer della rete.

Il S.O. maschera completamente la situazione. (Unix. Windows95 un po’ meno)

E’ possibile configurare in file system distribuito in molti modi diversi, prendendone “pezzi” dalle varie macchine in rete

Page 103: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

103

SISTEMI OPERATIVI DISTRIBUITI

Versione piu’ sofisticata dei S.O. di rete Quando l’utente di un computer esegue un

programma, non e’ detto che questo venga fatto girare sulla CPU locale: il S.O. si occupa di selezionare il computer (e quindi la CPU) piu’ scarica su cui il processo deve girare.

I S.O. distribuiti sono ancora in fase di studio. Non esiste nulla a livello commerciale

Page 104: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

104

PROTOCOLLO DICOMUNICAZIONE

I computer di una rete, per comunicare si scambiano dei messaggi. Ogni messaggio deve contenere:

– l’indirizzo del mittente e del destinatario

– il tipo di servizio richiesto ed eventuali dati Ad esempio, il PC A puo’ richiedere al PC B la

stampa di un file sulla stampante connessa a B Il protocollo deve essere anche in grado di gestire

gli errori di comunicazione

Page 105: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

105

PROTOCOLLO DICOMUNICAZIONE

TCP/IP (Transmission Control Protocol/Internet Protocol) e’ il protocollo di comunicazione usato in internet e anche nella maggior parte delle altre reti.

Praticamente tutti i servizi offerti da Internet, compreso il web, sono costruiti usando TCP/IP

Il modello ISO-OSI è in parte ispirato al TCP/IP

Page 106: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

106

TRASMISSIONE DIGITALE O ANALOGICA

Nelle reti locali, la comunicazione tra due computer passa di solito su cavi dedicati, installati esplicitamente per la rete, e adatti per la trasmissione digitale delle informazioni.

(Semplificando un po’) su questi cavi si ha una variazione del livello di tensione fra due valori, che corrisponde alla trsmissione di bit di valore zero oppure 1.

Page 107: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

107

TRASMISSIONE DIGITALE O ANALOGICA

Per le comunicazioni su lunga distanza, si cerca di sfruttare le reti di comunicazione esistenti, come ad esempio la rete telefonica.

La rete telefonica e’ pero’ fatta per comunicare la voce, cioe’ un segnale analogico che varia in maniera continua in una banda di frequenze.

Sono necessari dei dispositivi per poter usare la rete telefonica come mezzo di comunicazione tra computer

Page 108: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

108

IL MODEM

COMPUTER MODEMSegnale digitale

MODEMCOMPUTERSegnale digitale

Segnaleanalogicolinea telef.

Page 109: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

109

IL MODEM I modem attuali hanno velocita’ di trasmissione di

14.400, 28.800, 38.400, 56.600 bit/sec. Ossia una velocita’ massima di non piu’ di 6 kByte/sec

Se due computer comunicano con un modem, la velocita’ di comunicazione e’ sempre quella del modem piu’ lento.

Il modem e’ usato soprattutto per le comunicazioni private (ad esempio un utente che si collega ad internet tramite il suo provider)

Page 110: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

110

COMUNICAZIONE SU LINEA DEDICATA O COMMUTATA

Quando due computer sono connessi direttamente da un cavo di comunicazione, si parla di linea dedicata di trasmiss./comunic.

Nel caso piu’ generale, e soprattutto su internet, la comunicazione tra due computer avviene attraverso computer intermedi, che fanno da tramite tra i due che devono comunicare, ritrasmettendo i loro messaggi. Si parla allora di comunicazione su linea commutata

Page 111: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

111

NAMING

Ogni computer di una rete deve avere un nome logico unico. Il nome logico e’ usato dagli utenti della rete per comunicare con quel computer

Il computer ha anche un indirizzo fisico: l’indirizzo con il quale il software che gestisce le comunicazioni in rete localizza e gestisce la comunicazione con quel computer.

Deve essere gestita una corrispondenza tra il nome logico e l’indirizzo fisico del computer

Page 112: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

112

INTERNET

Collega fra loro reti locali e metropolitane di tutto il mondo.

La comunicazione tra le sottoreti avviene sfruttando canali di comunicazione dedicati ad alta tecnologia (ISDN, ATM, fibre ottiche) che consentono velocita’ di trasmissione dell’ordine di decine o centinaia di Megabit/sec

Ovviamente non avrebbe senso usare la rete telefonica, che e’ troppo lenta

Page 113: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

113

INTERNET

Ogni rete locale “si affaccia su Internet” attraverso un dispositivo (un vero e proprio computer ) detto router. Il router si occupa di smistare il traffico dei pacchetti in uscita ed in entrata nella rete locale rispetto a internet

Al router e’ spesso associato anche un dispositivo detto firewall. Il firewall protegge la rete locale da accessi indesiderati dall’esterno (e in alcuni casi, viceversa)

Page 114: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

114

INDIRIZZAMENTO IN INTERNET

Gli indirizzi logici Internet hanno la forma:

aaa.bbb.ccc

e sono organizzati in domini e sotto domini I domini possono essere geografici:

xxx.yyy.it aaa.bbb.uk jjj.kkk.ca o di altro tipo:

aaa.com bbb.ccc.ddd.net xxx.gov

Page 115: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

115

INDIRIZZAMENTO IN INTERNET

All’interno dei domini vi sono i sotto-domini, sotto-sotto-domini, e cosi’ via, fino eventualmente a raggiungere lo specifico computer della rete locale relativa:– xxx.unito.it (sotto-dominio dell’univ. di Torino)– di.unito.it (sotto-sotto-dominio del Dip. Di Informat., a cui

corrisponde fisicamente la rete locale del Dip.– Pianeta.di.unito.it (uno dei computer della rete locale del

Dipartimento di Informatica dell’Univ. Di Torino, Italia)

Page 116: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

116

INDIRIZZAMENTO IN INTERNET

Gli indirizzi logici sono usati solo per comodita’ degli utenti. I veri indirizzi Internet, (detti indirizzi fisici), sono numerici. Ad esempio:– pianeta.di.unito.it = 130.192.239.1

130 = dominio .it192 = sotto-dominio .unito239 = rete locale del Dip. di Informatica1 = il computer pianeta

Page 117: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

117

IL DOMAIN NAME SERVICE (DNS)

Il meccanismo di gestione degli indirizzi internet e’ chiamato Domain Name Service (DNS)

Ogni dominio e’ gestito da un computer che contiene l’associazione tra i nomi logici e gli indirizzi fisici di ogni suo sotto-dominio

Ogni sottodominio e’ gestito da un computer che contiene l’associazione tra i nomi logici e gli indirizzi fisici di ogni suo sotto-sotto-dominio

In questo modo e’ facile localizzare qualsiasi punto della rete usando solo nomi logici.

Page 118: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

118

IL DOMAIN NAME SERVICE (DNS)

Ad esempio, se da un pc negli USA si vuole comunicare con la macchina pianeta.di.unito.it.

Viene contattato il gestore del dominio .it (130) che contatta il gestore del dominio .unito (192) che contatta il gestore del dominio .di (239) che sa che la macchina pianeta, all’interno della rete

locale .di (239) ha numero 1. Viene quindi restituito l’indirizzo fisico che sara’ usato nella

comunicazione: 130.192.239.1

Page 119: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

119

STRUMENTI E SERVIZI INTERNET

Telnet (connessioni remote su Internet) FTP (per trasferire file su Internet) Talk/Chat (per conversare in tempo reale) Mailing Lists (liste di discussione) NewsGroups (gruppi di discussione)

World Wide Web (WWW)

Page 120: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

120

TELNET

Protocollo e programma per collegarsi ad un computer remoto

molti servizi per la ricerca di informazioni su internet sono basati su telnet

Funziona solo verso macchine multi-user predisposte per telnet (Unix/Linux)

Page 121: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

121

Windows95 Unix

si

no

TELNET

Page 122: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

122

FILE TRANSFER PROTOCOL (FTP)

Protocollo per trasferire files su internet Programma FTP corrispondente Accesso con parola chiave o “anonimo”

(anonymous FTP) versione grafica di FTP (WS_FTP)

Page 123: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

123

PER USARE FTP CI VUOLE:

Un Indirizzo Internet: dora.di.unito.it Un user-id (login): utenti Una Password: utenti Un computer predisposto per ftp

(di solito una macchina Unix con ftpd)

Page 124: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

124

Windows95 Unix

si

si

File Transfer Protocol

Page 125: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

125

FTP ANONIMO:

user-id (login): anonymous Password: [email protected]

Con ftp anonimo non si possono modificare o rimuovere file o directory remote

Page 126: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

126

WS_FTP PERMETTE DI:

memorizzare le connessioni piu’ usate prelevare il contenuto di una directory e

delle sue sotto-directory compiere quasi tutte le operazioni in modo

grafico

Page 127: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

127

CHAT

Evoluzione del servizio TALK Salotti Virtuali Conversazioni “Molti a Molti” Uno dei servizi piu’ usati della rete

Page 128: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

128

MAILING LIST (LISTE DI DISCUSSIONE)

strumenti di discussione attraverso mail elettronica

esistono mailing list sui piu’ svariati argomenti e in tutte le lingue

sulle M.L. avvengono discussioni, si fanno annunci, vengono distribuiti bollettini elettronici ... ....

Page 129: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

129

FUNZIONAMENTO DELLE MAILING LIST

una mailing list e’ un indirizzo di mail che redistribuisce il messaggio ad una lista di indirizzi (gli iscritti alla mailing list)

es: mail [email protected]

Page 130: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

130

ISCRIZIONE A - E RIMOZIONE DA - UNA MAILING LIST (1)

mail [email protected]

–subject: subscribe nomelista

–body: subscribe nomelista mail [email protected]

–subject: unsubscribe nomelista

–body: unsubscribe nomelista

Page 131: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

131

NEWSGROUPS (USENET) NewsGroups: liberta’ e anarchia Un NewsGroup mette automaticamente in

contatto persone che desiderano:

– cercare/fornire informazioni

– scambiare opinioni

– litigare!

su uno specifico argomento NG = paniere elettronico distribuito

Page 132: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

132

NEWSGROUPS: Un NewsGroup mette in contatto curiosi,

principianti, appassionati, esperti, professionisti di un determinato campo.

I NG sono una delle fonti principali per recuperare informazioni su Internet: testi, programmi, immagini, suoni, filmati.

Imparare ad usare i NG richiede tempo (gergo, netiquette, spam, crossposting...)

Page 133: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

133

FUNZIONAMENTO Gestione completamente distribuita Molti News-servers sparsi per il mondo:

–Ogni News-server riceve i messaggi dei suoi utenti e li invia agli altri news-servers

Alcuni gruppi vengono oscurati Alcuni gruppi sono moderati I messaggi durano un tempo limitato

Page 134: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

134

World Wide Web (WWW o Web)

“ragnatela” mondiale di documenti

organizzati secondo un modello ipertestuale

Page 135: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

135

Organizzazione di un testo

lettura sequenziale

pag1

pag2

pag3

pag4

pag7

pag5

pag6

Page 136: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

136

Organizzazione di un ipertesto

nodi (pagine)

link

anchor

Page 137: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

137

Terminologia per gli ipertesti sul Web

Browser: programma applicativo per navigare in rete

Page (pagina): singolo “foglio” di un ipertesto

Home-page: “punto di ingresso” di un sito web

Hotspot, hotword: porzione di una pagina che, se selezionata, permette di raggiungere un altro punto dell’ipertesto o una nuova risorsa

Page 138: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

138

Terminologia per gli ipertesti sul Web

web: insieme di pagine che costituiscono un singolo documento ipertestuale

Web: insieme di tutti gli ipertesti della ragnatela

FAQ: domande ricorrenti su un certo argomento

Page 139: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

139

HTML

gli ipertesti del Web sono scritti usando il linguaggio Hypertext Markup Language (HTML)

HTML NON è un linguaggio di programmazione!

HTML descrive la disposizione di tutti gli elementi presenti all’interno di un documento

Page 140: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

140

grazie al Web si possono condividere delle informazioni ma non solo .....

è anche possibile creare dei meccanismi di comunicazione interattiva mediante l’uso del linguaggio HTML opportunamente combinato con altri linguaggi di programmazione (C, Java, Perl)

HTML

Page 141: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

141

Client-server

il WWW usa il modello client-server per lo scambio delle informazioni

un modello client-server per un sistema di calcolatori in rete è formato da tre componenti

il client, programma applicativo che “gira” sull’elaboratore dell’utente

il server, programma applicativo che “gira” sull’elaboratore del fornitore di informazioni (provider)

Page 142: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

142

ogni utente può richiedere delle informazioni attraverso il suo programma client

la richiesta “viaggia” attraverso la rete fino a raggiungere l’elaboratore server che possiede le informazioni desiderate

il server intrepreta la richiesta ed esegue le operazioni opportune (inoltra all’elaboratore client un file contenente le informazioni desiderate, oppure interroga un database e restituisce il risultato dell’operazione)

Client-server

Page 143: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

143

server

client

clientclient

clientserver

client

Client-server

server

Page 144: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

144

Applicazioni per la rete

la comunicazione tra client e server avviene seguendo un insieme di regole dette protocolli di comunicazione

– HTTP introdotto per trasmettere documenti ipertestuali / ipermediali sulla rete

– FTP utilizzato per trasmettere testi o file binari

– Telnet utilizzato per collegarsi a elaboratori remoti

Page 145: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

145

gli indirizzi per “trovare” i documenti nel Web sono detti Uniform Resource Locator (URL) e identificano in modo univoco i nodi (i documenti)

http://www.unito.it è l’indirizzo della home-page dell’Università di Torino

protocollo://

Uniform Resource Locator

http://www.cisi.unito.it/ateneo/lettere/index.html è l’indirizzo della home-page della Facoltà di Lettere

/pathnameindirizzo internet del nodo

Page 146: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

146

WWW Virtual library http://www.w3.org

Navigare nel Web

Yahoo http://www.yahoo.com http://www.yahoo.it

orientarsi nel Web è difficile e non esiste un’unica sorgente di informazioni

alcuni siti possono costituire un buon punto di partenza per cominciare la navigazione

Lycos http://www.lycos.it

Virtual Tourist I e II http://wings.buffalo.edu/world/ http://wings.buffalo.edu/world/vt2/

Page 147: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

147

Motori di Ricerca

Consentono di trovare informazioni sul Web Basati su immensi Indici contenenti

“descrizioni” locali delle pagine esistenti Aggiornamento degli indici automatico e

grazie all’invio di nuove pagine dagli autori

Page 148: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

148

RICERCHE SU INTERNET

REGOLA 1: siate creativi!!

REGOLA 2: restringete la ricerca!!

usare motori di ricerca specializzati (persona, mail, home page, software, idioma, aree geografiche, argomenti ...)

usare le regole di restrizione per le chiavi di ricerca offerte dal motore di ricerca

Page 149: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

149

MOTORI DI RICERCA “CLASSICI” www.altavista.com (www.altavista.it)

www.yahoo.com (www.yahoo.it)

www.lycos.com (www.lycos.it)

www.webcrawler.com

www.hotbot.com

alcuni anche in lingua italiana e con puntatori a molti argomenti

Page 150: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

150

ELEMENTI DI PROGRAMMAZIONE

Page 151: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

151

CENNI DI PROGRAMMAZIONE

Il computer esegue programmi Un programma eseguibile dal computer e’ una

sequenza di istruzioni macchina comprensibili da quel computer.

Usando sequenze diverse di istruzioni, e dati diversi, possiamo far fare al computer le cose piu’ disparate

Page 152: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

152

CENNI DI PROGRAMMAZIONE

Pero’ scrivere programmi in linguaggio macchina (in assembler) e’ scomodo, perche’ il linguaggio e’ molto distante da quello umano.

Inoltre, un programma in assembler gira solo su un tipo di cpu, e sarebbe comodo poter usare lo stesso programma su cpu e con S.O. diversi senza doverlo riscrivere ogni volta (portabilita’)

Page 153: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

153

LING.DI PROGRAMMAZIONE AD ALTO LIVELLO

I linguaggi di programmazione ad alto livello permettono di scrivere programmi con una notazione adatta agli esseri umani, e in alcuni casi molto intuitiva.

Usando degli opportuni traduttori (compilatori ed interpreti) lo stesso programma puo’ essere usato su macchine diverse

Fortran, Cobol, Pascal, Ada, C, C++, Java, Lisp, ML, Prolog,...

Page 154: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

154

IL COMPILATORE

Un programma scritto in un linguaggio ad alto livello e’ detto programma sorgente.

Per essere eseguito su un computer , va tradotto nel linguaggio macchina del computer.

Il compilatore e’ un programma che esegue la traduzione, producendo il programma oggetto, ossia una sequenza di istruzioni macchina

Il compilatore segnala anche eventuali errori di sintassi nella scrittura del programma sorgente

Page 155: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

155

IL COMPILATORE

Programma P scritto nel

linguaggio L

Compilatore per P sul computer M

Programma P’ nel linguag. macchina di M

Esecuzione di P’ su M

Page 156: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

156

L’INTERPRETE

In alternativa alla compilazione, un programma sorgente puo’ essere interpretato.

Un interprete e’ un programma che non produce alcun programma oggetto, ma legge il ogni istruzione del programma sorgente e genera le istruzioni macchina corrispondenti, che vengono passate all’hardware per l’esecuzione.

Page 157: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

157

COMPILATORI VS INTERPRETI

In un programma compilato, la traduzione avviene una sola volta, e poi il programma oggetto puo’ essere eseguito quanto si vuole

In un programma interpretato, la traduzione avviene tutte le volte che si esegue il progr.

Molti linguaggi permettono entrambe le scelte Attualmente, i computer sono cosi’ potenti che

anche la compilazione di lunghi programmi non richiede molto tempo.

Page 158: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

158

IL CONCETTO DI ALGORITMO

Un algoritmo e’ una sequenza di passi necessari per risolvere un problema o eseguire una computazione

In alcuni casi, lo stesso problema/computazione puo’ essere risolto in modi diversi, ai cui corrispondono diversi algoritmi

Un programma non e’ altro che la descrizione di un algoritmo scritta nel linguaggio di programmazione scelto.

Page 159: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

159

IL CONCETTO DI VARIABILE

Per eseguire una qualsiasi computazione, abbiamo bisogno di poter immagazzinare i risultati temporanei e finali della computazione stessa.

Ogni linguaggio ad alto livello mette a disposizione le variabili: “contenitori” in cui immagazzinare i dati della computazione

Concettualmente, le variabili sono come pezzi di carta su cui si possono annotare/modificare i valori di un calcolo che si sta facendo

Page 160: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

160

IL CONCETTO DI VARIABILE Ogni variabile ha un nome mnemonico, che si usa

nel programma per riferirsi alla var. stessa. Una variabile contiene un valore che puo’ essere

modificato a piacimento Durante l’esecuzione di un programma, il sistema

operativo mantiene una associazione tra il nome di ogni var. e l’indirizzo della cella di memoria in cui e’ memorizzato il suo valore

Quindi una variabile e’ semplicemente una astrazione della cella di memoria fisica.

Page 161: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

161

IL CONCETTO DI VARIABILE

Quando si scrive un programma e’ necessario dichiarare quali variabili vogliamo usare.

Le variabili possono essere di tipo diverso, per indicare che le usiamo per memorizzare dati di tipo diverso:

– Variabile LETTERA, tipo: carattere;

– Variabile SOMMA, tipo: intero;

Page 162: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

162

L’IMPORTANZA DELLE VARIABILI

Le variabili sono lo strumento fondamentale per assicurare la flessibilita’ dei programmi.

Lo stesso programma, eseguito con variabili di valore diverso da risultati diversi. Lo stesso programma si adatta cioe’ alle esigenze del momento, senza dover essere riscritto

Page 163: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

163

ESEMPIO D’USO DI VARIABILI

Program SILLY

begin

Variables: YEARS,DAYS, type integer;

read YEARS from input;

DAYS := YEARS * 365;

print DAYS;

end

Page 164: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

164

COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR. (Visual Basic)

Definizione delle variabili che verranno usate nel programma, e del loro tipo:

Dim PIPPO, PLUTO As Integer

Dim NOME As String

Dim RISULTATO As Double

Page 165: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

165

COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR. (Visual Basic)

Istruzioni elementari: assegnamento di un valore ad una variabile:

PIPPO = 5

PLUTO = 7

RISULTATO = PIPPO/PLUTO

TESTO = “Ciao”

Page 166: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

166

COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR. (Visual Basic)

Azioni condizionali:

If A*A+B*B = C*C Then

Print “Triangolo rettangolo”

Else

Print “Triangolo non rettangolo”

End If

Page 167: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

167

COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR. (Visual Basic)

Azioni ripetute:

While (PIPPO < 100)

PIPPO = PIPPO - 1

SOMMA = SOMMA + PLUTO

Wend

Page 168: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

168

COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR. (Visual Basic)

Ingresso/Uscita

X = InputBox(“Dammi X”) ‘leggi X da input;

Print X+3 ‘stampa il risultato di X+3

‘su output

Page 169: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

169

Programma Visual Basic(area di un rettangolo)

Sub main()

Dim base, altezza, area as Integer

base = InputBox(“Inserisci la base:”)

altezza = InputBox(“Inserisci l’altezza”)

area = base*altezza

Print area;

End Sub

Page 170: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

170

DIAGRAMMI DI FLUSSO

Notazione grafica usata per descrivere in modo intuitivo le azioni di cui e’ fatto un algoritmo.

Viene usata per descrivere i passi salienti di un algoritmo, senza doversi preoccupare dei dettagli sintattici del programma corrispondente

Una volta che l’algoritmo e’ stato descritto con un diagramma di flusso, deve però essere trasformato nel programma corrispondente.

Ogni azione e’ rappresentata da un blocco

Page 171: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

171

BLOCCHI DI FLUSSO:INIZIO E FINE ALGORITMO

START

STOP

Page 172: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

172

BLOCCHI DI FLUSSO:UNA O PIU AZIONI ELEMENTARI

PIPPO = PIPPO + 1

PLUTO = 0

Page 173: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

173

BLOCCHI DI FLUSSO:BLOCCO CONDIZIONALE

Diagramma 1 Diagramma 2

condizioneFT

Page 174: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

174

BLOCCHI DI FLUSSO:BLOCCO DI RIPETIZIONE

Diagramma 1

condizione

T

F

Page 175: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

175

BLOCCHI DI FLUSSO:INPUT/OUTPUT

Input/output

Page 176: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

176

THE SILLY PROGRAM

start

Read YEARS

DAYS = YEARS * 365

print DAYS

stop

Sub main()Dim YEARS,DAYS as Integer

YEARS = InputBoxDAYS = YEARS*365PRINT DAYS

End sub

Page 177: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

177

ESEMPIO DI TRADUZIONE

Dim A, B, X as Integer

…….

If A = B Then

X = 1

Else

X = 2

Endif

…….

Page 178: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

178

A: locazione 1000 B: 1002 X: 1004

4726 …….

4730 LOAD 1000,R1

4734 LOAD 1002,R2

4738 LOAD 1004,R3

4342 JNE R1,R2,4354

4346 SET R3,1

4350 JUMP 4358

4354 SET R3,2

4358 ……..

Page 179: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

179

ESEMPIO 1Dire se un triangolo è equilatero, isoscele o scaleno

Sub Main()Dim A, B, C As Integer A = InputBox("Inserisci il lato A") B = InputBox("Inserisci il lato B") C = InputBox("Inserisci il lato C") If A = B And B = C Then Print "Triangolo Equilatero" ElseIf A = B Or B = C Then Print "Triangolo Scaleno" End If

End Sub

Page 180: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

180

ESEMPIO 2Trasformare la propria media espressa in trentesimi in

centodecimi

Sub Main()

Dim A As Integer

A = InputBox("Dammi la tua media")

Print "La tua media espressa in centodecimi è"; A / 3*11

End Sub

Page 181: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

181

ESEMPIO 3Calcolare la media dei propri voti

Sub Main()

Dim Voto, NumeroVoti, Somma as Integer

Print “Inserisci i tuoi voti”

While Voto <> -1

Voto = InputBox (“Inserisci un voto (-1 per finire)”)

NumeroVoti = NumeroVoti + 1

Somma = Somma + Voto

Wend

Print “La tua media è”; Somma/NumeroVoti

Page 182: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

182

ESEMPIO 4Contare per quanti giorni la temperatura è stata superiore ai 30 gradi

Sub Main() Dim Conta, Temperatura As Integer Conta = 0: Temperatura = 0 Print "Inserisci una serie di temperature quotidiane (terminata da -400)" While Temperatura <> -400 Temperatura = InputBox("Dammi un valore di temperatura") If Temperatura > 30 Then Conta = Conta + 1 End If Wend Print "Il numero totale di giorni afosi è "; ContaEnd Sub

Page 183: 1 CORSO DI INTRODUZIONE ALLINFORMATICA Ing. Giovambattista Ianni E-Mail: ianni@deis.unical.it Indirizzo: Dipartimento di Matematica, Università della Calabria

183

ESEMPIO 5Calcolare se un certo anno sarà bisestile

Sub Main() Dim Anno As Integer Anno = InputBox("Inserisci l'anno") If Anno Mod 4 = 0 Then If Anno Mod 100 = 0 And Anno Mod 400 <> 0 Then Print "Anno Non Bisestile" Else Print "Anno bisestile" End If Else Print "Anno Non bisestile" End If

End Sub

Esercizio: riscrivere ilProgramma facendo usodi un unico IF