Definizioni e Architettura 1 Importante imparare il linguaggio dellinformatica La terminologia è basilare per imparare una nuova disciplina le parole rappresentano idee e concetti o usare con precisione un termine significa comprendere lidea corrispondente Comunicazione con gli altri la capacità di formulare domande e ricevere aiuto utilizzando e-mail, telefono e sistemi di help on-line Linformatica utilizza molti nuovi termini e acronimi i termini sono stati inventati per indicare idee, concetti e dispositivi nuovi 2 Tipici usi (e abusi) informatici Uso difuso di acronimi e sigle WYSIWIG, RAM, CPU, PC, I/0 ... Molti termini gergali ancora più strani in italiano Originale: click , backup, chat, format , bootstrap, ... Italianizzato: cliccare, backuppare, chattare, formattare, Metafore termini comuni (windows, mouse, to surf, navigare, ...) in informatica assumono un significato specifico 3 Esempio 1: Def. acronimo WYSIWYG Sta per What you see is what you get, tipicamente riferito al testo Il testo è memorizzato come una sequenza di caratteri (testo vero) e caratteri speciali (che specificano il formato del testo: corsivo, a capo, ecc.) I primi software per scrivere testo non mostravano su schermo il formato e gli utenti dovevano immaginare quale sarebbe stato il risultato una volta stampato La proprietà WYSIWYG permette di visualizzare la pagina su schermo così come apparirà una volta stampata (es., software Microsoft Word) 4 Esempio 2: Processo di booting Booting (fare il boot): accensione del computer Rebooting: riaccensione rapida del computer Il termine deriva da bootstrapping (sollevarsi da solo mediante le stringhe delle proprie scarpe): si riferisce al fatto che il computer è in grado di svolgere le prime operazioni di avvio senza intervento dellutente 5 Informatica Esistono varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dellinformazione Definizione proposta: Scienza della rappresentazione e dellelaborazione dellinformazione Elaboratore elettronico (Computer) è uno strumento per la rappresentazione e la elaborazione delle informazioni 6 DATI RIS ULT ATI Cosa vede il normale utente dellinformatica Una scatola con interfacce più o meno gradevoli, in cui inserisci i dati e ottieni dei risultati 7 Però ... Se lutente inserisce dati e ottiene risultati significa che aveva un problema che qualcuno ha risolto per lui Chi ha risolto il problema? Il computer? NO! Il problema è stato risolto dallinformatico che ha trovato una soluzione, lha spiegata al computer e il computer ha eseguito la soluzione in modo eccezionalmente veloce (se confrontato alla velocità umana) Il computer non risolve problemi, ma esegue velocemente le soluzioni che ha trovato luomo 8 Problemi da risolvere I problemi che gli INFORMATICI risolvono sono di natura molto varia: 1) Trovare il maggiore fra due numeri 2) Dato un elenco di nomi e numeri di telefono, trovare il numero di una data persona 3) Problema del lupo, della capra e del cavolo 4) Dati a e b, risolvere l'equazione ax+b=0 5) Stabilire se una parola precede alfabeticamente unaltra 6) Ordinare una lista di elementi 7) Identificare e prenotare aerei, treni, hotel, ... 1) Creare, modificare e alterare suoni, canzoni, ... 2) Analizzare e riconoscere immagini, ... 3) Salvare e recuperare delle informazioni, 4) Trasmettere delle informazioni, 5) ... 9 Componenti di un Computer Hardware (ferraglia) (abbreviato HW) Tutti i dispositivi fisici contenuti in un computer. L'HW funziona sotto il controllo del software, senza il quale è inutile.L'HW contiene tutti i circuiti che consentono l'elaborazione dei dati Software (abbreviato SW) Sono i programmi; istruzioni dettagliate che dicono al computer come svolgere una determinata operazione Software di sistema Software applicativo 10 Dovè il pulsante di accensione? Computer a componenti PC desktop con componenti separati o o o o monitor hard disk casse ecc. permette agli utenti di personalizzarne la configurazione pulsante di accensione sul case Esempio di computer a componenti 11 I componenti di un computer 12 Dov'è il pulsante di accensione? Computer monolitici i portatili sono costituiti da un unico blocco che comprende tutti i componenti semplici ed economici pulsante daccensione sul lato del computer, talvolta addirittura sulla tastiera Esempi di computer monolitico Nei PC a componenti, attenzione al pulsante di accensione del monitor: non serve per tutto il computer! 13 Definizioni utilizzate comunemente Computer a componenti Desktop Computer monolitici Laptop 14 Elementi dellhardware Processore (CPU) Memoria centrale (RAM) Memorie periferiche Hard disk (fisso) Flash memory (rimovibile) Altre periferiche Tastiera Mouse CD-ROM DVD Stampante Scanner Modem 15 Monitor Schermo interattivo (mostra info generata sia del computer che dell'utente) matrice di bit o mostra informazione contenuta nella memoria del computer 16 Monitor (cont.) CRT e LCD Lo schermo mostra le immagini contenute nella sua memoria. Spesso tali immagini, a differenza di quanto viene proiettato da un televisore, non hanno corrispondenza con alcuna scena presente nella realtà fisica realtà virtuale 17 Cavi Collegano i componenti al computer e allalimentazione Devono essere collegati nel modo corretto i cavi e le prese sono contrassegnate da ICONE standard 18 Colori RGB Red, Green, Red Colori primari: rosso, verde, blu I colori sullo schermo sono formati da diverse quantità dei colori primari 19 Pixel Lo schermo è suddiviso in una griglia di punti chiamati pixel (picture element) un pixel ha circa le dimensioni del puntino di una lettera i stampata in corpo 10 Il computer visualizza ogni pixel nel colore dellimmagine da rappresentare Maggiore è il numero di pixel in ogni riga e colonna, maggiore risulta la risoluzione dellimmagine 20 Esempio: pulsante virtuale Si colorano i pixel dello schermo in modo da creare la figura di un pulsante fondale grigio chiaro si disegna un rettangolo colorando i lati superiore e sinistro di bianco e i lati inferiore e destro di nero Per mostrare che il pulsante è stato premuto si invertono i colori bianco e nero si trasla la figura un pixel in basso a destra 21 Pulsante virtuale: premuto / non premuto 22 Motherboard - Scheda madre Un circuito stampato installato nel case contiene la maggior parte dei componenti più importanti di un computer 23 Scheda madre (cont.) Schede più piccole si installano nella motherboard per aggiungere funzionalità La scheda madre, fra le altre cose, contiene il microprocessore (CPU) e la memoria centrale (RAM) 24 Microprocessore È la parte "intelligente" del sistema Esegue effettivamente i calcoli Il termine micro è stato adottato intorno al 1980 per distinguere un singolo chip dai più grandi mainframe di quel tempo Il termine microprocessore è ormai desueto: oggi è più comune dire semplicemente CPU o processore 25 Memoria centrale Il luogo ove risiedono i programmi e i dati durante lelaborazione RAM (Random Access Memory): memoria ad accesso casuale. Chiamata memoria principale Il PC contiene milioni di byte di RAM Accesso casuale: qualsiasi elemento può essere recuperato direttamente diverso dallaccesso sequenziale (usato ad esempio nei dispositivi a nastro come audio e videocassette) 26 Tipi di accesso alla memoria 27 Hard disk Periferica di memorizzazione persistente ad alta capacità memorizza i programmi e i dati quando non sono in uso è fatto da una lega ferrosa che può essere magnetizzata o linformazione rimane anche con il PC spento o chiamata memoria permanente o memoria di massa o memoria secondaria 28 Hard disk (cont.) Assomiglia a una piccola pila di sottili dischi metallici su cui si muovono testine magnetiche 29 Salvare informazioni dalla RAM allHard disk Loperazione di salvataggio consiste nello spostare i dati dalla RAM allhard disk un utente esperto salva frequentemente La Ram è volatile i dati vengono persi quando il computer è spento se il computer va in crash o non funziona più correttamente, rimangono solo i dati sul disco 30 Struttura del computer PC: Program Counter IR: Instruction Register A: Accumulator Memoria cache La memoria contiene sia i dati sia le istruzioni Il contenuto dei registri può essere scambiato con la memoria e lI/O Le istruzioni trasferiscono i dati e modificano il contenuto dei registri Registri particolari: PC: indirizza listruzione corrente IR: contiene listruzione corrente 31 Il ciclo Fetch-Decode-Execute Lesecuzione di ciascuna istruzione nella CPU consta dei seguenti passi: 1. Carica listruzione da memoria in IR (Instruction Register) (Fetch) 2. Incrementa PC (Program Counter) 3. Decodifica listruzione (Decode) 4. Carica loperando in un registro 5. Esegui listruzione (Execute) 6. Torna al passo 1 per lesecuzione dellistruzione successiva 32 La rappresentazione delle informazioni 33 Scelta della rappresentazione Di solito è una scelta convenzionale A volte vi sono vincoli da rispettare Nel caso dei computer il vincolo è la rappresentazione binaria (o digitale) delle informazioni Lalfabeto di base con cui il computer codifica ogni informazione consiste di due soli simboli: 0 e 1 34 Motivo della scelta di solo 2 simboli Ragioni prevalentemente di tipo tecnologico I due simboli corrispondono, ad esempio: al passaggio/non passaggio di corrente attraverso un cavo conduttore ai due diversi stati di polarizzazione di una sostanza magnetizzabile ai due stati di carica elettrica di una sostanza al passaggio/non passaggio di luce attraverso un cavo in fibra ottica 35 Bit L'entità minima di informazione in un calcolatore si chiama bit (binary digit cifra binaria) Può assumere solo due valori, cioè può permettere la rappresentazione di due informazioni associate ad uno dei due stati 0 e 1 Per poter rappresentare più informazioni devo usare più bit mettendoli in sequenza 36 Esempio: sequenza di due bit Con due bit possiamo avere quattro configurazioni: 00 01 10 11 E possibile far corrispondere quattro informazioni a tante cose. Es., le prime quattro lettere dell'alfabeto oppure i numeri da 1 a 4 oppure i colori, oppure altre cose ... 00 01 10 11 a b c d 1 2 3 4 verde rosso giallo blu 37 Codifica dellinformazione Processo secondo cui si fa corrispondere ad uninformazione una configurazione di cifre binarie E importante ricordare quante informazioni rieco a codificare avendo un certo numero di bit: Con 1 bit codifico 2 informazioni Con 2 bit ne codifico 4 Con 3 bit ne codifico 8 ... Con n bit codifico 2n informazioni 38 Byte In informatica assume particolare importanza unaggregazione di 8 bit, che prende il nome di byte Simbologia: b bit B byte Poiché un byte è fatto di 8 bit un byte consente di codificare 256 informazioni 39 Unità di misura Multipli di bit o di byte 1 KiloByte= 1.024 byte x1024 = 1 MegaByte = x1024 = 1 GigaByte = x1024 = 1 TeraByte = x1024 = 1 PetaByte = Abbreviazioni Kb = Kilobit Mb = Megabit Gb = Gigabit (per reti) 1.048.576 byte 1.073.741.824 byte 1.099.511.627.776 byte .. byte KB = KiloByte MB = MegaByte GB = GigaByte (per memoria) 40 Codifica dei caratteri alfanumerici L'insieme dei caratteri alfabetici (anglosassoni), numerici, di punteggiatura, le parentesi e gli operatori aritmetici può essere codificato usando 7 bit (128 configurazioni) Per poter interagire e scambiarsi dati in modo comprensibile, è necessario usare la stessa codifica Quindi, è necessario mettersi daccordo per definire un metodo standard per effettuare la codifica 41 Codice ASCII E il metodo di codifica più diffuso fra produttori di hardware, software e dispositivi di rete ASCII = American Standard Code for Information Interchange Nota: non è l'unico! Abbastanza diffuso anche EBCDIC = Extended Binary Coded Decimal Interchange Code 42 Esempio di codifica ASCII standard (usa 7 bit) 0100001 ! 0100110 & 0110000 0 0111110 > 1000001 A 1100001 a I numeri, così come le lettere, sono consecutivi. Sono però insiemi separati 43 Codice ASCII standard 7 bit 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 000 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 010 ! # $ % & ( ) * + , . / 011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 100 @ A B C D E F G H I J K L M N O 101 P Q R S T U V W X Y Z [ \ ] ^ _ 110 ° a b c d e f g h i j k l m n o 111 p q r s t u v w x y z { | } ~ DEL Per ottenere la codifica a 7 bit, si legge prima il numero colonna e poi quello di riga Sono numeridella interi positivi (necessario un byte) 44 Codifica di una parola Parola = sequenza di caratteri Codifica della parola = sequenza delle codifiche dei singoli caratteri ES: parola cane c a n e 01100011 01100001 01101110 01100101 Esistono anche simboli per lo spazio bianco, il simbolo di fine riga, ... Si possono rappresentare testi complessi 45 Codifica dei numeri Col codice ASCII posso codificare anche le cifre decimali da 0 a 9 Parola = sequenza di caratteri Numero = sequenza di cifre Es: 324 si potrebbe rappresentare come 00110011 00110010 00110100 3 2 4 46 Codifica dei numeri - continua MA usare la codifica ASCII per i numeri è una rappresentazione non efficiente perché i primi quattro bit sono uguali e, soprattutto, non è adatta per eseguire le operazioni aritmetiche sui numeri Esiste un modo molto più naturale per codificare i numeri che prende spunto dal sistema di numerazione tradizionale 47 Sistema di numerazione: decimale e posizionale Usa dieci cifre Ogni cifra ha un valore che dipende dalla posizione che occupa allinterno del numero La rappresentazione 645 (la cifra 6 seguita dalla cifra 4 seguita dalla cifra 5) denota, nel sistema decimale, il numero 645 Il numero 645 ha in realtà linterpretazione seguente: 6 centinaia, 4 decine, 5 unità 6*(102) + 4*(101) + 5*(100) = 600+40+5 = 645 48 Esempio: Sistema decimale Il numero 135 decimale può essere rappresentato come segue: B = 10 n=3 base numero cifre cifra 1 3 5 posizione 2 1 0 10 2 10 1 10 0 peso (ricordare che si parte da 0) 1 10 2 + 3 101 + 5 100 = 135 49 Sistema di numerazione decimale (2) In generale la rappresentazione: cncn-1...c1c0 in cui ogni cifra ci è compresa fra 0 e 9, denota: c0 * 100 c1 * 101 ... cn-1 * 10n-1 cn * 10n + + + (ossia c0 unità) (ossia c0 decine) ... 50 Rappresentazione binaria E una codifica posizionale che invece di usare 10 cifre, ne usa solo 2 Quindi, tutti i numeri vengono codificati usando le due cifre 0 e 1 e uno schema posizionale in cui si usa la base 2 invece della base 10 cncn-1...c1c0 in cui ogni cifra ci vale 0 o 1, denota: c0 * 20+c1 * 21+...+cn-1 * 2n-1+cn * 2n Esempio: 1110(base 2) denota: 1*23+1*22 +1*21+1*20+= 8+4+2+0 = 14(base 10) 51 Esempio: Sistema binario Valore decimale corrispondente al numero binario 1101 ? cifra2 1 1 0 1 peso 23 22 21 20 valore 18 14 02 11 11012 = 1 23 + 1 22 + 0 21 + 1 20 = 1310 52 Massimo numero rappresentabile? Sappiamo che con quattro cifre decimali è possibile rappresentare tutti i numeri fra 0 e 9999 in quanto il numero successivo (10000) richiederebbe una quinta cifra (non disponibile) In informatica si parla di overflow: quando un numero esce dal numero di cifre destinate alla rappresentazione Date n cifre decimali, è possibile rappresentare i numeri da 0 a 10n-1 Esempio (n=4): 9999 = 10000-1 = 104-1 53 Massimo numero in binario Le stesse considerazioni del sistema decimale valgono anche per il sistema binario prendendo come base il numero 2 al posto del numero 10 Quindi, date n cifre binarie, è possibile rappresentare i numeri da 0 a 2n-1 Ricordare: nel momento in cui si fissa il numero di bit destinati alla rappresentazione di un numero, si fissa anche il massimo numero rappresentabile 54 Oltre i numeri interi positivi Con il metodo di codifica esaminato, è possibile rappresentare qualunque numero intero positivo rientra nel numero di bit disponibili a rappresentarlo Tuttavia, esiste la necessità di rappresentare anche altri tipi di numeri, quali: Numeri interi negativi: -34 -23456 ... Numeri frazionari positivi: 234,45 79,001 ... Numeri frazionari negativi: -234,45 -79,001 ... Si usano altri metodi di codifica (più complessi) che non sono argomento di questo corso 55