laboratorio di informatica e matematica modulo di informatica2011/10/07 · organizzazione del...
TRANSCRIPT
Laboratorio di Informatica e Matematica Modulo di Informatica
Laurea di Primo Livello in Matematica A.A. 2011-2012
http://www.lintar.disco.unimib.it/space/Formazione/Didattica/Laboratorio+di+Informatica+2011-2012
Giuseppe Vizzari [email protected]
Edificio U14, viale Sarca 336 Tel. 0264487865
Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali
– Venerdì, Aula U1-10, h:10:30-12:30
• Esercitazioni in laboratorio (inizio: fra due settimane) – Martedì, LAB908 (U9), h:14:30-17:30 (Turno 1, A-L) – Giovedì, LAB908 (U9), h:14:30-17:30 (Turno 2, M-Z) – Passate prima in un qualsiasi laboratorio dell’Ateneo (anche
in U5) per creare un account
• Tutor di laboratorio: Matteo Mondini e Antonio Porreca
Obiettivi dell’insegnamento • Introdurre le nozioni base inerenti le architettura dei
sistemi informatici – Architettura dell’elaboratore – Sistema operativo – Reti di computer
• Rendere lo studente in grado di identificare algoritmi risolutivi a semplici problemi e di codificarli in linguaggio di programmazione Java – Introduzione al linguaggio – Introduzione alla programmazione imperativa
• Sono inoltre previsti dei cenni alla realizzazione di algoritmi per il calcolo algebrico e numerico
• Coordinamento con il corso di “Algoritmi e Programmazione” (II anno, II semestre)
Materiale di supporto • Libro di testo
– “Programmazione con Java”, Walter Savitch e Frank M. Carrano, Addison Wesley Pearson, 2010 (adottato anche da “Algoritmi e Programmazione”)
– libri introduttivi sull’informatica: alcuni temi trattati nel corso sono trattati ad es. in alcuni capitoli di “Istituzioni di Informatica”, Ceri – Mandrioli, McGraw Hill
– verranno fornite in modo puntuale indicazioni su eventuali capitoli di libri per approfondimenti
• Sito web del corso – http://www.lintar.disco.unimib.it (Area formazione,
didattica, CdL in Matematica, Laboratorio di Informatica 2011/2012)
Orario di ricevimento
• Mercoledì mattina, dalle 9 alle 10 in U14 • (Sperimentalmente) anche su
appuntamento via e-mail: [email protected]
• Edificio U14, viale Sarca 336, stanza 1011 (I piano), tel. 0264487865
Modalità d’esame
• Per chi segue – Compitini (il primo orientativamente a fine
Novembre, il secondo ad aprile; è previsto un recupero del primo a fine gennaio)
– Domande ‘teoriche’ ed esercizi pratici di programmazione in Java
• Per chi non può/vuole seguire, per chi non passa i compitini – Modalità analoga, sul programma completo
Che cos’è l’informatica?
Applicazioni informatiche...
• Calcolo scientifico-ingegneristico • Gestione aziendale, sistemi informativi • Produzione/gestione di contenuti
multimediali • Office automation (elaborazione testi, fogli
elettronici,...) • ...
Informatica
• Computer Science à Informatica scienza e tecnica dell’elaboratore? – Ma il calcolatore è solo uno strumento
• Scienza della rappresentazione ed elaborazione dell’informazione
• Informazione + automatica = informatica
Rappresentazione dell’informazione
Sistemi di numerazione • I numeri sono delle entità astratte: occorre distinguere tra
il numero 130 e la scrittura 130 che viene detta ideogramma
• Esistono modi di scrivere i numeri più o meno adatti a supportare la loro elaborazione – si provi a sommare centoventiquattro e millecentoventitre... – ... probabilmente per farlo ricorrereste agli ideogrammi
• Non tutti i sistemi di numerazione, anche se ideografici, sono ugualmente efficienti dal punto di vista della manipolazione dei numeri (anche CCXXVII è un ideogramma)
La notazione posizionale • Questa notazione è caratterizzata dalla
attribuzione a ciascun simbolo di un valore che dipende dalla posizione che il simbolo stesso occupa all’interno del numero – in 575, il primo 5 ha un significato ben diverso
dall’ultimo 5 • La posizione, quindi, ricopre un significato ben
preciso, da qui l’utilizzo del termine numerazione posizionale – contrariamente, ad esempio, ai numeri romani
(sistema di numerazione additivo non posizionale)
Sistema di numerazione arabo (1/2)
• Il nostro sistema di numerazione (denominato arabo) è posizionale e consente di rappresentare ciascun numero mediate un insieme finito di simboli {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
• I simboli sono 10 e per questo si dice che contiamo in base 10
Sistema di numerazione arabo (2/2)
• Cos’è un numero nel sistema decimale?
1425 = 1x103 + 4x102 + 2x101 + 5x100
numero = cNx10N + cN-1x10
N-1 + … + c1x101 + c0x10
0
• Per esempio:
• Il numero 10, che è la base del nostro sistema numerico, determina il valore effettivo di un numero
Sistema di numerazione binario
• Il sistema di numerazione utilizzato nei computer è il “sistema numerico binario”
• La base è 2 e i simboli possibili sono {0, 1}
• 0 e 1 sono chiamati binary digit o, più brevemente bit
• Il bit è quindi la più piccola unità di misura d’informazione usata dai computer
Perché il binario?
• Semplice realizzare fisicamente un elemento con due stati (transistor) anziché un numero superiore... – ... e anche più robusto!
• Semplice integrare un numero elevatissimo di questi elementi in dispositivi elettronici – di memorizzazione – di elaborazione
• Corrispondenza con i valori logici vero (1) e falso (0)
Esempi di conversione decimale à binario
Decimale Binario Conversione
1 00000001 1=0*27+ 0*26 +0*25+0*24+0*23+0*22+0*21+1*20
2 00000010
2=0*27+ 0*26 +0*25+0*24+0*23+0*22+1*21+0*20
3 00000011 3=0*27+ 0*26 +0*25+0*24+0*23+0*22+1*21+1*20
4 00000100 4=0*27+ 0*26 +0*25+0*24+0*23+1*22+0*21+0*20
… … …
255 11111111 255=1*27+ 1*26 +1*25+1*24+1*23+1*22+1*21+1*20
... e altri tipi di numeri?
• Numeri negativi? • Numeri non interi?
– Razionali – Reali – Complessi
• Ne riparleremo, ma chiariamo subito che le rappresentazioni ammissibili in un calcolatore sono aggregazioni più o meno grandi di bit – anche arbitrariamente grandi ma sempre finite!
Rappresentazione binaria di altre informazioni
• Un bit rappresenta un’alternativa fra due configurazioni
• Diversi bit possono essere raggruppati per rappresentare una scelta fra più alternative – Un carattere dell’alfabeto à una possibilità su
26 (o 52, discriminando maiuscole e minuscole) à almeno 5 bit
– Un tono di grigio à definita una ‘palette’ di 256 grigi à almeno 8 bit
La codifica dei caratteri
• Standard ASCII (American Standard Code for Information Interchange) – Non è l’unico standard anche se il più diffuso – es. EBCDIC, UNICODE
ASCII
• Con sequenze di 7 bit (128 configurazioni) sono codificati – i 52 simboli dell’alfabeto anglosassone (26 maiuscole e 26 minuscole)
– le 10 cifre – i segni di punteggiatura – gli operatori aritmetici – alcuni caratteri speciali (es. @, %, $, [, ], ...)
ASCII esteso
• 8 bit = 256 configurazioni – Prime 128 configurazioni (tutte precedute da 0)
corrispondono alle 128 configurazioni dell’ASCII standard
– Seguono altre codifiche di caratteri speciali (es. lettere accentate dei vari alfabeti: à, è, é, ü, ï, ç, ê ...)
• Standard non universalmente riconosciuto da tutte le applicazioni e sistemi operativi
Dall’italiano all’ASCII...
• Per scrivere in ASCII una parola (della lingua italiana), si mettono in sequenza le codifiche ASCII dei caratteri che compongono la parola
a n i m a
1100001 1101110 1101001 1101101 1100001
…e ritorno
• viceversa, per capire che cosa significa una sequenza di caratteri ASCII: – si spezza la sequenza in sequenze di 8 bit – si fa corrispondere a ogni sequenza il
carattere opportuno
a n i m a
1100001 1101110 1101001 1101101 1100001
Altri meccanismi di ‘digitalizzazione’
Suono e musica
Immagini (ma anche filmati)
Architettura di Von Neumann
Cenni storici • Nella prima metà degli anni ‘40 John Von Neumann
partecipò alla realizzazione del primo modello di macchina automatica che – elaborava dati in ingresso secondo delle istruzioni memorizzate
all’interno della macchina e forniva il risultato in uscita
• Il modello usato, per la prima volta, prevedeva la divisione tra: – dati in ingresso – istruzioni da eseguire sui dati – il risultato in uscita
• Questa semplice rappresentazione è alla base dei moderni calcolatori, da cui il nome
Architettura di Von Neumann
Unità Centrale
Interfacce delle Periferiche Memoria
BUS DATI
BUS CONTROLLO
BUS INDIRIZZI
LINEE DI SERVIZIO (alimentazione, massa, sincronizzazione)
BUS
• Quattro componenti principali – Unità centrale (Central Processing Unit) – Memoria – Input/output – Bus di interconnessione
La CPU • Nei moderni desktop il processore (Central Processing
Unit o, più brevemente, CPU) è realizzato tramite un unico chip di silicio che ospita un circuito elettronico ad alto grado di integrazione (tecnologia VLSI)
• Questo circuito viene spesso chiamato microprocessore poiché comprende centinaia di migliaia di transistor su una superficie di pochi centimetri quadrati
• Il processore è il motore che pilota un computer: più è grande e veloce, migliori sono le prestazioni globali
… ma cosa fa esattamente? • La sua funzione è quella di eseguire programmi memorizzati nella
memoria principale (o centrale - main memory) prelevando le loro istruzioni, esaminandole e quindi eseguendole una di seguito all’altra
• … Ma come fa ad eseguire le istruzioni? • Per capire come lavora occorre dare un’occhiata alla sua struttura…
Le componenti della CPU e il ciclo di vita di un’operazione elementare
• Control Unit (Unità di controllo) – preleva le istruzioni (fetch), determina il tipo di operazione da eseguire (decode), preleva
eventuali operandi dalla memoria principale in generale coordina le operazioni • Arithmetic Logic Unit (ALU)
– esegue operazioni necessarie per eseguire le istruzioni (effettua il calcolo) (execute) • High speed memory (Registers)
– dispositivi di memorizzazione di dimensioni ridotte per memorizzare risultati temporanei e alcune informazioni di controllo
Memoria Centrale (RAM)
Memorie di Massa Periferiche
Unità di Controllo
Unità Aritmetico Logica (ALU)
Registri
Central Processing Unit (CPU)
Bus
Fetch
Decode Execute Memoria
Gerarchie di memoria Non esiste un singolo tipo di memoria all’interno di un elaboratore moderno, ma si parla di una vera e propria gerarchia di memorie, suddivise per caratteristiche, funzionalità e prestazioni
Registri
Cache
Memoria principale
Dischi magnetici
Tape Dischi ottici
contengono risultati parziali delle istruzioni
contiene i dati (le word) più frequentemente usati dalla CPU
contenitore di dati e programmi anche non immediatamente in uso
Velo
cità
, cos
to
memorie non volatili
Paragoni • Man mano che si scende la gerarchia 2 parametri crescono (tempo
di accesso e capacità), uno decresce (costo) • Mettiamoli a confronto
– trascurando il costo, poiché è un parametro che cambia molto rapidamente
Device Tempo di accesso DimensioneRegistri pochi nanosecondi 128 bytesCache piccolo multiplo dei
registripochi MB
RAM poche decine dinanosecondi
dalle decine allecentinaia di MB
Dischi almeno 10 millisecondi da pochi GB finoa centinaia di GB
Tape e dischi ottici secondi se il media deveessere inserito
Limitati dalbudget
I registri • I registri, come visto, si trovano all’interno della CPU • L’insieme dei registri sono un piccolo dispositivo di
memoria ad accesso veloce usato per memorizzare – risultati temporanei derivanti dall’esecuzione di istruzioni – alcune informazioni di controllo
• Ognuno di questi registri ha una certa dimensione (generalmente la stessa) e una determinata funzione
• Il numero di registri varia a seconda della CPU • Il tempo di accesso verso i registri è dell’ordine di 1 ciclo
di clock. Quindi alla velocità della CPU
La memoria principale - RAM (1/3) • È un dispositivo in cui vengono memorizzati i dati ed i programmi ed
è connesso direttamente alle altre unità di elaborazione
• La memoria è costituita da un certo numero di celle (cell) o locazioni (location), ognuna delle quali può contenere un “pezzo” di informazione (codificata in binario)
• Ogni cella possiede un numero chiamato indirizzo (address) tramite il quale si può fare riferimento alla cella stessa – se una memoria ha n celle, il range di indirizzi varierà tra 0 e n-1
La memoria principale - RAM (2/3)
• La cella è la più piccola unità indirizzabile ed è costituita da un certo numero di bit – una cella da 8 bit è chiamata byte – i byte a loro volta sono organizzati in word
• Word è il contenuto di una cella di memoria ed è l’unità di dati che viene spostata tra la memoria principale e i registri della CPU
• Tutte le celle della stessa memoria contengono lo stesso numero di bit
La memoria principale - RAM (3/3)
1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1
0 1 2 3 4 5 6 7 8 9 10
… … ...
0
1
2
3
4
5
n-1
.
.
.
.
.
.
.
.
.
parola
11 12 13 14 15
Bit della parola all’interno di una cella
Indirizzo
della
Parola