Cosa è l informatica Informazione + automatica Scienza del trattamento automatico delle informazioni Insieme dei processi e delle tecnologie che rendono possibile Elaborare (trasformare) l informazione Memorizzare l informazione Distribuire l informazione
Cosa è un computer Elaboratore elettronico digitale Macchina che immagazzina ed elabora dati Utilizza componenti elettronici Utilizza segnali digitali Sistema binario 0/1 (spento/acceso) Il computer è capace di pensare proprio quanto un sottomarino di nuotare (E.W. Dijkstra)
Analogico vs Digitale Segnale analogico Continuo Precisione infinita Soggetto a interferenze Segnale digitale Discreto Precisione finita Meno interferenze
Hardware e Software L hardware è la parte del computer che puoi prendere a calci; il software quella contro cui puoi solo imprecare Hardware: parti fisiche del computer e dei sistemi informatici in generale Esempi: tastiera, processore, cavi telefonici, Software: istruzioni che il computer esegue per svolgere i propri compiti Sono organizzate in programmi Esempio: windows, giochi,
Tastiera Tasti alfanumerici Maiusc (o Shift): lettere maiuscole o secondo carattere Caps Lock: sempre maiuscolo AltGr: terzo carattere del tasto Canc (o Del), Esc, Alt, Ctrl, Tab Tasti funzione. F1=aiuto Tastierino numerico (Bloc Num o Num Lock) Tasti Cursore: spostamento del cursore, scorrimento delle pagine
Dispositivi di Input indica una posizione sul monitor tramite un puntatore pulsante sinistro = eseguire azione Mouse pulsante destro = scegliere azione Scanner Copia un documento cartaceo in un documento digitale Programma OCR: da immagine a testo Joystick, microfono, videocamera,
Dispositivi Output Monitor dimensioni in pollici 14,15,17,19, risoluzione in pixel 800x600, 1024x768, Stampante getto d inchiostro, laser Velocità, ppm (pagine al minuto) Risoluzione, dpi (punti per pollice) Altoparlanti
Processore Composto da Unità logico aritmentica (ALU): fa i conti Unità di controllo gestione input/output trasferimento dei dati da/verso la memoria Memoria cache Esegue istruzioni 1 istruzione elementare ogni ciclo di clock Frequenza: MHz, GHz (=1000MHz) Esempi: Pentium 4, Celeron, Athlon,
Memoria Unità Di Misura BIT (BInary digit) 0/1 Byte =8 bit es: 10011001 KByte (KB) 2 10 (= 1024) byte MByte (MB) 1024 Kbyte = 2 20 byte GByte (GB) 1024 Mbyte = 2 30 byte TByte (TB) 1024 Gbyte = 2 40 byte
Memoria veloce RAM dimensioni ordine Mb Cache dimensioni ordine Kb Caratteristiche: Piccola Volatile (tranne ROM) Costosa
Memoria di massa Hard Disk dimensione ordine Gb Floppy Disk 1.44 Mb Cd rom/scrivibile/riscrivibile 700Mb DVD 4.5Gb Caratteristiche: Lenta, economica, grande Oltre a dimensione sono importanti: Tempo di accesso Transfer rate
Macchina di Von Neumann Unità di elaborazione o CPU (Central Processing Unit) Acquisisce, interpreta ed esegue istruzioni Memoria centrale Contiene istruzioni e dati Periferiche: memoria di massa, input, output Permettono scambio di informazioni con l esterno Bus di sistema Collega i vari elementi del calcolatore
Schema di Funzionamento della CPU 1. Estrae le istruzioni dalla memoria 2. Decodifica l istruzione per capire cosa fare 3. Esegue l istruzione che può comportare Elaborare l informazione Trasferire l informazione: cpu-memoria o memoria-periferiche tramite bus di sistema Ogni operazione scandita dal clock (orologio) di sistema Frequenza: MHz, GHz (=1000MHz)
Memoria Centrale Sequenza di celle, ognuna contiene una parola Volatile: i dati rimangono in memoria solo se c è corrente Tabella di bit #colonne = dimensioni parola Numero di Riga = Indirizzo
Accesso alla memoria Accesso casuale: CPU può indirizzare una determinata parola (riga) della memoria Registro indirizzo: registro della CPU che contiene un indirizzo di memoria K bit posso indirizzare 2 k parole Dimensione massima della memoria che CPU riesce ad usare = dim(parola) x 2 k
Operazioni Lettura Il processore legge il valore r contenuto nel registro indirizzo copia (load) i dati contenuti nella cella di riga r nel registro dati Scrittura Il processore deposita (store) il contenuto di registro dati all indirizzo di memoria contenuto nel registro indirizzo
Unità di Elaborazione: componenti Unità di controllo Preleva da memoria e decodifica l istruzione da eseguire Gestisce operazioni di trasferimento da e per la memoria Orologio di sistema (clock) Sincronizza le operazioni Unità logico-aritmetica (ALU) Esegue operazioni logico-aritmetiche
Registri Dati, indirizzi Istruzione corrente (CIR): contiene l istruzione che è in esecuzione Program counter (PC): contiene l indirizzo della prossima istruzione Interruzioni: informazioni sulle periferiche Registri con i dati delle operazioni Registri di lavoro: come celle di memoria ma più veloci
Esecuzione di un programma La forma binaria del programma deve essere copiata in memoria centrale
Esecuzione di un istruzione Acquisizione (Fetch) Leggo e copio in CIR l istruzione all indirizzo PC Incremento di uno PC Interpretazione Istruzione analizzata per capire quale operazione eseguire Esecuzione dell operazione Load/store in memoria o su periferica Operazione per ALU
Fattori che influenzano la velocità Dimensione dei registri: più è grande più informazione elaboro nello stesso tempo Dimensione memoria centrale (RAM): meno accessi a disco meno rallentamenti Frequenza del processore: piu cicli di clock al secondo significa piu istruzioni Ampiezza e velocità del bus: nell unita di tempo vengono trasferite piu informazioni e piu velocemente
Oltre Von Neumann Processori dedicati (co-processori) Svolgono compiti specifici in modo più veloce Esempio: co-processore matematico per operazioni floating point Pipelining: esecuzione parallela delle varie fasi di esecuzione di un istruzione Esempio: mentre un istruzione è in esecuzione, un altra viene acquisita e interpretata
Gerarchie di memoria Principio di località: i pgm fanno riferimento ad una piccola parte del loro spazio di indirizzamento Temporale: se al tempo t ho usato un oggetto e probabile che lo usi anche al tempo t+1 Spaziale: e probabile che usi oggetti vicini a un oggetto usato Per sfruttare località uso piu livelli di memoria con velocità, dimensioni e costi diversi
Gerarchie di memoria Obiettivo offrire all utente tanta memoria quanto ne sia disponibile con tecnologia piu costosa, con velocita di accesso della tecnologia piu veloce Il contenuto della memoria al livello n e un sottoinsieme di quello a livello n+1
CISC/RISC CISC (Complex Instruction Set Computers) Elevato numero di istruzioni Istruzioni complesse istruzioni più potenti ma CPU complesse Intel x86, IBM AS/400 RISC (Reduced Instruction Set Computers) Poche e semplici istruzioni CPU semplici e ottimizzate Intel Pentium, IBM PowerPC
BIT (Binary digit) Unità elementare di informazione 0/1 Corrisponde allo stato di un dispositivo fisico Differenza di tensione elettrica: memoria centrale Differente stato di polarizzazione magnetica: disco fisso Buio luce: fibra ottica
Multipli del bit Byte = 8 bit 2 8 differenti sequenze di bit 00000000, 00000001,, 11111111 Word (parola): dimensioni di una cella della memoria centrale, 32-64 bit KByte (KB) 2 10 (= 1024) byte MByte (MB) 1024 Kbyte = 2 20 byte GByte (GB) 1024 Mbyte = 2 30 byte TByte (TB) 1024 Gbyte = 2 40 byte
Sistema di numerazione Comunemente usiamo sistema arabico In base dieci 0,1,2,,9 Posizionale: il significato della cifra dipende dalla posizione del numero 1438 4138 Esempio
Numerazione in base p Cifre comprese tra 0 e p Numero N = a n a n-1 a n-2 a 1 a 0 a n cifra più significativa a 0 cifra meno significativa Trasformazione in base 10
Sistema Binario P = 2 Cifre 0 e 1 Da binario a decimale
Da decimale a binario Trasformare 16510 in b = (a n a n-1 a 1 a 0 )
Numeri Naturali Sono infiniti, il calcolatore no! Fissato il numero m di bit a disposizione 2 m numeri da 0 a 2 m -1 Overflow: il risultato di un operazione è un numero che non posso rappresentare Esempio m=4, posso rappresentare i numeri da 0 a 15 4*5=??
Numeri Interi Numeri positivi e negativi necessario rappresentare il segno Diverse rappresentazioni Modulo e segno Complemento a 2 Complemento a 1 Polarizzata
Modulo e segno 1 bit riservato al segno Esempio m=4 2 10 = 0010 (-3) 10 = 1011 m bit rappresento i numeri da -(2 m-1-1) a (2 m-1-1) Problema: due rappresentazioni per lo zero 0000 = +0 e 1000 = -0
Complemento a due Bit a disposizione m=4 Numeri positivi Numeri negativi
Complemento a due Bit più significativo detto bit di segno 1 solo zero 1 numero negativo in più Da decimale a binario: -n10 (2 m -n) 10 (2 m -n) 2 Esempio m = 4-5 24-5 = 11 1011
Complemento a due Da binario a decimale (m bit) Esempi m=4
Numeri Frazionari Numeri tra 0 e 1 (0.345) 10 = 3 x 10-1 + 4 x 10-2 + 5 x 10-3 Da base p a decimale
Razionali virgola mobile Notazione scientifica n=123 = 0.123 x 10 3 0.123 = mantissa m 3 = caratteristica c n = m x b c b = base Vantaggi Pochi cifre per numeri grandi 2000000000 = 0.2x10 10 Precisione nei numeri piccoli 0.43499 x 10-51
Codifica di caratteri 1 carattere 1 sequenza di bit ASCII (America Standard Code for Information Exchange) 2 standard 7 bit 2 7 = 128 caratteri 8 bit 2 8 = 256 caratteri 3 categorie Caratteri di comando Alfanumerici Simboli Esempio: il carattere ~ corrisponde al codice 126
Unicode www.unicode.org Unicode assegna un numero univoco a ogni carattere, indipendentemente dalla piattaforma, indipendentemente dall'applicazione, indipendentemente dalla lingua. Codifica i caratteri di tutti gli alfabeti I codici Unicode vanno da 0 a 1.114.111 3 standard: UTF-8, UTF-16, UTF-32
Immagini Digitalizzazione: da immagine a sequenza binaria Immagine suddivisa in una matrice di punti detti pixel (picture element) Ogni pixel codificato con un numero a cui corrisponde un colore 1 bit: bianco/nero 1 byte: 256 colori/scale di grigio 2, 3 byte 65.000/32 milioni di colori
Suoni Si campiona l ampiezza dell onda sonora a intervalli di tempo regolari Frequenza di campionamento Esempio CD 44.1 KHz 1 campione = 16 bit (mono, il doppio se stereo) 1 secondo = 44100 x 2 byte = 88200 byte 86Kb 1 minuto = 60 x 86 Kb 5 Mb!!