Informatica umanistica
modulo B
– copia di slide in formato
Word senza immagini
lezione 1
INFORMATICA UMANISTICA:
MODULO B
INFORMAZIONE ED INFORMATICA: I PRINCIPALI TEMI DEL MODULO
COS’E’ L’INFORMATICA
Una definizione informale: la scienza dei COMPUTER
Definizione formale (ACM): La determinazione con metodo sia
ipotetico-deduttivo che sperimentale, nonché l’analisi e la definizione di protocolli e
metodologie di verifica valide per la costruzione di prototipi e applicazioni
ingegnerizzate riguardo a tutto ciò in cui consiste la definizione di dati di ingresso e
la costruzione di soluzioni che comportino la definizione di dati di uscita
Definizione tradizionale piu’ semplice:
La scienza del trattamento COMPUTAZIONALE dell’ INFORMAZIONE
Una definizione piu’ ambiziosa: lo studio della struttura, comportamento e
interazioni di SISTEMI COMPUTAZIONALI naturali ed artificiali (Informatics)
IL COMPUTER COME ELABORATORE DI INFORMAZIONE
Il computer e’ un AUTOMA che permette di
IMMAGAZZINARE informazione
MODIFICARLA
Usare questi dati per eseguire funzioni piu’ o meno complesse (per esempio,
calcolare le tasse che Massimo Poesio deve pagare / riconoscere la targa di un’auto
che ha violato il limite di velocita’ / riconoscere chi ha scritto un certo documento)
TRASMETTERLA ad altri computer via RETE (per esempio, via email)
CERCARE l’informazione che ci interessa (sul proprio computer o sulla rete)
CHE COSA SI INTENDE PER INFORMAZIONE?
E’ possibile definire il termine `informazione’ in modo preciso per certi tipi di
applicazione (per esempio, nella Teoria dell’Informazione di Shannon)
Per il momento, assumeremo una definizione puramente intuitiva: informazione =
dati di interesse
TEMI DEL MODULO B - 1
RAPPRESENTAZIONE IN FORMA DIGITALE DELL’ INFORMAZIONE
PARTICOLARMENTE, DELLE INFORMAZIONI DI INTERESSE PER LE AREE
UMANISTICHE
PROSOPOGRAFIA DELL’IMPERO BIZANTINO
INFORMAZIONE TESTUALE:
KING LEAR IN FORMATO TEI
INFORMAZIONE MULTIMEDIALE
DATI NON TESTUALI: SUONO, VIDEO
INFORMAZIONE DI INTERESSE UMANISTICO
Standard:
Creazione di database (la prosopografia Bizantina) (Modulo A)
Creazione e gestione di archivi di testi (vedi modulo C)
Creazione di dizionari / dizionari elettronici (vedi modulo D)
Metodi di analisi immagini per Beni Culturali
TEMI DEL MODULO, 2
COME UN COMPUTER SVOLGE LE SUE FUNZIONI
Che differenza c’e’ tra un computer ed un calcolatore da tasca?
ASTRAZIONE:
COME IL SOFTWARE CREA UN COMPUTER ‘VIRTUALE’
COME I COMPUTER COMUNICANO CON ALTRI COMPUTER ATTRAVERSO LA
RETE
LA DIFFERENZA TRA UN COMPUTER ED UN TELEVISORE
Il televisore, come il computer, e’ composto di circuiti elettronici, ed unita’
periferiche che permettono la comunicazione con l’esterno (HARDWARE)
Il televisore puo’ ricevere informazione e trasformarla in un formato diverso
Ma la funzionalita’ di un televisore e’ fissa; non puo’ essere PROGRAMMATO per
svolgere funzioni diverse non previste dall’ingegnere che l’ha progettato
La caratteristica fondamentale del computer e’ la capacita’ di poter interpretare
PROGRAMMI nuovi (SOFTWARE)
IL COMPUTER : UNA RAPPRESENTAZIONE SCHEMATICA
LA RETE
TEMI DEL MODULO, 3
COSA SI INTENDE PER ‘PROGRAMMA’
NOZIONI DI COMPLESSITA’
TEMI DEL MODULO, 4
Lo studio del trattamento automatico dell’informazione ha portato allo sviluppo di
concetti che fanno ormai parte della nostra cultura generale
Esempio: complessita’, computabilita’, entropia …
SYLLABUS IN DETTAGLIO
Lezione 2
INFORMATICA UMANISTICA B
COMPUTER: HARDWARE E SOFTWARE
massimo.poesio@unitn.it
Hardware
Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche,
elettroniche
Software
Componente del calcolatore costituita dai:
Programmi di base per la gestione del sistema
Programmi applicativi per l’uso del sistema (possono usare i programmi di base)
HARDWARE: IDEE CENTRALI
CICLO DI ESECUZIONE ISTRUZIONI
MEMORIA PRINCIPALE E MEMORIA SECONDARIA
DI NUOVO LA MACCHINA DI TURING
Dalla macchina di Turing
alla architettura di von Neumann
Un passo ulteriore, volendoci avvicinare al funzionamento di un vero computer, è costituito
dalla
ARCHITETTURA DI VON NEUMANN
ARCHITETTURA DI VON NEUMANN
UNITA’ CENTRALE E PERIFERICHE
Architettura dei computer
Un computer deve:
elaborare l’informazione
usando il processore (Central Processing Unit - CPU)
memorizzare l’informazione
usando la memoria principale (RAM)
usando la memoria secondaria
fare l’input/output dell’informazione
usando i dispositivi di input/output
LA CPU IN DETTAGLIO
ARCHITETTURA DI VON NEUMANN:
COMPONENTI DELLA CPU
La CPU non è un unico componente ma è costituita da componenti diversi che svolgono
compiti diversi
UNITA’ DI CONTROLLO
Unità di controllo
L’unità di controllo è la parte più importante del processore
Esegue le istruzioni dei programmi
Coordina le attività del processore
Controlla il flusso delle istruzioni tra il processore e la memoria
Unità di controllo
Svolge la sua attività in modo ciclico
Preleva dalla memoria principale la “prossima” istruzione da eseguire
Preleva gli operandi specificati nell’istruzione
Decodifica ed esegue l’istruzione
Ricomincia
Unità di controllo
L’esecuzione comporta l’invio di comandi opportuni all’unità relativa
®
Calcoli Unità aritmetico logica
®
Lettura/scrittura dati memoria
®
Acquisizione/stampa dispositivi di I/O
COMPONENTI DELLA CPU: UNITA’ ARITMETICO-LOGICA
Unità aritmetico logica
L’Unità aritmetico logica si occupa di eseguire le operazioni di tipo aritmetico/logico
Somme, sottrazioni, …, confronti, …
Preleva gli operandi delle operazioni dai Registri Generali
Deposita il risultato delle operazioni nei Registri Generali
Insieme all’unità di controllo collabora al completamento di un ciclo della macchina
COMPONENTI DELLA CPU: REGISTRI
Registri
I registri sono delle unità di memoria estremamente veloci
Sono usate per mantenere le informazioni di necessità immediata per il processore
Le dimensioni dei registri variano da 16, 32, 64 bit
Sono una parte fondamentale del processore
Registri
Per esempio: Program Counter
L’indirizzo della “prossima” istruzione da eseguire è memorizzato nel registro
Program Counter
Per esempio: i Registri Generali
I registri che possono essere utilizzati come memorie temporanee per svolgere le
operazioni matematiche
ARCHITETTURA DI VON NEUMANN: I BUS
Bus
Permette la comunicazione tra i vari componenti dell’elaboratore
ARCHITETTURA DI
VON NEUMANN: CLOCK
Abbiamo visto che il processore svolga la sua attività in modo ciclico
Ad ogni ciclo corrisponde l’esecuzione di un’operazione elementare (un’istruzione
macchina)
Il clock fornisce una cadenza temporale per l’esecuzione delle operazioni elementari
La frequenza del clock indica il numero di operazioni elementari che vengono eseguite
nell’unità di tempo
Clock
Consideriamo una ipotesi semplificata in cui ogni battito di clock corrisponde esattamente
l’esecuzione di una sola istruzione macchina
La frequenza del clock indica il numero di operazioni elementari che vengono
eseguite nell’unità di tempo ®
Per esempio: il clock che ha circa 66 milione battiti per secondo il computer può
eseguire circa 66 milione operazioni per secondo
Clock
In realtà, questa ipotesi non è sempre vero
L’esecuzione di una istruzione può richiedere più battiti di clock
Oppure nello stesso ciclo di clock si possono eseguire (parti) di istruzioni diverse
Dipende dal tipo di processore
Per esempio:
Il processore Intel 80286 richiede 20 battiti del clock per calcolare la moltiplicazione
di due numeri
Il processore Intel 80486 può calcolare la moltiplicazione di due numeri usando solo
un battito del clock
Clock
La frequenza del clock si misura in:
MHz (1 MHz corrisponde circa a un milione di istruzioni elementari/battiti al
secondo)
GHz (1 GHz corrisponde circa a un miliardo di istruzioni elementari/battiti al
secondo)
Per esempio: se acquistate un calcolatore e vi dicono che ha un processore a 3 GHz
Vuol dire che il processore è in grado di eseguire (circa) 3 miliardi di istruzioni al
secondo
IL CICLO DI ESECUZIONE ISTRUZIONI
Il ciclo di esecuzione istruzioni sta al cuore del funzionamento di un computer
Ad ogni ‘ticchettio’ del clock, la CPU:
Preleva dalla memoria principale la “prossima” istruzione da eseguire (specificata
dal PROGRAM COUNTER, PC)
La mette nel REGISTRO ISTRUZIONI (IR)
La DECODIFICA
Preleva gli OPERANDI specificati nell’istruzione
ESEGUE l’istruzione
Ricomincia
IL CICLO DI ESECUZIONE
(SEMPLIFICATO!)
CODICE PER I PROGRAMMI: Istruzioni macchina
I programmi: sequenze di istruzioni elementari (somma due numeri, confronta due numeri,
leggi/scrivi dalla memoria, ecc.)
Per ogni tipo di processore è definito un insieme di istruzioni, chiamate istruzioni
macchina
Ognuna delle quali corrisponde ad un’operazione elementare
Le operazione più complesse possono essere realizzate mediante sequenze di
operazioni elementari
Istruzioni macchina
Le istruzioni possono avere formati diversi - per esempio:
Istruzioni macchina
Per esempio:
ADD R1 R2
Operazione aritmetica di somma: prevede la somma del contenuto dei registri R1 e
R2 e il caricamento del risultato nel registro R1
(Perché R1 non R2? Non c’è una ragione: la decisione è arbitraria)
Istruzioni macchina
Per esempio:
LOAD 3568 R2
Operazione di lettura dalla memoria: richiede la lettura del valore contenuto nella
cella con indirizzo 3568 e il suo caricamento nel registro R2
(Perché usiamo un indirizzo? Che cosa un registro? Vedremo…)
Istruzioni macchina
Per esempio:
Linguaggio macchina
Il linguaggio in cui si scrivono queste istruzioni prende il nome di linguaggio macchina
Una sequenza di tali istruzioni prende il nome di programma in linguaggio
macchina
Il ruolo del processore:
Eseguire programmi in linguaggio macchina
I programmi e i processori
Ogni tipo di processore è in grado di eseguire un numero limitato di istruzioni
Combinando in modo diverso sequenze anche molto lunghe di istruzioni si possono far
svolgere al computer molti compiti diversi
I programmi e i processori
Famiglie di processori: Intel, Motorola, Sun
Processori della stessa famiglia possono eseguire gli stessi programmi scritti in linguaggio
macchina (ma non sempre)
Processi di famiglie diverse non possono eseguire gli stessi programmi scritti in linguaggio
macchina
Le istruzioni che “capiscono” sono diverse
Attenzione! Stiamo considerando il livello delle istruzioni macchina
UNITA’ ARITMETICO-LOGICA E CIRCUITI LOGICI
ALU E CIRCUITI LOGICI
I CIRCUITI LOGICI sono la base dell’hardware di un calcolatore
L’ Unita’ aritmetico / logica (ALU), e’ prevalentemente composta di circuiti di questo tipo
Questi circuiti sono costituiti da un gran numero di componenti piu’ semplici
CIRCUITI LOGICI E FUNZIONI
Ogni circuito logico calcola una FUNZIONE od OPERAZIONE:
+(2,4) = 6
Le operazioni piu’ semplice sono quelle BINARIE
OPERAZIONI BINARIE
Useremo il termine ‘OPERAZIONE BINARIA’ in modo generico per riferirsi ad ogni funzione
che specifica un valore di OUTPUT 0 od 1 sulla base di 1 o piu’ valori di INPUT
Queste operazioni binarie possono essere specificate da TABELLE
Esempio piu’ noto di operazione binaria: OPERAZIONI LOGICHE
L’ALGEBRA BOOLEANA
Una forma molto semplice di LOGICA
Che codifica le condizioni sotto le quali espressioni complesse come “A e B” o “non A” o “A
o B” sono vere mediante TABELLE DI VERITA’
DALLE TABELLE DI VERITA’ AI CIRCUITI
Tanti input quante sono le dimensioni della tabella
Un solo output
Un or all’output
Tanti and quanti sono gli 1 della tabella
Input degli and: 1 se diretto, 0 se negato
Architettura dei computer
Un computer deve:
elaborare l’informazione
usando il processore (Central Processing Unit - CPU)
memorizzare l’informazione
usando la memoria principale (RAM)
usando la memoria secondaria
fare l’input/output dell’informazione
usando i dispositivi di input/output
Architettura dei computer
Un computer deve:
elaborare l’informazione
usando il processore (Central Processing Unit - CPU)
memorizzare l’informazione
usando la memoria principale (RAM)
usando la memoria secondaria
fare l’input/output dell’informazione
usando i dispositivi di input/output
Componenti principali di un computer
UNITA’ CENTRALE: LA MEMORIA PRINCIPALE
ORGANIZZAZIONE DELLA MEMORIA
Memoria principale (RAM)
Perchè si chiama RAM (Random Access Memory)?
Si può accedere direttamente alle varie celle, una volta noto il loro indirizzo
Il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla
posizione della cella nella sequenza
Il termine “random” (casuale) indica proprio il fatto che non vi sono differenze
nell’accesso alle varie celle della memoria
Memoria principale (RAM)
Alcune proprietà della memoria principale
Veloce: per leggere/scrivere una cella ci vuole un tempo di accesso dell’ordine di
-9
poche decine di nanosecondi (millesimi di milionesimi di secondo = 10 sec.)
Volatile: è fatta di componenti elettronici, togliendo l’alimentazione si perde tutto
(Relativamente) costosa
Memoria principale (RAM)
Tutte le celle hanno la stessa dimensione: 8, 16, 32, o 64 bit
Le operazioni che si eseguono sulla memoria sono operazioni di lettura e scrittura
Una cella può contenere un dato o un’istruzione
Un po’ di terminologia ...
Memoria principale (RAM)
Ogni calcolatore usa un numero di bit costante per rappresentare gli indirizzi
Maggiore è il numero di bit usati, maggiore sarà il numero di celle indirizzabili: spazio di
indirizzamento
Se si usano 16 bit per codificare gli indirizzi, si potranno indirizzare fino a 65.536
celle (circa 64 KB di memoria, nell’ipotesi di celle di memoria di 1 byte)
Con 32 bit si potranno indirizzare fino a 4.294.967.296 celle (circa 4 GB di memoria)
Memoria principale (RAM)
Se acquistate un computer e vi dicono che ha una RAM di 128 MB, vi stanno specificando
le dimensioni della memoria principale
All’aumentare delle dimensioni della memoria principale aumenta il numero di programmi
che possono essere “contemporaneamente” attivi
Memoria principale (RAM)
Le unità di misura della memoria RAM variano a seconda del tipo di calcolatore e vengono
espresse in MB
Nei PC generalmente si va dai 128MB ai 512MB
Alcune “server” hanno 1-2 GB di RAM
La RAM, fino ad un certo limite, è espandibile (slot di espansione)
ALTRI TIPI DI MEMORIA NELL’UNITA CENTRALE
Memoria di sola lettura (ROM)
Memoria cache
Buffer
Memoria di sola lettura (ROM)
Non può essere modificata
A differenza della RAM non è volatile
Veloce quasi come la RAM
Contiene le informazioni di inizializzazione usate ogni volta che si accende l’elaboratore
(bootstrap)
Memoria cache
Livello di memoria intermedio tra i registri e la RAM
Memorizza i dati usati più spesso senza doverli recuperare tutte le volte dalla RAM
(che è più lenta)
Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi del computer)
È molto più costosa della RAM
Memoria cache
In genere è interna al processore (cache L1)
Esiste anche una cache secondaria (L2) esterna al processore
Le sue dimensione tipiche vanno dai 256KB a 1MB
LA MEMORIA SECONDARIA
Architettura dei computer
Un computer deve:
elaborare l’informazione
usando il processore (Central Processing Unit - CPU)
memorizzare l’informazione
usando la memoria principale (RAM)
usando la memoria secondaria
fare l’input/output dell’informazione
usando i dispositivi di input/output
Memoria secondaria
La memoria principale non basta (è volatile, costosa)
In grado di memorizzare i programmi e i dati in modo permanente
È meno costosa che la memoria principale: le dimensioni della memoria secondaria sono di
solito molto maggiori d
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.