Informatica di base A.A. 2004/2005 1 Informazioni sul docente Docente: Prof. Francesca Rossi E-mail: [email protected] Tel: 049-8275982 Studio: Via G. B. Belzoni 7, primo piano Ricevimento: Giovedi’ 15:00-17:00 studio 2 Organizzazione del corso Circa 36 ore di lezione in aula LUM 250 (+ LUF1) Lunedi’- Martedi’ – Mercoledi’ 11:20-13:00 Almeno 10 ore di laboratorio in aula laboratorio tre o quattro gruppi di studenti 2 ore ogni settimana per ogni gruppo Da Martedi’ 2 Novembre Laboratorio: Via Paolotti, ingresso studenti, a destra (iscrizione e password prossima 3 Materiale utile Libro Titolo: Informatica, una panoramica generale Autore: J.Glenn Brookshear Dove trovarlo Libreria Progetto, Via Marzolo 28, Via Portello 5/7 Libreria Cortina, via Marzolo 2 Sito web del libro: wps.aw.com/aw_brookshear_compsci_7 Sito web del corso www.math.unipd.it/~frossi/info-base.html Lucidi Dispense per laboratorio Notizie Risultati esami 4 Esame Scritto, con domande a risposta libera o a scelta multipla Esercizi nelle ore di laboratorio Orale se ritenuto necessario dal docente Un appello a Dicembre 2004, uno a Gennaio 2005, due a Settembre 2005 5 Sommario degli argomenti di lezione I circuiti logici, il sistema binario, la rappresentazione dell’informazione (cap.1) L’architettura dei calcolatori, il linguaggio macchina (cap.2) Sistemi operativi (cap.3) DOS, Unix/Linux,Windows (dispensa lab.) Word processors: Word (dispensa lab.) Fogli elettronici (dispensa lab.) Algoritmi (cap.4) Linguaggi di programmazione (cap.5) Strutture dati (cap. 7) File (cap.8) 6 In laboratorio: Linux, Windows Posta elettronica: pine, web ssh Assembler Emacs Word Excel 7 Linguaggio del calcolatore Solo assenza o presenza di tensione: 0 o 1 Tante componenti interconnesse che si basano su 0 e 1 Anche per esprimere concetti complessi Bit: binary digit (0 o 1) 8 Hardware L’ Hardware di un computer •Un computer è ottenuto assemblando un gran numero di componenti elettronici molto semplici •3 tipi di componenti fondamentali: and, or, not •Anche xor 9 And e or 10 Xor e not 11 AND A B OR A AND B A B NOT A OR B A NOT A falso falso falso falso falso falso falso vero falso vero falso falso vero vero vero falso vero falso falso vero falso vero vero vero vero vero vero vero A B R A B R A R 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 A A R B R B A R Completezza di and, or, e not 16 operazioni logiche binarie (tante quante possibili scelte di 4 valori) 4 operazioni logiche unarie Tutte possono essere ottenute componendo and, or, e not 13 A A B B A B A B falso falso vero 0 0 1 falso vero vero 0 1 1 vero falso falso 1 0 0 vero vero vero 1 1 1 A B equivale a (NOT A) OR B A B NOT A 0 0 1 (NOT A) OR B 1 0 1 1 1 1 0 0 0 1 1 0 1 A R B A B A B 0 0 1 0 1 0 1 0 0 1 1 1 A B equivale a (A B) AND (B A) A B A B B A (A B)AND(B A) 0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 A B R o XOR A XOR B equivale a NOT (A B) A B A B 0 0 0 0 1 1 A B A B NOT(A B) 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 A B A R B X R Dalla tabella di verita’ ad un circuito Tanti input quante sono le dimensioni della tabella Un solo output Un or la cui uscita e’ l’output Tanti and quanti sono gli 1 della tabella Input degli and: 1 se diretto, 0 se negato A B A B A 0 0 0 B 0 1 1 1 0 1 1 1 0 R 17 Nand e nor Non servono tre operazioni (and, or, not) Basta una tra : nand (not and) e nor (not or) 18 NAND A B A NAND B NOR A B A NOR B falso falso vero falso falso vero falso vero vero falso vero falso vero falso vero vero falso falso vero vero falso vero vero falso A B R A B R 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 A A R B R B NOT AND A A R R B OR A R B Flip-flop •Uscita costante finche’ un valore su un input non lo modifica •Uscita costante se gli ingressi rimangono 0 •Ingresso superiore a 1 uscita a 1 •Ingresso inferiore a 1 uscita a 0 21 1 nell’input superiore 22 Uscita a 1 23 Input superiore a 0 • Se ingresso superiore temporaneamente a 1, uscita a 1 anche se l’ingresso superiore viene messo a 0 • Ingresso inferiore temporaneamente a 1 uscita a 0 24 Uso del flip-flop Per memorizzare dati in un calcolatore Il valore memorizzato e’ l’uscita del flip-flop Lettura: lettura dell’uscita Scrittura di un nuovo valore: modifica di un input 25 Altro modo per costruire un flip-flop 26 Esercizio •Determinare la tavola di verità del seguente circuito: A è una tavola or not nota? B not and R or 27 Esercizio •Partendo dalla tavola di verità dell’esercizio precedente, costruite un circuito che la realizza seguendo il metodo di costruzione generale visto in classe. 28 Esercizio •Si disegni un circuito logico che realizza la seguente tavola di verita’: •A=0, B=0 R = 1 •A=0, B=1 R = 1 •A=1,B=0 R = 1 •A=1, B=1 R = 0 29 Esercizio •Dare la tavola di verita’ delle formule: •(A NOT(B)) OR (A AND B) •A OR (A AND NOT(B)) •(NOT(A) NOT(B)) OR (NOT(A) AND B) 30 Notazione esadecimale Stringhe di bit Es.: 101101010011 Di solito lunghezza multipla di 4 Un simbolo solo per 4 bit Es.: 3 simboli per 12 bit 31 Notazione esadecimale • Es.: 101101010011 diventa B53 32 Memoria principale Molti flip-flop, ognuno memorizza un bit Celle di memoria (o parole): di solito 8 bit (byte) 33 Indirizzi di memoria Per identificare ogni cella Parte da 0 Segue secondo la numerazione binaria 34 Accesso alla memoria Accesso diretto ad ogni cella, senza dover iniziare dalla cella 0 RAM: Random Access Memory Accesso a piccole unita’: 8 bit (a differenza delle memorie secondarie) Tipi di accesso: lettura e scrittura 35 Dimensione di memoria Di solito una potenza di 2 ES.: 1024 = 2 alla 10 (vicino a 1000 1Kilo byte) 2 alla 20 = 1.048.576 = 1 Megabyte 2 alla 30 = 1.073.741.824 = 1 Gigabyte 36 PROPRIETA’ della RAM RAM => accedere ad ogni byte ha la stessa durata (10**-7 sec): non dipende da quale byte è stato acceduto prima è volatile: se tolgo la spina l’informazione è persa (c’è anche la ROM) ogni byte ha un indirizzo 0,1,2...... il byte e’ la minima quantita’ accessibile (attraverso il suo indirizzo) 37 Memoria principale e secondaria Volatilita’ della memoria principale: senza tensione un flip-flop perde il suo contenuto, cioe’ la sua uscita Dimensione limitata memoria di massa (o secondaria): Dischi magnetici CD Nastri magntici 38 Disco magnetico Dico rotante con rivestimento magnetico Testine di lettura/scrittura fisse mentre il disco gira passano sopra ad un cerchio (traccia) Spostando le testine si passa a tracce diverse Ogni traccia e’ divisa in settori Dimensione settore: 512 o 1024 byte Accesso a un singolo settore Posizione di tracce e settori non costante (formattazione) 39 Disco magnetico 40 Prestazioni dei dischi Tempo di posizionamento testina Tempo di latenza (per arrivare al settore richiesto) Millesimi di secondo (millisec.) contro i miliardesimi di secondo (nanosec.) della RAM Tempo di accesso (somma dei due) Velocita’ di trasferimento 41 CD Compact Disk Buchi sulla superficie, raggio laser Singola traccia a spirale Settori (2KB) Capacita’ CD: 600-700 MB Capacita’ DVD (digital versatile disk): 10GB 42 CD 43 Rappresentazione del testo Una stringa di bit per ogni simbolo (caratteri maiuscoli, caratteri minuscoli, cifre, ...) ANSI (American National Standards Institute) ha adotato il codice ASCII (American Standard Code for Information Exchange): 7 bit per ogni simbolo (un byte) 44 Rappresentare numeri Il codice ASCII e’ inefficiente: per rappresentare numeri con n cifre servono n byte Meglio usare metodi che sfruttano la notazione binaria (base 2) Base 2: solo le cifre 0 e 1 invece che 0, 1, ..., 9 (base 10) 45 Base 10 e base 2 46 Rappresentazione decimale e binaria Base 10 cifre da 0 a 9 Base 2 cifre 0 e 1 Sequenza di cifre decimali dk d k-1 … d1 d0 numero intero dk x 10k + dk-1 x 10 k-1 + … d1 x 10 + d0 Esempio: 102 in base 10 e’ 1x100+0x10+2x1 In generale: somma(I=k,k-1,…,0) dk 10k 47 Valore di una rappresentazione binaria • Per un numero binario dk d k-1 … d1 d0 • Stesso procedimento ma su base 2: somma(I=k,k-1,…,0) dk 2k • Esempio: 01011012 = 1·25 + 1·23 + 1·22 + 1·20 = 32 + 8 + 4 + 1 = 4510 Valore di una rappresentazione binaria 49 Rappresentazione binaria Valore minimo di una sequenza di n cifre binarie: 000 … 0 (n volte) = 010 Valore massimo: 1111…111 (n volte) = 2n-1 + 2 n-2 + … + 22 + 21 + 20 + 1 = 2n –1 Esempio con n=3: 111 = 22 + 2 + 1 = 7 = 23 -1 Da 0 a 8: 0, 1, 10, 11, 100, 101, 110, 111, 1000 Una proprietà dei numeri binari 1001001= 73 100100 = 36 = 73/2 e questo è il resto Eliminare il bit più a destra corrisponde a dividere per 2 il valore, ed il bit eliminato è il resto 51 Trasformazione di un numero in base 10 a numero binario 125 125/2=62 62/2=31 31/2=15 15/2=7 7/2=3 3/2=1 1/2=0 resto 1 resto 0 resto 1 resto 1 resto 1 resto 1 resto 1 125 in binario è 1111101 rappresenta 62 rappresenta 31 Etc. 52 ASCII vs. binario Per rappresentare numeri con n cifre, servono log(n) bit Es.: per rappresentare 25, in ASCII servirebbero 16 bit, in binario solo 4 25/2=12 r.1, 12/2=6 r.0, 6/2=3 r.0, 3/2=1 r.1, 1/2=0 r.1 11001 1x1 + 1x8 + 1x16 = 25 53 Esercizio •Scrivere la rappresentazione binaria dei numeri decimali: •30 •36 •15 54 Esercizio •Scrivere la rappresentazione decimale dei numeri binari: •1000 •1010 •01011 •10111 55 Somma binaria Colonna per colonna, da destra a sinistra Riporto se la somma su una colonna supera la base Tre cifre binarie (prima riga, seconda riga, riporto), somma =1 se una o tre sono 1, riporto = 1 se almeno due sono 1 Riporto: 1 1 1 1 0 0 0111002 + 1001112 = ----------10000112 Somma binaria 1 11 riporti 1010011+ 1100011= ----------10110110 57 Reali in notazione binaria bk-1 bk-2 … b2 b1 b0 , b-1 b-2 … bk-1 x 2 k-1 + bk-2 x 2 k-2 +… + b2 x 22 + b1 x 2 + b0 x 20 + b-1 x 2-1 + b-2 x 2-2 +… Da decimale a binario: Per la parte intera, come sappiamo fare (metodo delle divisioni) 58 REALE--> BINARIO cosa significa una parte decimale binaria: .1101001 2-1+ 2-2 + 2-4 + 2-7 59 .1101001 2-1 2-2... moltiplicarlo per 2 significa spostare il punto di un posto a destra 1.101001 20 2-1....... 60 Se abbiamo un valore decimale in base 10: 0.99 come troviamo la sua rappresentazione in base 2? Ragioniamo come segue: Supponiamo che .99 = .b1b2b3...bk (binario) Allora 2 .99 = 1.98 = b1.b2b3...bk Quindi b1 è 1 e .98 è rappresentato da .b2b3...bk 61 Per trovare la rappresentazione binaria di un decimale lo moltiplichiamo per 2 ed osserviamo se 1 appare nella parte intera: rappresentazione binaria di .592= 1.18 .182= 0.36 .362= 0.72 .59 .722= 1.44 .442= 0.88 .100101..... .882= 1.76 ....... dipende da quanti bit abbiamo 62 esempio 18.59 18 10010 .59 .100101... 10010.100101.... 63 Esercizi Convertire i seguenti numeri binari in formato decimale: Esprimere i seguenti valori in notazione binaria: 11,01 101,111 10,1 4.5 2.75 Eseguire le seguenti somme binarie: 11011+1100 111,11+0,01 64