di i - Università degli studi di Pavia

Transcript

di i - Università degli studi di Pavia
Informatica
• Scienza dell'elaborazione e della trasmissione
automatica di informazioni mediante calcolatore
elettronico.
• Un sistema informatico è invece un insieme
costituito da uno o più calcolatori e dai programmi
di funzionamento e di applicazione.
applicazione
5
L’informatica è ovunque
• I calcolatori hanno applicazioni in moltissimi aspetti della
vita
ita quotidiana
q otidiana e della società moderna.
moderna Alcuni
Alc ni esempi: la
gestione della telefonia, il telefono cellulare, il motore di
un’auto e qquello di un’aereoplano,
p
i ggiochi elettronici, il
cinema (montaggio, effetti speciali), un forno a microonde,
la produzione in serie, la simulazione (veicoli, processi), le
banche dati
dati, la gestione di documenti e immagini,
immagini centrali
elettriche ecc.
p di computer
p
destinati a diversi tipi
p di
• Esistono diversi tipi
applicazioni (dai supercomputer per il calcolo scientifico,
sistemi multiprocessori, ai palmari, ai personal computer
(PC) ai processori dedicati)
(PC),
dedicati).
• Il primo PC è stato prodotto dalla IBM ed è apparso nel
1982, con un pprocessore Intel 8088.
6
Informatica biomedica
• Informatica, intesa come scienza del trattamento
delle informazioni, applicata all’ambito delle
scienze biologiche e della medicina.
• Afferiscono a questa famiglia di discipline settori
specifici
p
qquali l’intelligenza
g
artificiale ed i sistemi
esperti in campo medico/clinico, la telemedicina,
le bioimmagini
g e la loro classificazione e tutto ciò
che ha a che fare con l’elaborazione di segnali
biologici.
g
7
Informatica (1)
( )
• Teoria delle procedure algoritmiche, teoria dei linguaggi di
programmazione
i
formali
f
li per lo
l sviluppo
il
di sistemi
i
i
automatici per la soluzione di classi di problemi
• Progettazione
P
tt i
dell’architettura
d ll’ hit tt
dei
d i calcolatori
l l t i digitali
di it li e dei
d i
sistemi operativi per ottimizzarne l’uso
• Progettazione e realizzazione di sistemi per
l’archiviazione, la classificazione ed il reperimento di
informazioni in forma digitale.
g
• Progettazione di strumenti per l’acquisizione e la
trasmissione di informazioni digitali, architettura delle reti
per la comunicazione tra sistemi
8
Teoria dell
dell'informazione
informazione
• Studia la rappresentazione,
pp
archiviazione e la
trasmissione di informazioni da un punto di vista
formale, tralasciando il contenuto
• Informazione: ciò che consente acquisizione di
conoscenza, riduzione dell’incertezza
• Il sapere se un certo numero è pari o dispari
consente di ridurre l’incertezza del 50% (due
possibilità)
ibili à) che
h ho
h a priori
i i sull numero.
• La teoria dell'informazione considera una misura
t i che
tecnica,
h puòò essere associata
i t alla
ll sequenza di
simboli di un messaggio
9
Teoria dell’informazione (1)
( )
• Dato un alfabeto composto di n simboli, il contenuto
i f
informativo
i (I)
( ) di ognii simbolo
i b l sarà
I  log 2 (n)
• L'unità di misura della quantità di informazione è il bit.
• Quindi nel caso dei numeri pari e dispari, la risposta pari e
quella
ll dispari
di
i hanno
h
ciascuna
i
un contenuto
t t informativo
i f
ti
pari a 1 bit
• Aumentando le possibili risposte,
risposte aumenta il contenuto
informativo di ognuna di esse. Il sapere in quale stagione
siamo fornisce 2 bit di informazione, essendovi 4 possibili
risposte.
10
Teoria dell’informazione (2)
( )
• Se consideriamo i simboli decimali (0…9), il contenuto di
i f
informazione
i
di ognuno di loro
l
sarà di I  log 2 (10)  3.3219
bit.
• Analogamente
A l
t se utilizziamo
tili i
due
d cifre
if (100 simboli)
i b li)
avremo I  2 log 2 (10)  6.6439 bit
• Una lettera dell
dell’alfabeto
alfabeto italiano ha un contenuto
informativo pari a 4.39 bit ( I  log 2 (21)  4.3923 ).
Costituisce la soluzione di un pproblema in cui l’incertezza
è legata ad una probabilità di indovinare la lettera pari al
4.76% (1/21)
• NOTA: Nella teoria dell'informazione si considerano
quantità di bit anche decimali. In una rappresentazione
bi i possono essere considerati
binaria
id ti solo
l numerii interi
i t i di bit.
bit
11
Teoria dell’informazione (3)
( )
• In termini frazionari la probabilità che occorra un
simbolo in un alfabeto di n simboli è data da
P=1/n. La probabilità percentuale sarà 100*P.
• Il contenuto informativo di un simbolo che abbia
una pprobabilità di occorrenza ppari a P sarà dunque
q
dato da I=log2(1/P).
blu 5 rosse e 2 viola la probabilita
• Con 3 palline blu,
di occorrenza del viola è data da P=2/10=.2
• Il contenuto informativo di ‘viola’
viola è pari a
log2(5)=2.3219 bit
12
Esercizi teoria informazione
• Qual’ è il contenuto informativo dell’informazione “siamo
nel mese di mar
marzo”
o” rispetto ai mesi dell’anno?
I=log2(12)=3.58 bit
• Qual
Q l è il contenuto informativo
i f
i della
d ll stessa informazione
i f
i
considerando una qualsiasi data del 2002?
• Il numero di date
d possibili
ibili nell 2002 è di 365 (non
(
è un
anno bisestile). Marzo ha 31 giorni, dunque la probabilità
percentuale che una qualsiasi data cada nel mese di marzo
è pari a P*100=31/365*100=8.49%.
• Il co
contenuto
e u o informativo
o
vo di
d una
u specifica
spec c data
d dell’anno
de
o
rispetto alla probabilità che cada nel mese marzo è dunque
dato da I=log2(1/P)=3.56 bit
13
Sistemi di numerazione
• Sistemi di numerazione posizionali: il valore di
una cifra dipende dalla sua posizione all'interno
del numero
• La base del sistema posizionale determina il nome
del sistema ((binario,, ottale,, decimale,,
n
z

m

b
esadecimale).

m= mantissa,
mantissa bb=base
base (2,
(2 8,10,16),
8 10 16) nn=esponente
esponente
• m
14
Sistema Decimale
• Sistema di numerazione decimale o in base10 ogni
cifra da 0 a 9 viene moltiplicata per la potenza di
10 corrispondente alla propria posizione partendo
da 100 per la cifra meno significativa.
103
2
102
0
101
4
100
5
• 2045=2*103+0*102+4*101+5*100
15
Sistema binario
• Notazione binaria: ogni cifra 0 o 1 viene
moltiplicata per la potenza di 2 corrispondente alla
propria posizione partendo da 20 per la cifra meno
significativa.
23
1
22
0
21
1
20
1
• 1011=1*23+0*22+1*21+1*20
• Q
Quanti
simboli
distinti
ppossono
essere
rappresentati con m bit? 2m simboli. Se m=8 allora
28=256 simboli distinti
16
Codifica binaria
• Il numero decimale 89 corrisponde alla codifica
binaria:
89/2=44 r=1
44/2=22 r=0
22/2=11 r=0
11/2=5 r=1
5/2=2
r=1
2/2=1
r=0
1/2=0
r=1 Il numero binario 1011001
17
Esercizi sistemi di numerazione
• Calcolare il valore del numero 1010 in un sistema
di numerazione binario
N 1 23+1
N=1*2
+1*221=10
10
• Calcolare il valore del numero 775 in un sistema
di numerazione ottale
N=7*82+7*81+5*80=448+56+5=509
• In un sistema di numerazione esadecimale il
numero 1010 vale invece?
N=1*163+1*161=4096+16=4112
18
Numeri binari negativi
g
• Una soluzione è quella di utilizzare il bit più
significativo
i ifi i per indicare
i di
il segno.
Un byte consente quindi la rappresentazione dei
numerii tra –127
127 e +127
127 dove
d
-127=11111111
+127=01111111
• Un’altra soluzione è qquella di usare una
numerazione in complemento a 2 in cui un numero
negativo si ottiene complementando ogni bit e
sommando
d 1 all risultato.
i l
• (11) 01011 -> 10101 (-11)
19
Numeri razionali
• Si considerano anche esponenti negativi: la prima
cifra dopo la virgola ha peso 2–1, poi 2–2, ecc.
pp
• Esistono due rappresentazioni:
– Virgola fissa: il numero di cifre (bit) prima e dopo la
virgola
g è predefinito e constante.
10101.10101=21.65625
1x24+1x22+1x20+1x2-1+1x2-3+1x2-5
– Virgola mobile: ogni numero e’ espresso nella forma
N  m  be
20
Algebra
g
Booleana
• Tratta di operazioni LOGICHE su operandi binari
• Basata su un alfabeto di due soli simboli {0,1} o
{{True,, False}.
} Un alfabeto binario.
• Variabili di questo tipo vengono dette variabili
booleane
• Variabili booleane possono essere elaborate da
funzioni booleane che
che, a loro volta restituiranno
uno dei due valori 0 o 1.
• Esistono
Ei
anche
h costantii booleane,
b l
che
h a loro
l
volta
l
possono valere 0 o 1
21
Operatori
p
logici
g
• Sono operatori
p
applicabili
pp
a variabili booleane:
• OR, AND, NOT, XOR
• Il NOT opera su di una sola variabile
variabile. Il risultato è
il complemento della variabile in ingresso.
• Tavole
T l di verità
ià
NOT
0
1
1
0
OR
0
1
XOR
0
1
0
0
1
0
0
1
1
1
1
AND
0
1
0
0
0
1
0
1
1
1
0
22
Algebra
g
booleana ((1))
• Qualsiasi funzione booleana puo’ essere costruita
con l’uso di NOT, OR, AND, XOR
• Un insieme di variabili e/o costanti booleane a cui
siano applicati gli operatori logici si dice
espressione
p
booleana o logica
g
• Una espressione logica rappresenta una funzione
logica.
logica
F  a b  a b
F
0
1
0
0
1
1
1
0
23
Calcolatori elettronici e bit
• Un computer è un apparecchio elettronico che manipola
due livelli di tensione elettrica,
elettrica identificati come alto e
basso.
• Il livello alto viene considerato un 1 ed il livello basso uno
0.
• I calcolatori elettronici utilizzano dunque una logica e
un’aritmetica binaria e l’alfabeto impiegato
p g dal
calcolatore è dunque l’alfabeto binario, i cui simboli sono:
{0, 1}
• In un calcolatore,
calcolatore manipolare (leggere,
(leggere elaborare,
elaborare scrivere)
un livello di tensione vuol dire manipolare un bit di
informazione.
• Sia
Si le
l istruzioni
i t i i che
h i dati
d ti in
i un calcolatore
l l t
sono
rappresentati in forma binaria
24
Bits and Bytes
y
• Un computer solitamente manipola in blocco degli insiemi di
bit.
• La memoria stessa è organizzata a blocchi per cui la minima
quantità
tità di ddati
ti iindirizzabile
di i bil è un insieme
i i
di bit
• L’unità di base per la manipolazione di dati è il byte: un
insieme di 8 bit
• I multipli del byte sono:
• Kb: 210 bytes (1 Kilobyte = 1024 byte = 8192 bit)
• Mb: 220 bytes (1 Megabyte = 1.048.576 byte)
• Gb:
Gb 230 bytes
b t (1 Gigabyte
Gi b t = 1.073.741.824
1 073 741 824 byte)
b t )
• Tb: 240 bytes (1 Terabyte = 1.099.511.627.776 byte)
25
Informazione, bit, codifica
•
•
•
•
•
Il calcolatore lavora su insiemi di bit che rappresentano informazioni
disparate tra cui numeri,
numeri caratteri,
caratteri colori ecc.
ecc
Per poter rappresentare queste informazioni avendo a disposizione solo
i bit (ad esempio per rappresentare i simboli dell’alfabeto latino
mediante simboli dell’alfabeto
dell alfabeto binario) è necessaria una regola di
codifica.
La codifica è una legge di rappresentazione che assegna in modo
univoco ad ogni simbolo di un alfabeto un simbolo o una sequenza di
simboli di un secondo alfabeto.
Si dice cardinalità di un alfabeto il numero di elementi (simboli) che
lo compongono.
Ciascun simbolo di un alfabeto con cardinalità maggiore verrà
codificato in una stringa di simboli dell’alfabeto con cardinalità
minore.
i
26
CODICE
ASCII
American Standard Code
for Information
Interchange
1 byte (8 bit) per
codificare 256 simboli
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
[space]
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
23
55
7
87
W
119
w
24
25
26
27
28
29
30
31
56
57
58
59
60
61
62
63
8
9
:
;
<
=
>
?
88
89
90
91
92
93
94
95
X
Y
Z
[
\
]
^
_
120
121
122
123
124
125
126
127
x
y
z
{
|
}
~
**
**
**
**
27
Calcolatore
Hardware
Software
+
E’ una macchina digitale che consente di eseguire delle sequenze di
operazioni elementari.
E’ una macchina in grado di eseguire programmi memorizzati
28
Hardware di un PC
Scheda madre
Dispositivi memorizzazione di massa (dischi, CD-ROM,...)
Altri dispositivi di Input/Output (tastiera, mouse,monitor, ...)
29
Calcolatori elettronici
•
•
Si tratta di una macchina digitale che esegue sequenze operazioni
elementari su dei dati memorizzati.
L macchina
La
hi di Von
V Neumann
N
– Von Neumann (1945) propone un’architettura generale per una macchina
digitale ad esecuzione sequenziale e programma memorizzato.
– Programma:
P
sequenza di istruzioni
i
i i su un supporto di memoria.
i
– Cambiando il programma si cambia il funzionamento della macchina
– Programma residente in memoria in forma binaria. Analogamente la
memoria
i contiene
i
i dati
d i (gli
( li operandi
di per il programma)) anch’essi
h’ i in
i
forma binaria.
– La CPU esegue le istruzioni del programma in modo sequenziale usando il
Program Counter per sapere quale sia l’istruzione
l istruzione successiva.
successiva
•
L’architettura di un calcolatore moderno è molto complessa. La
macchina di Von Neumann è un modello semplificato che consente la
comprensione del funzionamento di un qualsiasi calcolatore
calcolatore.
30
Calcolatore: componenti di base
(Macchina di Von Neumann)
• Unità centrale di elaborazione (CPU): il cervello del
calcolatore Esegue
calcolatore.
Eseg e calcoli ed operazioni
opera ioni e controlla gli
altri componenti. Si tratta di un micropocessore che
elabora dati in ingresso e produce dati (risultati) in uscita.
• Memoria: una memoria è un dispositivo capace di
immagazzinare e restituire informazioni, dati (dati e
pprogrammi).
g
) Esistono diversi tipi
p di memoria: ROM,,
RAM, cache e dispositivi di memorizzazione di massa. La
memoria principale o memoria di sistema è la RAM.
• Dispositvi di Input/Output: strumenti rispettivamente per
l’inserimento di dati nel calcolatore e per la produzione di
un’uscita da parte del calcolatore.
• BUS:
BUS consente
t il trasferimento
t f i
t di informazioni
i f
i i binarie
bi i
(programmi, dati, istruzioni di controllo) tra i vari
componenti del calcolatore. (Segnali digitali)
31
Macchina di Von Neumann
•
•
•
I diversi dispositivi sono tra
g tramite BUS
loro collegati
sui quali vengono trasmessi
dati e comandi.
Il sistema è dotato di una
memoria statica (ROM)
dalla quale vengono letti i
comandi necessari all’avvio
del sistema. In un PC si
chiama BIOS (Basic
Input/Output System)
Il clock gestisce la
temporizzazione e la
sincronizzazione.
Clock
I/O
I/O
CPU
ROM
RAM
Bus
I/O
32
La motherboard
Porta parallela
Porta seriale
Controller
floppy
Banchi memoria
Controller
dischi rigidi
Processore
Connettori
pper schede
33
Architettura di un calcolatore
• Studiare l’architettura di un calcolatore significa studiarne i
componenti hardware:
– Conoscerne ogni componente
– Conoscere il principi di funzionamento di ogni componente
– Conoscere
C
le
l modalità
d lità di interazione
i t
i
tra
t i componenti
ti
• CPU: Instruction Registers, Address Registers, Data
Registers.
• BUS: BUS dei dati, BUS degli indirizzi e BUS di
controllo.
• Numero di processori e organizzazione delle memorie
• Quando si parla di architettura a 16, 32, 64 bit si fa
riferimento al numero di bit che il sistema è in grado di
trattare in
i blocco.
bl
E’ la
l dimensione
di
i
della
d ll parola
l (word)
(
d)
gestita dal bus dei dati.
34
Central Processing Unit (CPU)
•
Fisicamente è realizzata mediante un microprocessore, solitamente
caratterizzato da:
– linguaggio macchina (un set di istruzioni di base che consentono al
software di interagire con la CPU)
– Velocità (frequenza del clock)
– Dimensione e tipo di memoria cache
– Dimensione dei bus
– Coprocessore
•
•
•
E’ costituita da un insieme di componenti elettronici digitali
Elabora dati in forma binaria prelevandoli dai registri e riponendo in
altri
l i registri
i i un risultato
i l
anch’esso
h’
in
i forma
f
binaria.
bi i
Nella forma più astratta la CPU non fa che:
– Leggere
gg informazioni (istruzioni
(
e/o dati)) dalla memoria (FETCH)
(
)
– Interpretare le istruzioni lette (DECODE)
– Eseguire le istruzioni lette (EXECUTE)
35
Linguaggio macchina
• Un microprocessore esegue istruzioni del proprio
ling aggio macchina (assembly
linguaggio
(assembl language
lang age o assembler)
• In assembler sono implementati 3 tipi di istruzioni di base:
– Aritmetico/logiche: mediante ll’ALU
ALU il microprocessore è in grado
di esegure operazioni aritmetiche (addizioni, sottrazioni,
moltiplicazioni e divisioni) e operazioni logiche di confronto
((uguaglianza,
g g
, maggiore
gg
di,, minore di))
– Spostamento: il microprocessore è in grado di spostare dati da una
locazione di memoria ad un’altra o tra i registri interni
– Decisioni e salto: un microprocessore è in grado di prendere
decisioni e di saltare ad un nuovo set di istruzioni basandosi su tale
decisione.
• Q
Qualsiasi
l i i operazione
i
complessa
l
puòò essere realizzata
li t
mediante sequenze di queste operazioni elementari.
36
Architettura di una CPU
•
Bus
controllo
CPU
i
n
d
i
r
i
z
z
i
•
Read
B
U
S
PC Control unit
Write
MAR
B
U
S
d
a
t
i
IR
PSW
ALU
MDR
registri
•
•
•
•
PC (Program Counter) indirizzo della cella di
memoria che contiene la prossima istruzione
da eseguire.
IR (Instruction Register) istruzione che deve
essere eseguita.
MAR (Memory Address Register) indirizzo
della cella a cui accedere (lettura/scrittura)
MDR (Memory Data Register) dato letto
dalla memoria o che deve essere scritto in
memoria
PSW (Processor Status Word) informazioni
sull’esito
sull
esito dell
dell’ultima
ultima istruzione eseguita
Registri per la memorizzazione di operandi e
del risultato dell’operazione eseguita
Esecuzione di una istruzione
•La CPU legge dalla memoria l’istruzione puntata dal PC (FETCH)
•Determina il tipo di istruzione che deve essere eseguito (DECODE)
•Determina
D t
i indirizzo
i di i
di eventuali
t li dati
d ti in
i memoria
i
•Carica gli eventuali dati nei registri
•Esecuzione dell’istruzione (solitamente un insieme di passaggi che coinvolgono diversi
p
interni)) e incremento del PC (EXECUTE)
(
)
componenti
37
Legge di Moore
• Enunciata nel 1964/65 da Gordon Moore (cofondatore di
Intel) si basava
basa a ssull’osservazione
ll’osser a ione che nei circuiti
circ iti integrati
il numero di transistor per unità di superficie di silicio
raddoppiasse
pp
ogni
g 12 mesi.
• Nel corso degli anni il tasso di crescita è rallentato
leggermente ma la densità dei transistor è andata
raddoppiando
dd
i d circa
i ognii 18 mesi.
i Questa
Q t è dunque
d
l’attuale
l’ tt l
formulazione della legge di Moore: “Il numero di transistor
pper unità di superficie
p
di silicio raddoppia
pp ogni
g 18 mesi”
• Non è una legge matematica strettamente parlando, solo
una descrizione di una tendenza (trend) basata su
osservazioni
i i empiriche.
ii h
• Si ritiene che il trend possa proseguire fino al 2017 circa.
38
Modello
4004
8008
8080
8086
286
386™ processor
486™ DX processor
Pentium® processor
Pentium II processor
Pentium III p
processor
Pentium 4 processor
Anno
Transistors
1971
2,250
1972
2,500
1974
5 000
5,000
1978
29,000
1982
120,000
1985
275,000
1989
1,180,000
1993
3,100,000
1997
7,500,000
1999 24,000,000
2000 42,000,000
Freq. Cloc
2 Mh
Mhz
5 MHz
6 MHz
16 MHz
25 MHz
60 MHz
233 MHz
450 MHz
1.5 GHz
Tratto da:
http://www.intel.com/research/silicon/
mooreslaw.htm
Bioingegneria Elettronica e
Informatica 2010/2011
39
Memoria principale
p
p
• La memoria principale è chiamata RAM (Random
Access Memory: tempo di accesso indipendente
dalla posizione del dato)
• La CPU accede direttamente alla memoria
pprincipale
p per
p leggere
gg e scrivere dati e istruzioni.
• Le istruzioni di un programma possono essere
eseguite dalla CPU solo se sono presenti in RAM
• I dati memorizzati vengono persi al momento
dello spegnimento del calcolatore
40
Accesso alla memoria
• Durante l’esecuzione del programma la CPU legge le
istruzioni e scambia dati e altre informazioni con la
memoria
i principale
i i l attraverso
tt
il bus
b
• La memoria principale è vista dalla CPU come un vettore
elementi detti celle di memoria,
memoria ognuna delle quali è in
grado di memorizzare una parola di memoria.
• Ogni cella di memoria è caratterizzata da
– Un indirizzo ovvero l’indice, il numero, che identifica la cella
– Un valore ovvero il contenuto, il dato binario memorizzato nella
cella
• L’accesso da parte della CPU all’informazione (istruzione
o operando) residente nella i-esima cella avviene
scrivendone
i d
l’indirizzo
l’i di i
sull bus
b degli
d l indirizzi
d
e leggendone
l
d
il contenuto mediante il bus dei dati.
41
Memoria - indirizzamento
• In un’architettura che impieghi n bit rappresentare
un indirizzo,
i di i
il numero delle
d ll celle
ll indirizzabili
i di i bili
dalla CPU è 2n ed è detto spazio di indirizzamento.
• L’indirizzo
L’i di i
di una cella
ll in
i uno spazio
i di
indirizzamento di 2n celle è una configurazione
binaria di n bit; la dimensione dello spazio di
indirizzamento di una CPU è uno dei parametri
che ne caratterizza ll’architettura
architettura
• Ogni cella è solitamente composta da 8 bit (un
byte); in questo caso si dice che la memoria è
organizzata in byte; il byte è quindi la più piccola
qquantità di memoria indirizzabile.
42
Memorie
• In ogni sistema informatico esistono diversi tipi di
memorie.
i Si distinguono
di i
per
– Capacità: quantità di dati che può memorizzare
– Volatilità:
V l ili à durata
d
della
d ll memorizzazione.
i
i
– Tempo di accesso
• L
Le memorie
i volatili
l tili perdono
d
l’informazione
l’i f
i
all
momento dello spegnimento della macchina,
hanno una capacità minore.
minore
• Le memorie non volatili sono piu lente, hanno
capacita maggiore e hanno un costo per unità di
memorizzazione minore.
43
Memorie nel sistema
• In tutto esistono 5 tipi di memorie:
– REGISTRI Solo poche decine di byte, sono il tipo più rapido, interno
alla CPU
– ROM Read Only Memory. Contiene le informazioni di base per
l’inizializzazione del sistema.
– CACHE:
CACHE IInterposta
t
t tra
t CPU e RAM ha
h capacità
ità di alcune
l
centinaia
ti i di
Kb. Consente un accesso ai dati più rapido della RAM.
– RAM memoria p
principale,
p
di lavoro, alcuni ((1-4)) GB, tempo
p di accesso
indipendente dalla posizione del dato
– Memorie di massa. Dischi, tape, CD-ROM, CD-RW. Memorie ad
accesso sequenziale o comunque dipendente dalla posizione del dato
dato.
Diversi GB
44
Memorie: suddivisione funzionale
• Memoria interna (registri e cache)
– Memorizzano temporaneamente i dati e le istruzioni;
– Tempi di accesso di alcuni ns
• Memoria principale (RAM)
– Memorizza dati e istruzioni per i programmi in esecuzione
– La
L CPU vii accede
d direttamente;
di tt
t tempi
t
i di accesso di ~10
10 ns
• Memoria secondaria (di massa)
– memorie in linea (es
(es. dischi magnetici);
tempi di accesso di alcuni ms
– memorie fuori linea (es. nastri magnetici);
tempi di accesso di alcuni s
45
Disco Magnetico
g
Uno strato
magnetizzabile
ricopre entrambe i lati
di una base in
alluminio.
U ttestina
Una
ti di
lettura/scrittura sopra
e sotto ogni faccia
che si posiziona sul
cilindro richiesto.
46
Dischi magnetici
g
•
•
•
•
•
•
•
•
•
Ogni disco (piatto) ha due superfici (facce)
Ogni faccia è suddivisa in tracce concentriche
Ogni traccia è suddivisa in settori durante la formattazione
Un cilindro è un insieme di tracce sui diversi piatti
Un settore è l’unità logica di memorizzazione. Si può accedere (lettura
o scrittura) solo ad un intero settore: trasferimento a blocchi
Se la quantità di dati supera la capacità del blocco (settore, solitamente
512 bbyte),
) il file
fil system deve
d
spezzare il file
fil e tenere traccia
i dei
d i
blocchi usati per poter concatenare il contenuto.
Ogni settore ha un proprio indirizzo dato dalla terna cilindro, traccia,
settore.
tt
Tempo medio di accesso ai dati <10 ms
Velocità di rotazione: 1200-9600 rpm
– Capacità
C
ità di memorizazione:
i i
100 Gb
Gbyte
t - 2 Tbyte
Tb t
– Velocità di trasferimento: 10 Mbyte/s - 120 Mbyte/s
47
Nastri magnetici
g
• Il materiale magnetizzabile è disposto su un nastro
in materiale plastico. Bobine, DAT ecc.
• Memorizzazione a blocchi
• Accesso sequenziale
• Trovano impiego come dispositivi di backup o
archiviazione
48
Struttura gerarchica
g
• La memoria deve essere progettata e gestita in
modo
d dda ottenere:
– capacità di memorizzazione adeguata
– prestazioni
i i accettabili
bili
– costi ridotti
• La
L soluzione
l i
ottimale
tti l comporta
t la
l
– minimizzazione dei costi
– massimizzazione
i i
i
della
d ll capacità
ità di memoria
i
– minimizzazione dei tempi di accesso ai dati
• Soluzione
Sol ione approssimata: gerarchia
49
Gerarchia di memorie
• Disponendo di due memorie (es: M1 e M2) con
diverse tecnologie e costi per cui
– Una (M1) è più rapida ma più cara e di dimensioni
ridotte
– L’altra (M2) è meno costosa e con maggiore capacità
ma più lenta
• Il sistema gestirà la memoria di modo che i dati
utilizzati più raramente siano posti in memorie
con tempi di accesso più elevato (M2), mentre i
dati utilizzati più frequentemente in memorie con
tempi di accesso più brevi (M1).
50
Gerarchia di memorie (1)
( )
CPU
Cache
L1
Cache
L2
[KB]
Memoria
P i i l
Principale
(RAM)
[MB]
Memoria
Secondaria
(memoria
di massa)
[GB]
51
Dispositivi di memoria
Tempo accesso
Capacità
Durata memoriz.
Registri
ns
KB
Volatile
Cache
~10 ns
256 KB – 4
Mb
Volatile
Memoria principale
(RAM)
~50 ns
2-4 GB
Volatile
Dischi magnetici
~10 ms
100 GB –
2TB
Elevata
Dischi ottici
~100
100 ms
100/1000 GB
Elevata
CD-RW
700 MB
Elevata
DVD
4.5-16 GB
Elevata
52
Input/Output
• Input: dispositivi che consentono di introdurre dei
dati (anche programmi) nel calcolatore
– tastiere, mouse, microfono, joystick, convertitore A/D,
telecamera, CD-ROM
• Output: dispositivi che consentono di produrre un
risultato in uscita.
– stampanti,
p
monitor, convertitore D/A, pplotter,
altoparlanti
• Input/Output:
p
p
– dischi, CD-RW, InfraRosso (IR), RS-232 (Porta
seriale)
53
Periferifche di I/O
• A blocchi: lavorano su un blocco di byte alla
volta.
– Blocco da 512 byte a 64K
– Ogni blocco può essere letto e scritto
indipendentemente dagli altri.
– Ogni blocco è identificato da un indirizzo
– Dischi, nastri, CD-ROM e DVD
• A carattere: operano su un carattere alla volta.
– Un dispositivo
p
a carattere non è indirizzabile e non ha
alcuna primitiva di posizionamento (seek)
– Tastiera, mouse, porte seriali
54
Guida all’acquisto
q
• Complessivamente
Complessivamente, sulla base di quali parametri valutare
un calcolatore per, ad esempio, fare un acquisto?
– SCHEDA MADRE: socket adatto al p
processore scelto
– PROCESSORE: Attualmente Core Duo – Six Core (da 1 GHz a
2.4 Ghz) da 128 Kb – 2 Mb di cache, processori multi-core
– RAM:
RAM capacità
ità (da
(d 256Mb – 4 Gb) e ffrequenza (133
(133-800MHz)
800MH )
– DISCHI: comunemente da 100 Gb a 2 Tb accesso da 9 a 11 ms
– SCHEDA VIDEO: Tecnologia AGP (Accelerated Graphics Port),
Memoria (4-32 Mb) e risoluzione - frequenza (1024x768x16.7M di
colori a 85Hz)
– CD-DVD
CD DVD CD llettura
tt
dda 24 a 50
50x; DVD llettura
tt
dda 5 a 10
10x
55
Sistema Operativo
p
• Quel particolare programma che si pone come interfaccia
tra utente e calcolatore
• Quel software che rende l’hardware utilizzabile
• Il sistema operativo
p
comanda e controlla tutte le risorse del
calcolatore, gestisce la loro allocazione alle applicazioni
• Fa quindi da tramite tra hardware ed il software
applicativo.
applicativo
• Alcuni esempi di SO: MS-DOS, WINDOWS
95/98/NT/XP, UNIX, MAC OS
NOTA N
NOTA:
Non tuttii i computer hhanno un sistema
i
operativo.
i I
microprocessori dedicati (quello che gestisce il forno a
microonde o la temporizzazione di un motore a scoppio ad
es.) eseguono sempre uno stesso programma e non
necessitano di un sistema operativo.
56
Sistema Operativo
p
((1))
•
Il Sistema Operativo ha due funzioni principali:
– gestisce le risorse hardware e software del sistema di elaborazione (CPU,
memoria, periferiche, spazio su disco).
– fornisce ai programmi applicativi gli strumenti per interagire con le
risorse hardware del sistema. (Fornisce un sistema stabile e consistente,
uniforme per interfacciare le applicazioni con i dispositivi,
dispositivi anche nuovi,
nuovi
del sistema)
– Gestisce la comunicazione tra i vari sottosistemi hardware
•
Uno stesso SO può essere implementato su sistemi di architettura
diversa fornendo così la stessa interfaccia utente.
– UNIX (su architetture Alpha, Sun, IBM…)
– WINDOWS NT ((su architetture Intel e Alpha)
p )
Applicazioni
li i i
Sistema Operativo
Assembler
Hardware
57
Sistema Operativo
p
((2))
• Il SO presenta all’utente ed ai programmi applicativi delle
risorse virtuali
i t li che si presentano in modo uniforme,
niforme
indipendentemente dalle risorse reali a cui corrispondono.
Il SO assicura la corrispondenza
p
tra le risorse reali e qquelle
virtuali.
• Utente e programmi applicativi non necessitano di
conoscere il dettaglio
d tt li delle
d ll risorse
i
reali.
li Essi
E i sii
interfacciano solo con le risorse virtuali, più semplici da
usare.
• I SO possono essere classificati in termini della modalità di
gestione delle risorse in:
– M
Monoprogrammazione
i
– Multiprogrammazione (multitasking e time sharing)
– Multielaborazione
58
Monoprogrammazione
p g
• Detti sistemi batch monoprogrammati, anni ’50 e ‘60
• Si tratta del modo più semplice di gestire le risorse del
computer. Il SO MS-DOS è monoprogrammato.
• Un solo programma alla volta è in esecuzione. Questo
programma monopolizza la CPU fino al termine delle sue
operazioni.
operazioni
• Le risorse del computer, in particolare la CPU, vengono
allocate ai diversi programmi in modo sequenziale.
sequenziale
• Durante le operazioni di input/output (I/O) la CPU è
inutilizzata
• Le capacità dell’ hardware sono sotto impiegate.
59
Multiprogrammazione
p g
• Multitasking: Possono essere caricati in memoria più
programmi contemporaneamente
• Processo: programma in esecuzione (sequenza di istruzioni).
• Quando un processo invoca funzioni di I/O la CPU esegue
un altro processo. Un processo che non richiede I/O blocca
la CPU.
CPU
• Time sharing: il tempo della CPU viene suddiviso in
frazioni,, dette slices e ogni
g slice viene allocata ad un
processo.
• Processi con priorità più elevata riceveranno una slice più
f
frequentemente
d li altri.
degli
l i
• Migliora la gestione delle risorse hardware della macchina.
60
Multielaborazione
• Macchine multiprocessori
p
o più
p macchine che
cooperano nell’esecuzione dei programmi.
• Il sistema operativo diviene estremamente
complesso.
• E
E’ necessario gestire la parallelizzazione ovvero la
suddivisione dei compiti tra le varie CPU.
• Il S.O.
S O ddeve iinoltre
l determinare
d
i
quali
li partii del
d l
programma devono essere terminate prima che
altre
lt vadano
d
in
i esecuzione.
i
• Sono lo stato dell'arte della tecnologia corrente
61
Il ggestore di memoria
• In un SO multiprogrammato con time sharing (Windows):
• Il Gestore di Memoria (parte del SO che gestisce la
memoria) deve:
– tenere traccia
i di quali
li partii di memoria
i sono in
i uso e quali
li non lo
l
sono
– allocare la memoria ai p
processi che la necessitano e deallocarla
– gestire lo swapping tra la memoria principale e il disco quando la
memoria principale non ha una capacità sufficiente per mantenere
tutti i processi (memoria virtuale)
– Il compito complessivo è quello di cercare di sfruttare al meglio le
diverse tipologie di memoria disponibili nel sistema al fine di
minimizzare il tempo di esecuzione dei programmi (sfruttare la
gerarchia di memoria).
62
Memoria virtuale
• Il meccanismo di gestione della gerarchia di
memoria
i più
iù comunemente impiegato
i i
è quello
ll
della Memoria Virtuale
• La
L memoria
i virtuale:
i
l
– rende il programma indipendente dalle dimensioni
fisiche della memoria principale (RAM) della macchina
– libera il programmatore dalla gestione dello spazio di
memoria fisico
• Criteri di funzionamento:
– allocazione dinamica (la memoria viene attribuita ad un
programma solo quando necessario)
– spostamento automatico dei dati
63
Memoria virtuale (1)
( )
• Il gestore di memoria tiene nella memoria
principale
i i l solo
l le
l partii del
d l programma in
i uso e
lascia il resto del programma sul disco fisso.
• Quando
Q d un programma ffa riferimento
if i
add una parte
del programma che non è caricata, il gestore di
memoria la carica dal disco alla memoria
principale, scaricando se necessario altre parti
dello stesso o di altri programmi
• Esistono diversi meccanismi di gestione della MV
(paginazione segmentazione
(paginazione,
segmentazione, segmentazione con
paginazione)
64
File system
• Il file system è quella parte di SO che fornisce servizi (alle
applicazioni)
pp
) pper l’accesso a dati archiviati su dispositivi
p
di
memorizzazione di massa.
• E’ l'insieme di algoritmi e strutture dati che realizzano la
traduzione tra operazioni logiche sui file e le informazioni
memorizzate sui dispositivi fisici (dischi, nastri)
• Un file system rappresenta una astrazione unificata e
coerente
t dei
d i dispositivi
di
iti i fisici.
fi i i NTFS,
NTFS FAT16,
FAT16 FAT32
• Grazie al file system le applicazioni non devono interagire
direttamente con i dispositivi
p
di memorizzazione ((dischi,,
CD, DVD, nastri)
• Da un punto di vista logico il file system è costituito da
files e dalla struttura di directory
• Dal punto di vista del software il file system necessita di
device drivers, routine di gestione e chiamate di sistema.
65
Sicurezza informatica
• In ambito informatico la sicurezza implica:
– Segretezza: le informazioni devono poter essere lette
solo da persone autorizzate.
– Integrità: le informazioni non devono poter essere
alterate se non dalle persone autorizzate
– Accessibilità: le informazioni devono poter essere rese
accessibili alle persone autorizzata
– Autenticità: la provenienza delle informazioni deve
essere garantita e verificabile
• La sicurezza può quindi essere minacciata
mediante alterazione, interruzione, intercettazione,
distruzione e creazione di dati.
1
VIRUS
• Parte indesiderata
all’interno di un software
• Ha la capacità di
moltiplicarsi ed infettare
altri programmi
• Solitamente piccoli
programmi che alterano il
funzionamento regolare
della macchina, di software
o che danneggiano o
cancellano files
2
VIRUS (1)
• I programmi antivirus forniscono una buona
protezione nei confronti del pericolo di infezione,
ma solo nei confronti dei virus già conosciuti.
• Macro virus: tipicamente nei documenti di
Microsoft Word, si propaga ad altri documenti. Si
attivano aprendo il documento, tipicamente con la
macro autoexec. – Disattivare le macro
• E-mail virus: sono contenuti negli allegati alla
posta elettronica e vengono attivati aprendo
l’allegato. Si propagano mediante la lista degli
indirizzi del client di posta elettronica. – Non
aprire allegati sospetti o ricevuti da sconosciuti
3
SPYWARE
• Sono considerati il maggior rischio informatico per il 2005.
• Si tratta di programmi che si installano sul computer e effettuano
operazioni nascoste senza il consenso degli utenti.
• Le attività tipiche sono il tenere traccia dei tasti premuti, il furto
di password, il monitoraggio delle scelte e abitudini di
navigazione, l’apertura di finestre pop-up indesiderate,
comunicare il vostro indirizzo a server di spamming, ridirigere il
browser verso pagine predefinite e trasmettere informazioni a
server remoti.
• Sono “parenti” dei virus che si installano a partire da siti internet
che propongono di scaricare demo, mp3, software ecc.
Operazioni che richiedono approvazione. EULA
• Una volta in esecuzione sul computer locale spesso non appaiono
nella lista dei processi (task manager) e non possono essere
rimossi semplicemente con una disinstallazione. Necessitano di
apposito software (antispyware) per la rimozione.
4
Algoritmi
• Gli algoritmi sono le “ricette logiche” che
costituiscono la base dei programmi per il
computer.
• Algoritmo: la specificazione di un processo di
comportamento. Consiste in un numero finito
di istruzioni che governano il comportamento
passo per passo.
• Un qualsiasi insieme di istruzioni che specifichi
un procedimento in modo non ambiguo può essere
considerato un algoritmo.
5
Ricetta besciamella
•
•
•
•
•
•
•
Ingredienti
Scaldare olio o burro a fuoco lento
Aggiungere la farina mescolando cucchiaio legno
Aggiungere lentamente il latte caldo, sul fuoco
Mescolare fino a che sobbolle
Fare cuocere un quarto d’ora mescolando
Aggiungere sale e noce moscata
6
Algoritmi informatici
• Una caratteristica costante degli algoritmi
informatici è che questi coinvolgono
inevitabilmente la manipolazione di dati.
• Ogni algoritmo informatico riceve dei dati in
ingresso, elabora tali dati seguendo l’insieme di
istruzioni che specificano il procedimento, e
produce un’uscita.
Dati in
ingresso
Elaborazione
Dati in
uscita
7
Proprietà di un algoritmo
• Precisione, semplicità e livelli di astrazione.
• Un algoritmo deve essere preciso, non può
consentire dubbi di interpretazione
• Ogni passo di un algoritmo deve essere semplice,
elementare
• Il concetto di semplicità è un concetto vago e deve
essere considerato relativamente al livello di
astrazione appropriato
8
Livello di astrazione
• Il livello di dettaglio con cui devono essere formulate le
istruzioni dell’algoritmo avrà dunque un livello di
astrazione dipendente dalle conoscenze dell’esecutore
dell’algoritmo stesso.
• Un algoritmo ben progettato sarà organizzato in termini di
diversi livelli di astrazione: le istruzioni elementari che
costituiscono l’algoritmo per l’esecuzione dei singoli passi
sono nascoste in moduli (funzioni o procedure).
• Ogni modulo sarà a sua volta un algoritmo.
• I moduli consentono di lavorare ad alto livello, ignorando i
dettagli ma organizzandoli in moduli cui si possa fare
riferimento per nome
9
Altre proprietà
• finitezza: composto da un numero finito di passi
elementari; le operazioni sono eseguite un numero
finito di volte (evitare cicli infiniti)
• non ambiguità: i risultati non variano in funzione
dell’esecutore dell’algoritmo (deterministico)
• realizzabilità: deve essere eseguibile con le
risorse a disposizione
10
Rappresentazione algoritmi
• La rappresentazione spesso considerata più
efficace è quella mediante diagrammi di flusso o
flow chart
• Consente la rappresentazione grafica dei passi
elementari e fornisce una visione complessiva del
procedimento
• Considera quattro operazioni di base:
–
–
–
–
Input/output
Elaborazione
Decisione
Start/stop
11
Simboli convenzionali dei flow chart
ingresso/uscita
inizializzazione
documento
elaborazione
inizio/fine
input manuale
elab. predefinita
connessioni
disco
decisione
mem. sequenziale
12
Controllo di flusso
• If-then-else
I
• While-do
I
O
O
13
Algoritmi e computer
• Se desideriamo che un computer possa eseguire un
algoritmo, è necessario che l’algoritmo sia
espresso in termini binari.
• Le persone ragionano in termini di idee e
significati, come oltrepassare la distanza tra il
livello al quale si esprimono gli uomini ed il
livello al quale funzionano i computer?
• Per facilitare l’uso e la programmazione dei
computer sono stati introdotti diversi “livelli di
astrazione” cui corrispondono diversi livelli di
dettaglio riguardo al come viene realizzato un
determinato compito.
14
Livelli di astrazione nel computer
• Utente: l’utente interagisce con un software applicativo, non è
interessato a conoscere il funzionamento dell’algoritmo
sottostante.
• Algoritmico: l’implementazione di un algoritmo in un certo
linguaggio di programmazione; è il codice del programma.
• Traduzione: l’azione di un particolare software detto
compilatore o interprete che traduce il codice del
programmatore in una forma comprensibile dal computer
• Hardware: manipola le informazioni binarie per produrre
un’uscita sulla base degli ingressi forniti.
15
Algoritmi e programmi
• L’algoritmo è dunque l’insieme di passaggi logici,
indipendentemente dall’espressione in un qualsiasi
linguaggio di programmazione.
• Un programma è invece una espressione di un
algoritmo in un particolare linguaggio di
programmazione
• Ad un algoritmo possono dunque corrispondere
più programmi in linguaggi differenti o che
adottano diverse istruzioni per espletare il compito
espresso da uno stesso algoritmo.
16
Algoritmi e dati
• Il concetto di dati è indissolubilmente legato a
quello di algoritmo
• Un computer non fa altro che manipolare dati in
forma binaria un algoritmo informatico non potrà
fare altro che manipolare dati
• All’interno di un computer ogni informazione è
rappresentata sotto forma di dati.
• L’informazione rappresenta direttamente la
conoscenza, i dati sono una rappresentazione
specifica di un’informazione
17
Flow chart pari/dispari
Begin
Dato un numero (N) in
ingresso, determinare se è
pari o dispari
N
Si
N mod 2=0?
N è pari
No
N è dispari
End
18
Flow chart divisori
Begin
Dato un numero N, trovare
l’insieme dei suoi divisori interi
N
i=1; Div=[]
i<=N
No
Si
N mod i=0?
Si
Aggiungi i a Div
No
i=i+1
End
19
Flow chart numeri primi
Begin
Dato un numero N in
ingresso, determinare se
N e’ un numero primo
N
i=2
No
i<N
No
i=i+1
Si
N mod i=0?
N primo
Si
N non primo
End
20
Il minimo di un vettore
Begin
vett
Richiedo un vettore in ingresso
Inizializzo il contatore i=2 e la variabile
minimo al primo elemento del vettore
i=2; min=vett(1)
i<=lun(vett)
No
min
Dato un vettore di numeri
trovarne l’elemento più piccolo
Si
vett(i) < min ?
Si
min=vett(i)
No
i=i+1
End
21
Segnali
• Il termine segnale fa riferimento ad una
grandezza che contiene informazione riguardo ad
un sistema fisico.
• Indipendentemente dalla natura e dalla
rappresentazione del segnale l’informazione è
contenuta nelle variazioni della grandezza
rappresentata, rispetto ad un dominio appropriato
(tipicamente spazio o tempo)
22
Segnali biologici
• La definizione di un segnale biologico recita: un
segnale biologico è una registrazione temporale o
spaziale di un evento biologico. (Un battito
cardiaco o la contrazione di un muscolo).
• L’attività elettrica, chimica e meccanica che ha
luogo durante l’evento spesso produce segnali che
possono essere registrati, misurati ed analizzati
fornendo così informazioni sui meccanismi
fisiologici che hanno dato origine all’evento
osservato.
23
Segnali di natura elettrica
• Cellule nervose e muscolari generano segnali di
tipo elettrico come risultato di cambiamenti
elettrochimici inter- e intra- cellulari.
• Quando un nervo o un muscolo vengono eccitati
da uno stimolo di ampiezza sufficiente ad
oltrepassare una certa soglia, la cellula produce un
potenziale di azione: un flusso di ioni attraverso la
membrana cellulare.
• Il potenziale d’azione di una cellula eccitata può
trasmettersi alle cellule adiacenti.
24
Potenziali d’azione
• L’insieme di potenziali d’azione prodotti dalle
cellule eccitate da luogo ad un campo elettrico,
che si propaga attraverso il tessuto biologico.
• Le differenze di potenziale nel campo generato
possono essere misurate con elettrodi di superficie
all’esterno dell’organo o dell’organismo.
• L’elettrocardiogramma (ECG),
elettroencefalogramma (EEG) e l’elettromiografia
(EMG) sono esempi di segnali biologici che
sfruttano questi principi.
25
Mondo reale
• Nel mondo reale, la maggior parte di segnali sono definiti
per ogni istante di tempo, qualsiasi sia il livello di dettaglio
richiesto è sempre possibile attribuire un valore alla
quantità osservata. Si tratta di una quantità CONTINUA
nel tempo. (Una tensione, un flusso, una posizione).
• Il segnale continuo y=f(t) è dunque definito per - <t<
• Allo stesso modo, se consideriamo l’insieme dei valori
assunti da una grandezza continua, una tensione elettrica
ad esempio mentre varia tra due valori (-1V ed 1V), si
tratta di un insieme di cardinalità infinita. Una tensione
sinusoidale che oscilla tra -1 ed 1 V assume tutti i valori
compresi nell’intervallo [-1,1]: un numero infinito di
valori.
26
Rappresentazione
• Volendo rappresentare una grandezza del mondo
reale (la ns tensione tra –1 e 1 v) su un calcolatore,
siamo obbligati a passare dal mondo delle
grandezze continue a quello delle grandezze
discrete: il calcolatore consente un livello di
dettaglio limitato, finito.
• La precisione della rappresentazione numerica su
di un calcolatore è solitamente di 16/18 cifre
decimali. Non è possibile avere ulteriore dettaglio:
la cifra 0.0000000000000000012 è identica alla
cifra 0.0000000000000000014, entrambe sono
rappresentate con 0.000000000000000001
27
Discreto
• Il calcolatore è dunque un sistema discreto: un
sistema che consente la rappresentazione di una
grandezza fino ad un certo livello di dettaglio.
• La registrazione e la memorizzazione di un
segnale continuo può avvenire solo in modo
discreto se viene realizzata attraverso un
calcolatore.
• Un segnale discreto è un segnale definito solo in
punti discreti del tempo o dello spazio.
• Un segnale y=s(n) è definito n
o n N
28
Campionamento
• Il campionamento corrisponde al processo di
discretizzazione di una variabile continua e si basa
sull’idea di rappresentare l’andamento temporale
di una grandezza attraverso la rappresentazione
dei valori assunti da tale grandezza ad intervalli
fissi di tempo.
• Effettuando un numero elevato di misure, ovvero
riducendo il tempo che intercorre tra due misure
successive, è possibile ottenere una
rappresentazione del segnale originale con un
sufficiente livello di dettaglio.
29
Dal continuo al discreto
• Dalla funzione continua
y=f(t) con t R e y R
• Ad una sua rappresentazione discreta:
– v sarà la successione temporale dei valori istantanei
assunti da y in corrispondenza degli istanti di
campionamento. Tc è l’intervallo tra due istanti di
campionamento: il periodo di campionamento.
v=f(nTc) con n Z e v R
• fc=1/Tc è detta frequenza di campionamento
30
Teorema del campionamento
• Definisce quale debba essere la frequenza con cui si
realizzano le misure del segnale di partenza affinché sia
possibile ricostruirlo senza perdita di informazione.
• Questa scelta viene fatta sulla base delle caratteristiche del
segnale che si vuole rappresentare. In particolare è
necessario conoscere quale sia il contenuto in frequenza
del segnale per poter determinare la frequenza di
campionamento minima da impiegarsi.
• Se la massima frequenza del segnale di partenza è fMAX
allora la frequenza di campionamento dovrà essere
fc≥ 2fMAX
31
Campionamento di un segnale
y=sin(t)
T= 2*
f=1/(2* )Hz
fC=5Hz
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
2
4
6
8
10
12
14
32
Quantizzazione
• Se il segnale campionato deve essere rappresentato da un
calcolatore, non solo il domino (tempo, spazio) ma anche il
codominio (valori) del segnale non potrà essere un insieme
continuo.
• Sarà necessario quantizzare il segnale definendo i possibili
valori che può assumere ed approssimando i campioni
aventi valori non previsti mediante arrotondamento.
• Dato un segnale per il quale si voglia avere una
rappresentazione con una certa precisione (un numero di
cifre decimali) bisogna determinare il numero di bit da
impiegare nel processo di digitalizzazione del segnale.
33
Quantizzazione
•
•
•
Dato un segnale che varia tra due valori minimo
(m) e massimo (M) per il quale sia richiesta una
precisione P (es: P= 0,02) allora N=log2[(Mm)/P].
Il risultato sarà un numero intero N arrotondato
sempre per eccesso.
Sinusoide tra –1 e +1 con precisione di due cifre
decimali (P=0.01) necessiterà di
N=log2((1+1)/10-2)=8 bit
34
Acquisizione del segnale
Sensore
RC
A/D C
memo / video
SP
Parametro
osservato
• Un sensore (trasduttore) converte la quantità misurata in
una grandezza elettrica.
• La rete di condizionamento (RC) amplifica e solitamente
filtra la grandezza elettrica (continua).
• Il convertitore analogico/digitale campiona il segnale ad
una determinata frequenza e lo quantizza rappresentandolo
con un certo numero di bit. In un computer questo viene
realizzato da una scheda di acquisizione.
35
Acquisizione EOG
• Determinare il numero di bit da impiegare nel
processo di digitalizzazione di un segnale
compreso tra –5 e +5 V per ottenere una
rappresentazione con un livello di precisione pari
ad almeno 0.001 V (1 mV)
• Log210/.001=13.28
• Devo dunque impiegare per lo meno 14 bit
36
Sistema Informativo
• Componente (sottosistema) di una organizzazione che
gestisce (acquisisce, elabora, conserva, produce) le
informazioni di interesse.
• il sistema informativo esegue/gestisce processi informativi
(cioè i processi che coinvolgono informazioni)
• Funzioni di un sistema informativo:
– raccolta, acquisizione delle informazioni
– archiviazione, conservazione delle informazioni
– elaborazione delle informazioni
– distribuzione, scambio di informazioni
37
Gestione delle informazioni
• Nelle attività umane le informazioni vengono
gestite (registrate e scambiate) in diverse forme:
– idee informali
– linguaggio naturale (scritto o parlato, formale o
colloquiale, in una lingua o in un’altra)
– disegni, grafici, schemi
– numeri
– codici (anche segreti)
• e su vari supporti, dalla memoria umana alla carta
38
Informazione e dati
• All’interno di un computer ogni informazione è
rappresentata sotto forma di dati.
– INFORMAZIONE: elemento che consente di avere
conoscenza di fatti, situazioni ecc.; notizia, ragguaglio
– DATO: ciò che è conosciuto o accertato; (inform.)
elementi di informazione costituiti da simboli che
debbono essere elaborati.
• I dati sono dunque i fatti elementari, che devono
essere interpretati per fornire conoscenza
• I dati sono anche direttamente rappresentabili,
informazione e conoscenza no.
39
Base di dati
(accezione generica)
• collezione di dati, utilizzati per rappresentare le
informazioni di interesse per una o più
applicazioni di una organizzazione.
(accezione specifica)
• collezione di dati gestita da un DBMS
40
Gestione su files
• La gestione di insiemi di dati grandi e persistenti è
possibile anche attraverso sistemi più semplici — gli
ordinari file system dei sistemi operativi
• Anche la gestione mediante file system, nei sistemi
operativi che lo consentono (UNIX, NT), permette di
realizzare rudimentali forme di condivisione.
• I file system prevedono forme di condivisione e di gestione
della sicurezza permettendo accessi contemporanei in
lettura ed esclusivi in scrittura: se è in corso un’operazione
di scrittura su un file, altri non possono accedere al file,
neanche in lettura.
41
DBMS:Database Management System
Sistema (software applicativo) in grado di gestire collezioni
di dati che siano (anche):
– grandi (di dimensioni (molto) maggiori della memoria
centrale dei sistemi di calcolo utilizzati)
– persistenti (con un periodo di vita indipendente dalle
singole esecuzioni dei programmi che le utilizzano)
– condivise (utilizzate da diverse applicazioni)
garantendo affidabilità (resistenza a malfunzionamenti
hardware e software) e privatezza (gestione della
sicurezza dei dati). Come ogni applicativo, un DBMS deve
essere efficiente (ottimizzare l‘uso delle risorse del
sistema) ed efficace (incrementare la produttività dei suoi
utilizzatori).
42
DBMS vs FILE SYSTEM
• I DBMS estendono le funzionalità dei file system,
fornendo più servizi ed in maniera integrata (sono più
efficaci).
• Nei DBMS, c’è maggiore flessibilità nella la gestione della
sicurezza dei dati: più utenti possono accedere
contemporaneamente a record diversi di uno stesso file o
addirittura allo stesso record (in lettura).
• Nei DBMS, esiste una porzione della base di dati (il
catalogo o dizionario) che contiene una descrizione
centralizzata dei dati, che può essere utilizzata dai vari
programmi.
43
Banche dati
• Una banca dati permette la memorizzazione
compatta ed ordinata di dati ed offre strumenti per
accedere ai dati archiviati.
• Un database è composto dalla base di dati vera e
propria e da un programma per la sua gestione
(database manager)
• Una base di dati è costituita da più files (o tabelle)
che contengono dati affini per argomento ordinati
secondo un certo criterio
• Ogni tabella è costituita da più record di dati
44
Record ed attributi
• Un record rappresenta una voce dell’archivio
• A sua volta questa voce sarà costituita da un
insieme di attributi o campi
• Es.: ogni persona rappresenterà un record della
tabella ANAGRAFICA.
• Gli attributi della persona possono essere “Nome”,
“Cognome”, “Codice fiscale”, “Indirizzo” ecc.
45
Il Modello dei Dati
• Il modello fornisce le regole per la costruzione e la
manipolazione della rappresentazione
• La rappresentazione è un insieme di simboli posti in
corrispondenza con la realtà di interesse.
• La realtà di interesse è quella parte del mondo reale
che si vuole descrivere, così come è percepita da chi
costruisce la rappresentazione.
• Una componente fondamentale del modello è il
meccanismo di strutturazione ovvero ciò che consente
la definizione dei legami tra i dati rappresentati e delle
regole di coerenza che i dati devono soddisfare.
46
Modello Entità - Relazione
• Entità
– Sono ciò di cui interessa rappresentare alcuni “fatti”. E’ una classe
che rappresenta un insieme di oggetti di cui si individuano proprietà
comuni. →TABELLE
• Attributi/Domini
– Sono i “fatti”, le caratteristiche che si devono descrivere. E’ una
corrispondenza tra una entità ed un dominio, che rappresenta un
insieme di oggetti rappresentabili tramite un valore. Un attributo
assegna una proprietà alla classe (entità o relazione) a cui è
associato. →COLONNE
• Relazioni
– Sono i “fatti” che correlano le Entità. Rappresentano le connessioni
logiche tra più Entità →LEGAMI
PERSONA
(1,N)
AUTORE
(N,1)
ARTICOLO
Ogni persona può
essere autore di
uno o più articoli e
ogni articolo ha
almeno un autore.
47
RELAZIONI
• Il collegamento logico tra le tabelle che rappresentano le
entità viene stabilito attraverso le relazioni.
• Vengono realizzate mediante tabelle in cui si riporta un
attributo identificativo di ogni entità collegata.
48
Sistema Relazionale
• Il vantaggio del modello relazionale è dato dalla sua
fondamentale semplicità per l’utente. La difficoltà si
trasferisce dall’utente all’implementatore che deve
prendere la maggior parte delle decisioni in fase di
creazione della base di dati.
• Un sistema per la gestione di una dase di dati relazionale è
detto RDBMS (Relational Data Base Management
System). Ogni RDBMS commerciale (Access, Oracle,
Sybase, Informix…) impiega un linguaggio per la gestione
della base di dati.
49
Elementi di SQL
• Creazione di una tabella con campi COGNOME,
NOME, NUMERO DI TELEFONO:
CREATE TABLE PERSONA
(COGNOME CHAR(20),
NOME CHAR(20),
NUMERO_TELEFONO CHAR(15));
50
Elementi di SQL
• Ricerca di
PERSONA:
ROSSI
MARIO
nella
tabella
SELECT *
FROM PERSONA
WHERE COGNOME=’ROSSI’ AND
NOME=’MARIO’;
• Inserimento di BIANCHI PAOLO nella tabella
PERSONA:
INSERT INTO PERSONA VALUES (‘BIANCHI’,
’PAOLO’, ’0382/548677’);
51
Elementi di SQL
• Oppure, tralasciando il numero di telefono
INSERT INTO PERSONA (COGNOME, NOME) VALUES
(‘BIANCHI’, ’PAOLO’);
• Inserire in una tabella NOMINATIVI il nome ed il
cognome dell’insieme delle persone registrate
nella tabella PERSONA
INSERT INTO NOMINATIVI (COGNOME, NOME)
SELECT COGNOME, NOME FROM PERSONA;
52
Elementi di SQL
• Modificare i dati inseriti cambiando BIANCHI in
BANCHI:
UPDATE PERSONA
SET COGNOME=‘BANCHI’
WHERE COGNOME=‘BIANCHI’
53
INTERNET
• INTERconnected NETworks
• Nasce all’inizio degli anni settanta una rete di collegamento tra centri
militari e centri di ricerca chiamata ARPANET basata su un criterio di
trasmissione di dati detto TCP/IP (Transmission Control
Protocol/Internet Protocol).
• I segnali trasmessi attraverso la rete sono digitali, a differenza di
quanto avviene nella trasmissione telefonica.
• La struttura di Internet è quella di una rete con collegamenti di tipo
molti a molti.
• Un insieme globale di reti collegate tra loro in molti modi diversi a
formare un’unica entità complessiva: INTERNET
• I computer collegati ad Internet possono essere suddivisi in server
(computer che forniscono un servizio: web server, server di posta ecc.)
e client (computer che richiedono un servizio: il PC di un utente)
54
MINISTERO DELLE FINANZE
ARCHITETTURA DEL SISTEMA
UFFICI DEL TERRITORIO
Catasto
Conservatorie
Demanio
Commissioni
Tributarie
UFFICI DELLE ENTRATE
Imposte Dirette
IVA
Registro
INTERNET
GUARDIA DI FINANZA
RETE
TRASMISSIONE DATI
CENTRI DI SERVIZIO
PUBBLICHE
AMMINISTRAZIONI
ED ENTI ESTERNI
VIDEOTEL
CENTRI
DOGANALI
S. Ramat
SELF SERVICE
Bioingegneria Elettronica e
SISTEMI
CENTRALI
ROMA
Informatica
2010/2011
FISCO ON LINE
55
colombo/AIPA 5.10.95
pag. 2
Trasmissione di dati
• Internet è costituita da un gran numero di sotto-reti tra loro
collegate attraverso gateways e routers.
• Per raggiungere il computer di destinazione, i dati
trasmessi devono frequentemente attraversare una dozzina
di reti distinte.
• Questo processo è del tutto trasparente per l’utente che, per
poter trasmettere dei dati ad un altro computer, deve
semplicemente conoscere l’indirizzo (IP address) del
computer di destinazione
• Ogni computer su internet può comunicare con qualsiasi
altro computer.
• La comunicazione è possibile perchè i computer usano tutti
uno stesso linguaggio (un protocollo per scambiare
informazioni: un insieme di regole predefinite).
56
TCP/IP
• Il TCP/IP è un insieme di protocolli che consentono a
computer collegati in rete di comunicare e condividere
risorse.
• Possiamo considerare il TCP/IP come una libreria di
procedure che possono essere sfruttate da applicazioni che
necessitano una comunicazione affidabile tra computer
connessi in rete.
• I protocolli di comunicazione su Internet sfruttano la
tecnica del layering (stratificazione). I protocolli sfruttati
dalle specifiche applicazioni si appoggiano infatti su
protocolli di base quali il TCP, che a sua volta sfrutta l’IP.
57
TCP
• Si occupa della suddivisione del messaggio in
pacchetti (datagrammi) che verranno spediti come
un singolo messaggio e instradati attraverso la rete
individualmente.
• Il TCP inoltre è responsabile di riassemblare i
pacchetti presso il computer ricevente, rispedire i
pacchetti eventualmente smarriti e riordinarli
correttamente.
• Protocolli applicativi, come il protocollo della
posta elettronica (mail), sfruttano il TCP per la
trasmissione dei dati.
58
IP
• Il TCP non si preoccupa del percorso che seguiranno i
datagrammi attraverso la rete per raggiungere il computer
di destinazione.
• Questo compito, detto routing, è delegato all’Internet
Protocol (IP).
• Il TCP passa i pacchetti all’IP assieme ad un indirizzo. IP
non sa se ed in qual modo il datagramma che sta
trasmettendo sia collegato ad altri precedenti o successivi.
• Ogni datagramma viene dunque instradato
indipendentemente e può quindi seguire percorsi diversi
per raggiungere una medesima destinazione
59
Indirizzi
• Ogni computer su Internet ha un indirizzo che lo identifica
univocamente.
• Un IP address è un numero a 32 bit che viene solitamente
scritto come un gruppo di 4 numeri decimali (i.e.:
193.204.34.27) ognuno dei quali rappresenta 8 bit
dell’indirizzo. Un computer userebbe la forma binaria:
11000001.11001100.00100010.00011011
• La struttura dell’indirizzo solitamente fornisce indicazioni
sull’ubicazione del computer.
– Tutti i computer dell’Università di Pavia hanno un indirizzo che
incomincia con 193.204.
– I computer nell’ala uffici della “nave” hanno un indirizzo che
incomincia con 193.204.34.
60
DNS
• Onde facilitare la memorizzazione da parte degli utenti degli indirizzi
dei computer su Internet ogni computer ha solitamente un nome
testuale.
• Nel caso di aziende, l’indirizzo ha solitamente la forma:
computer.sito.divisione.compagnia.com
Dominio di primo livello
• Per poter correttamente instradare messaggi e/o richieste è necessaria
la traduzione del nome in un indirizzo.
• Di tale compito si fanno carico i Domain Name Server (DNS,
University of Wisconsin, 1983) ovvero computer che mantengono una
base di dati contenente tutte le corrispondenze nome-indirizzo della
rete cui appartengono:
– Per unipv il DNS è 193.204.35.27. A questa macchina chiedo l’indirizzo
IP di www.unipv.it e ottengo 193.204.35.29
• Un computer in una sottorete inoltra una richiesta di IP address al DNS
della propria rete. Se l’indirizzo richiesto non appartiene alla stessa
sottorete il DNS può richiederlo ad altri DNS iniziando dal livello più
elevato: il DNS del dominio di primo livello (.com, .edu, .it ecc)
• Un aspetto fondamentale per il funzionamento di questo sistema è la
ridondanza dei DNS: in caso di guasto rispondono altri DNS
61
Banda passante
• La connessione tra i diversi computer e le diverse
reti avviene mediante cavi: ottici, coassiali,
doppini telefonici.
• Ogni tipo di cavo ha una banda passante (massimo
numero di bit trasmissibili in un secondo) legata
alla struttura fisica del cavo stesso ed al suo stato
di conservazione.
• La fibra ottica ha banda superiore al coassiale che
a sua volta ha banda superiore al doppino
telefonico (56.7 Kbps max). Le fibre ottiche più
veloci (es: OC-48) raggiungono i 2488Mbps.
62
Connessioni - Polo Cravino
S. Ramat
63
Wireless Internet
• Internet senza connessioni via cavo, possibile? Telefoni
cellulari e PDA abilitati alla posta elettronica sfruttano la
comunicazione digitale a radiofrequenze.
• WAP (Wireless Application Protocol) è il protocollo di
comunicazione concordato da Nokia, Motorola, Ericsson e
Phone.com nel 1997 per standardizzare la comunicazione
internet senza fili. Limite attuale la velocità di 14.4 Kbps
• Il WAP sfrutta un linguaggio (Wireless Markup Language)
che aggiunge all’informazione trasmessa altra
informazione relativa alla natura del messaggio e al cosa
fare del messaggio ricevuto. Consente lo sviluppo di nuovi
descrittori (come XML). Stessa famiglia dell’HTML
64
Wireless Networking (Wi-Fi)
•
•
•
•
Alternativa alla comunicazione via cavo per la creazione di una rete locale
attraverso l’uso di frequenze radio.
La trasmissione è di tipo digitale (binario) e avviene secondo standard specifici
(IEEE 802.11b, 802.11a).
I due standard specificano diverse radiofrequenze di trasmissione (2.4GHz e 5
GHz) e di codifica dell’informazione, che comportano diverse velocità di
trasmissione dei dati (max 11 e max 54 Mbits/s).
Accesso mediante un wireless access point (o hotspot) collegato alla rete via
cavo (ethernet, ADSL) in grado di gestire decine di comunicazioni separate
suddividendo la banda di frequenze disponibili in canali e spostandosi di
canale in canale (frequency hopping) a frequenze elevate.
• 802.11b Il primo protocollo sviluppato è il più lento e meno costoso.
Trasmette a 2.4 GHz e ha una banda fino a 11 mbps.
• 802.11a lavora a 5 GHz e gestisce fino a 54 mbps.
• 802.11g opera a 2.4Ghz (abbasssando i prezzi come la 802.11b) ma
trasmette fino a 54 mbps come la 802.11a.
• 802.11n maggiore distanza e banda passante elevata.
65
Wireless device communication
• La comunicazione senza fili può avvenire codificando l’informazione
attraverso fasci di luce nello spettro dell’infrarosso oppure attraverso
l’uso di radiofrequenze.
• La comunicazione nell’infrarosso è di tipo digitale pulsando la luce per
trasmettere informazione. Ha due limiti: i dispositivi in comunicazione
devono “vedersi” e la comunicazione è di tipo uno ad uno.
• L’alternativa più recente ed efficace per la comunicazione tra
dispositivi elettronici a corto raggio (ca. 10 m) è il bluetooth. Questa
tecnologia è basata su radiofrequenze (portante a 2.45 GHz). I
problemi di interferenza con altri dispositivi vengono risolti con la
tecnica del frequency hopping.
• Due dispositivi si accordano per individuare 79 “canali” in un certo
spettro di frequenze e comunicheranno passando di canale in canale
con una frequenza di 1600 Hz minimizzando la probabilità che due
dispositivi parlino sullo stesso canale allo stesso istante. Personal area
network o piconet. La comunicazione raggiunge 1Mbps (-20% header)
66
Collegarsi a Internet
• Il collegamento a Internet per un privato o una piccola
azienda avviene solitamente tramite un Internet Service
Provider (ISP) ed una normale linea telefonica.
• Un ISP è una società che possiede un collegamento diretto
a Internet (è fisicamente raggiunta da uno spezzone di
Internet) e un insieme di modem e linee telefoniche.
• Un privato, mediante un PC dotato di modem, chiama il
numero dell’ISP, fornisce nome utente e password per
accedere al servizio e viene collegato ad Internet.
• Al computer viene attribuito un indirizzo appartenente alla
rete dell’ISP. Sulla linea telefonica viene attivato un
protocollo (SLIP o PPP) per la trasmissione/ricezione dati.
67
Privati con
connessione via modem
Provider
Internet
68
Posta elettronica
• Rivoluziona la comunicazione da individuo a individuo
consentendo l’invio di messaggi di testo e di allegarvi files
di qualsiasi tipo.
• Sfrutta un apposito protocollo (SMTP: simple mail transfer
protocol) che a sua volta si appoggia su TCP e IP.
• Gli indirizzi di posta elettronica hanno solitamente la
struttura: [email protected]
• La macchina identificata da computer.dominio.stato è
frequentemente un server del provider che ha fornito
l’accesso. Server sempre acceso: non perdiamo messaggi.
• Questo server contiene una “cassetta” di posta (una
directory su un disco del server) per ogni utente registrato.
69
Client di posta elettronica
• Microsoft Outlook Express - Netscape Messenger Mailbox
- Eudora – Thunderbird sono i client più diffusi.
• Per il loro funzionamento è necessario definire quali siano
il server della posta in uscita (SMTP) ed il server dalla
posta in ingresso (POP3, IMAP).
• Si tratta spesso, in realtà, della stessa macchina ma i
protocolli sono differenti
• I messaggi vengono inviati in formato ASCII, tutti i files in
formato binario possono essere allegati (attachment). Gli
allegati si definiscono in genere MIME (Multimedia
Internet Mail Extension) attachments.
• Outlook e Messenger consentono la lettura di messaggi
scritti in HTML
70
World Wide Web
• E’ un sistema di server su Internet che supportano la
trasmissione di ipertesti consentendo di usufruire di diversi
protocolli attraverso un’unica interfaccia.
• Nasce nel 1989 al CERN di Ginevra per la condivisione di
ipertesti tra sedi distanti.
• Mediante le interfacce Web si può accedere ai seguenti
protocolli:
–
–
–
–
E-mail
FTP
Telnet
HTTP
71
Browser
• Il browser è il nome generico dei programmi che
consentono la navigazione su Internet (Microsoft Internet
Explorer, Netscape Navigator ecc.)
• Consentono la visualizzazione degli ipertesti che
costituiscono le pagine unitamente ai componenti
multimediali (immagini, audio e video) eventualmente
inclusi.
• La navigazione si realizza:
– digitando un URL (Uniform Resource Locator) valido nella barra
dell’Indirizzo
– cliccando con il mouse su un link valido
• Sono interpreti del linguaggio HTML
72
HTML
• HTML: Hyper Text Markup Language
– E’ il linguaggio per la descrizione e costruzione delle pagine
visualizzate attraverso un browser internet.
– I documenti sono documenti di testo con dei tags (delimitatori) che
specificano al browser quale aspetto deve avere il testo o la pagina
in generale.
• I tag sono identificati dai caratteri < e > ed hanno
solitamente la forma
<tag> stringa di testo </tag>
Il tag finale contiene il carattere “/” e specifica fino a quale punto
adottare il formato specificato dal tag di inizio
• Si differenzia dall’XML che è invece un meta-linguaggio
che consente di definire nuovi “tag” o identificatori.
73
Head, Body, Title
• Nella sezione di documento delimitata da <head> e </head> si digitano
informazioni che non compariranno nel documento
• Tutto ciò che appare nel documento è all’interno della sezione body:
<body> documento </body>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Informatica Web</title>
</head>
<!-- Esempio di pagina HTML -->
<body>Prima lezione di linguaggio HTML </body> </html>
• Il tag <Title> viene inserito nell’ambito dell’intestazione e verrà
visualizzato nella barra del titolo del browser quando si apre la pagina
74
PROGRAMMAZIONE
• Linguaggio di Programmazione: un insieme di
comandi ed operatori che consentono la traduzione di un
algoritmo in un programma che potrà essere interpretato o
compilato ed eseguito da un calcolatore.
• La maggior parte dei linguaggi di programmazione sfrutta
un compilatore che traduce l’insieme di istruzioni del
programma in un programma eseguibile (in MS-DOS un
eseguibile ha estensione .exe)
• Altri programmi sfruttano invece un interprete che esegue
le istruzioni una ad una in tempo reale. L’interprete
dispone di una interfaccia nella quale è possibile digitare
direttamente il programma. (es. MATLAB)
75
Linguaggi
• Merita un occhio di riguardo il linguaggio JAVA.
• JAVA è un linguaggio di programmazione a oggetti
sviluppato da Sun Microsystems.
• Java è un linguaggio sia interpretato che compilato. Il suo
codice sorgente è compilato in una forma di pseudo codice
(bytecode) universale interpretabile da una macchina
virtuale implementata sulla maggior parte delle comuni
piattaforme hardware.
• Un programma redatto in Java è dunque indipendente
dall’architettura e può essere eseguito su qualunque
sistema per il quale esista un “Java Virtual Machine”
• JAVA è particolarmente utile per applicazioni WEB (che
hanno come interfaccia pagine HTML) grazie alla sua
portabilità sui diversi SO
76
Variabili
• Variabile
¶ s. f. (mat.) grandezza che può assumere tutti i valori
appartenenti a un determinato insieme: variabile
dipendente, indipendente, a seconda che i valori a essa
assegnati siano o non siano funzioni di altri valori | in
logica matematica, ogni simbolo che non abbia un preciso
referente, ma che stia per un qualsiasi elemento di un
insieme specificabile | variabile casuale o aleatoria, (stat.)
variabile appartenente all'insieme dei possibili risultati di
un esperimento casuale (può essere discreta o continua) |
variabile autogena, esogena, nei modelli econometrici, le
variabili determinate come soluzioni del modello o
indipendenti da questo
77
Tipi di dati
• Nella maggior parte dei linguaggi di programmazione le
variabili che conterranno i dati devono essere dichiarate
prima di poter essere referenziate.
• La dichiarazione di una variabile implica la definizione del
nome della variabile unitamente al tipo di dati che sarà in
grado di contenere.
• La definizione del tipo di dati serve al compilatore affinché
possa essere allocata una quantità di memoria appropriata
al dato che verrà memorizzato.
• Tipicamente un linguaggio prevede dati di tipo integer,
single, double, char, boolean
78