COMPUTER = CALCOLATORE NON ALGORITMI E MACCHINA DI VON NEUMANN CERVELLO ELETTRONICO CERVELLO: Capacità decisionali CALCOLATORE: • il concetto di Algoritmo Incapacità di effettuare scelte autonome di fronte a situazioni impreviste • la macchina di Von Neumann ESEMPIO 1: ¾ Il calcolatore è un dispositivo capace di: 9immagazzinare una grossa quantità di informazioni 9eseguire su di esse, in modo automatico, una sequenza di operazioni prestabilite ¾I problemi che si prestano particolarmente ad essere risolti o gestiti con un calcolatore sono 9problemi di natura ripetitiva elaborazione di tipo ripetitivo COMPUTER assegni bancari (Lettore di assegni) INPUT Informazioni sui conti correnti memorizzati nel computer Elaborazione dei dati contenuti negli assegni OUTPUT estratto conto 9problemi che necessitano di un controllo continuo nella loro evoluzione Depositi bancari 1 ESEMPIO 2: controllo di un processo in continua evoluzione ¾Il calcolatore è inoltre un valido strumento di aiuto nella velocità, distanze, etc. misurate con strumenti di bordo I N P U T 9documentazione automatica Autopilota di un aereo 9scrittura di testi Modifica rotta: flap, accelerazione, etc. Informazioni sui piani di volo Confronto tra piano di volo attuale e previsto U O T P T U RISOLUZIONE DI UN PROBLEMA MEDIANTE CALCOLATORE ANALISI ⇔ precisa formulazione del problema sviluppo di un ALGORITMO ⇔ procedimento non ambiguo, formato da un numero finito di azioni sufficientemente semplici che risolva il problema dato PROGRAMMAZIONE ⇔ descrizione dell’algoritmo mediante un insieme di frasi (Programma) appartenenti ad un linguaggio comprensibile al calcolatore (Linguaggio di programmazione) 9gestione delle imprese (programmazione delle vendite e della produzione, gestione dei flussi finanziari, analisi di dati economici,…) 9 ausilio alla didattica Un algoritmo viene descritto mediante un LINGUAGGIO LINGUAGGIO • Flow chart (diagramma di flusso) • Tipo Pascal, tipo Matlab,… •…………………………………………. •…………………………………………. ELABORAZIONE ⇔ esecuzione del programma 2 Convenzioni linguistiche del Convenzioni linguistiche del FLOW CHART CHART FLOW FLOW CHART CHART FLOW inizio F V condizione fine denota la fine dell’algoritmo Esempio: Sostituzione della ruota di un auto denota una generica istruzione istruzione denota l’inizio dell’algoritmo indica che l’esecuzione dipende dal valore della condizione (vero o falso) Flow chart dell’algoritmo per il cambio della ruota inizio Solleva l’auto istruzioni Solleva l’auto Svita i bulloni Togli la ruota Svita i bulloni Togli la ruota Metti la ruota di scorta Metti la ruota di scorta Avvita i bulloni Abbassa l’auto Avvita i bulloni Abbassa l’auto fine 3 La non ambiguità di una istruzione dipende dalle L’istruzione Avvita i bulloni CARATTERISTICHE DELL’ESECUTORE L’istruzione può essere sostituita da una sequenza di istruzioni più semplici Avvita un bullone Avvita un bullone Avvita i bulloni Avvita un bullone è sufficientemente specificata? Tale sequenza si può rappresentare con la struttura del tipo: Avvita un bullone SOLUZIONE Avvita un bullone Avvita un bullone Tutti avvitati? F V ma in questa forma il ciclo è senza fine! Struttura di TIPO ITERATIVO 4 Algoritmo per il cambio della ruota inizio V La definizione di algoritmo Ruota di scorta bucata? Un algoritmo è un procedimento per la risoluzione di una classe di problemi, costituito da un insieme finito di direttive non ambigue che specificano una sequenza finita di operazioni da eseguire su un insieme finito di dati F Solleva l’auto svita un bullone F Tutti svitati? DATI DEL PROBLEMA V Chiama il ALGORITMO RISULTATO Togli la ruota L’etimologia del termine meccanico Metti la ruota di scorta Il termine deriva da “Al Khuwarizmi”, nome del matematico persiano del IX sec. che descrisse gli algoritmi per le operazioni aritmetiche sui numeri decimali Avvita un bullone Tutti avvitati? F V Abbassa l’auto fine Algoritmo per la somma di un insieme di numeri ¾ PROBLEMA: somma di 5 numeri ¾ dati del problema: 5, 7, 10,-2,-1 INIZIO ¾ istruzioni • poni il totale a 0 Azzera il totale • somma il primo numero al totale • somma il secondo numero al totale ci sono altri numeri • somma il terzo numero al totale • somma il quarto numero al totale 0 5 5 7 12 10 22 -2 20 stampa il totale V • somma il quinto numero al totale NUMERO TOTALE F leggi un numero -1 19 FINE somma il numero al totale 5 Un esecutore di algoritmi deve essere quindi in grado di: Il concetto di NON NON AMBIGUITA’ AMBIGUITA’ impone che siano note a priori le capacità logiche ed operative dell’esecutore dell’algoritmo • immagazzinare dati (di input intermedi e di output) ed istruzioni • effettuare operazioni aritmetiche e logiche su tali dati INOLTRE • controllare il flusso delle operazioni un algoritmo definisce non solo il flusso delle operazioni da compiere, ma anche i dati su cui tali operazioni vanno eseguite Schema uomo Dati e istruzioni controllo Componenti Componenti fondamentali fondamentali di di un un calcolatore: calcolatore: • Memoria • unità di controllo Schema macchina di Von Neumann • unità di input e output MEMORIA unità di input CPU • unità logico-aritmetica unità di output unità di controllo unità logicoaritmetica 6 MEMORIA è il supporto fisico che permette di immagazzinare informazioni (dati e istruzioni) Ogni locazione è costituita da una sequenza finita di componenti elementari (binary digit, espressione abbreviata con il termine BIT) in ciascuno dei quali può essere rappresentata una cifra binaria (0 oppure 1) Esempio: locazione di 8 bit La memoria è organizzata come una lista sequenziale di 1 1 1 0 1 1 1 0 LOCAZIONI LOCAZIONI (O (O CELLE) CELLE) BIT LOCAZIONE Le locazioni sono univocamente individuate in memoria da INDIRIZZI INDIRIZZI Schema della memoria 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0010 0011 0100 0101 0110 LOCAZIONE = minima quantità di bit indirizzabile In anni recenti molti costruttori di calcolatori hanno standardizzato locazioni a 8 bit (1 byte = 8 bit) 0111 7 Operazioni Operazioni sulla sulla memoria memoria Le locazioni possono essere raggruppate in parole (word), o voci Parola = minimo numero di bit necessari per memorizzare una informazione (dato o una istruzione) 0……..1 (prelevare il contenuto di una o più locazioni di memoria) scrittura scrittura Esempi: 1) lettura lettura locazione (definire il contenuto di una o più locazioni di memoria) parola 2) 0…….1 0…….1 0…….1 0……1 locazione parola Parametri Parametri della della memoria memoria UNITÀ DI CONTROLLO (CU) N: N:capacità capacità (numero di bit) generalmente misurata in potenze del byte: Kbyte = 210 byte = 1024 byte ~ 103 byte Mbyte = 210 Kbyte = 1024 Kbyte ~ 106 byte Gbyte = 210 Mbyte = 1024 Mbyte ~ 109 byte Tbyte = 210 Gbyte = 1024 Gbyte ~ 1012 byte Pbyte = 210 Tbyte = 1024 Tbyte ~ 1015 byte W: W:ampiezza ampiezza della della voce voce (generalmente misurata in bit) 16 bit, 32 bit, 64 bit C: C:tempo tempo di di accesso accesso (tempo per prelevare un’informazione) è di solito misurato in nanosecondi: 1 ns = 10-9 sec. Il costo della memoria è proporzionale a: WN C è il coordinatore di tutte le attività del calcolatore • preleva dalla memoria un’istruzione • la interpreta •provvede all’esecuzione • determina la successiva istruzione da eseguire Ciclo fetch-decode-execute 8 UNITÀ DI CONTROLLO può essere vista come: • unità funzionale che istruisce e guida le altre componenti del sistema nell’esecuzione delle loro attività • dispositivo di temporizzazione e sequenzializzazione di tutte le attività del sistema è il punto da cui in sequenza partono le direttive per tutto il sistema Unità logico-aritmetica è l’esecutore delle operazioni sui dati, sia aritmetiche, sia di confronto gli operandi sono memorizzati nei registri dalla memoria registro +*/- alla memoria registro registro Unità logico-aritmetica Unità di controllo + Unità logico-aritmetica = CPU (Central Processing Unit) Caratteristica della CPU: velocità operativa (tempo di esecuzione di una istruzione) per sincronizzare le attività di un sistema si utilizza un circuito elementare (clock) che emette degli impulsi a precisi intervalli di tempo l’intervallo tra i limiti di 2 impulsi consecutivi è chiamato TEMPO DI CICLO DI CLOCK ciclo di clock = 1 ns ⇔ frequenza 1 GHz (1 GHz = 1000 MHz = 109 Hz) La tecnologia attuale consente di produrre processori fino a 4 Ghz (0,25 ns) valori tipici sono 1,3 GHz, 1,5 GHz, 1,8 GHz, 2,8 GHz, 3,0 GHz, 3,2 GHz, 3,8 GHz 9 Evoluzione: processori multicore misure misure della della velocità velocità operativa operativa • MIPS Milioni di Istruzioni Per Secondo • MFLOPS Milioni di operazioni FLOating-Point al Secondo in generale un’istruzione viene eseguita in un ciclo di clock ad esempio un processore a 1,2 GHz ha una velocità operativa di 1200 MIPS Unità di Input/Output Testo non presente OUTPUT interfaccia del calcolatore con il mondo esterno INPUT • consente l’interazione con l’uomo (video, tastiera, stampante, mouse,….) • consente l’accesso alle reti telematiche (Ethernet,Internet,….) Informazioni sui libri della biblioteca e sui loro argomenti Automazione di biblioteche 10 Documento in Microsoft Word Foglio Microsoft Excel Unità di controllo è il coordinatore di tutte le attività del calcolatore • preleva dalla memoria un’istruzione • la interpreta •invia all’unità preposta una sequenza di comandi necessari per l’esecuzione dell’istruzione • trasferisce i dati dalla memoria a speciali aree di memoria presenti nell’unità logico-aritmetica (registri) • determina la successiva istruzione da eseguire 11