Informatica: Rappresentazione ed Elaborazione Automatica delle Informazioni PDF
Document Details
Uploaded by Deleted User
Tags
Related
- Mécanique Et Résistance Des Matériaux PDF
- Elaborazione dell'informazione PDF
- Capítulo 5 - Elaboración y refinado de aceites comestibles PDF
- TEMA 3: Diseño y Elaboración de Documentos Clínico-Asistenciales PDF
- IL PROCESSORE INTEL 8086 per studenti PDF
- Sistemi di Elaborazione e Trasmissione dell'Informazione - PDF
Summary
Introduzione ai concetti fondamentali dell'informatica, spaziando dalla rappresentazione all'elaborazione delle informazioni tramite algoritmi, linguaggi di programmazione, hardware e software. L'elaborazione automatica delle informazioni viene confrontata con quella umana e viene illustrata la necessità di un linguaggio intermedio per la comunicazione tra uomo e macchina.
Full Transcript
Informatica: rappresentazione ed elaborazione automatica delle informazioni. Elaborazione delle informazioni(ricetta): processo composto da un insieme di azioni con procedure ben definite con lo scopo di risolvere un problema. L’elaborazione consta di varie fasi tra cui: specifica dei dati d...
Informatica: rappresentazione ed elaborazione automatica delle informazioni. Elaborazione delle informazioni(ricetta): processo composto da un insieme di azioni con procedure ben definite con lo scopo di risolvere un problema. L’elaborazione consta di varie fasi tra cui: specifica dei dati da elaborare insieme delle azioni da svolgere specifica dei controlli che comprende l’ordine in cui devono essere svolte le azioni Algoritmo(ASTRATTO): sequenza finita di azioni che consente di risolvere un problema in tempo finito. Può essere infinito ma non risolverebbe il problema. Programma(CONCRETO): descrizione dei passaggi di un algoritmo tramite un linguaggio. Sequenza finita di istruzioni. Eseguire un programma= eseguire le istruzioni dell’algoritmo nella sequenza specificata. Elaboratore: Macchina capace di eseguire le azioni specificate dal programma automaticamente. L’elaboratore è composto da: hardware: parte fisica, tangibile che compone fisicamente la macchina software: parte astratta, non tangibile che si divide in: ○ firmware: software codificato in hardware; ○ software di base: programmi di gestione del sistema (OS) ○ software applicativo: programmi che permettono di svolgere determinati compiti (applicazioni). HW e SW sono logicamente equivalenti: Ogni operazione eseguita dall HW può essere simulata via SW Ogni operazione eseguita via SW può essere realizzata in HW si predilige uno rispetto all’altro in base a diversi fattori(prettamente ingegneristici): ◦ Costo ◦ Velocità ◦ Affidabilità ◦ Frequenza di modifiche L’uomo per comunicare utilizza un linguaggio naturale (italiano, inglese… ) che può essere definito “linguaggio ambiguo” poiché per ogni comando possono esserci diverse interpretazioni, la macchina però non riesce a comprendere un linguaggio ambiguo quindi per rendere possibile la comunicazione tra uomo e macchina si tende ad utilizzare un linguaggio matematico non ambiguo ma formale. In un linguaggio formale non possono esserci diverse interpretazioni (2+2 è sempre 4). UOMO(ANALOGICO): consapevole del processo che va avanti. Elaborazione delle informazioni tramite l’utilizzo di grandezze che variano con continuità. (contemplazione dell’infinito) MACCHINA(DIGITALE): non consapevole svolge le istruzioni per cambiare il proprio stato (stato: elementi variabili in una macchina come la memoria). Elaborazione numerica non continua (digitale= digitus (dito utilizzato per contare)). L’infinito non viene contemplato SISTEMA DI ELABORAZIONE: serve a colmare il divario tra linguaggio naturale (analogico) e linguaggio macchina (digitale) tramite l’astrazione a livelli dell’informazioni. Problema: distanza tra linguaggi (matematico e naturale) Soluzione: creazione di un linguaggio intermedio tra uomo e macchina. Traduzione di programmi La traduzione di programmi da un livello più alto al livello sottostante può avvenire secondo due approcci: ◦Compilazione Ogni istruzione del programma scritto in linguaggio (programma sorgente) è tradotta in linguaggio Ln-1, viene generato un altro programma, detto programma oggetto, che potrà essere successivamente eseguito ◦Interpretazione Ogni istruzione del programma scritto in linguaggio Ln (programma sorgente) è tradotta in linguaggio Ln-1 e immediatamente eseguita non viene generato il programma oggetto Il processo di traduzione è effettuato da un particolare programma che prende il nome di compilatore o interprete, a seconda del tipo di traduzione Velocità di esecuzione ◦ Bassa per i linguaggi interpretati ◦ Alta per i linguaggi compilati Facilità di messa a punto dei programmi ◦ Alta per i linguaggi interpretati ◦ Bassa per i linguaggi compilati LINGUAGGI linguaggi si dividono in linguaggi di alto livello (c, fortran, pascal) simbolici, indipendenti dalle caratteristiche dell'elaboratore (funziona su qualsiasi macchina grazie al compilatore che "conosce" il linguaggio macchina e che traduce il linguaggio di alto livello in linguaggio macchina), traduzione 1 a molti (da un'istruzione in c si ottengono tante istruzioni in linguaggio macchina) linguaggi di basso livello (assembly) simbolici, dipendenti dalle caratteristiche dell'elaboratore(un assembly per ogni macchina es. assembly 8086) traduzione 1 a 1 (ogni istruzione data l'assemblatore la traduce in un'istruzione in linguaggio macchina) LIVELLI DI UN SISTEMA DI ELABORAZIONE livello 5 linguaggi di alto livello indipendente dalla macchina, descrizione astratta delle funzioni, linguaggi di alto livello tradotti in assembly o in linguaggio macchina con chiamate di sistema livello 4 assembly(simbolico) controparte del livello ISA ma con linguaggio simbolico livello 3 sistemi operativi collega la macchina con l'uomo tramite la gestione di periferiche esterne (schermo, mouse…) linguaggio: linguaggio macchina + chiamate di sistema livello 2 ISA (del set di istruzioni) (0 e 1) organizzazione del calcolatore dal punto di vista del compilatore, consente di capire come programmare un compilatore, linguaggio: istruzioni di macchina livello 1 microarchitettura organizzazione dei componenti all'interno del modello di Von Neumann, non visibile al compilatore(informazioni inutili per il compilatore), consente di capire il funzionamento della CPU, linguaggio: microistruzioni riguardanti prevalentemente l'HW. livello 0 logico digitale fisico, linguaggio: insieme degli impulsi elettrici, esecuzione diretta senza interpretazione/compilazione. livello logico digitale livello dei fonemi livello di microprogrammazione livello delle lettere dell'alfabeto livello ISA livello delle parole di semplice significato livello del Sistema operativo livello delle parole di significato complesso livello dei linguaggi di alto livello livello dei discorsi MODELLO DELL’ELABORATORE Modello: rappresentazione strutturale(concreta) di un sistema(insieme di parti interconnesse). Elaboratore = sistema Informazioni= Dati e Istruzioni MODELLO DI VON NEUMANN 1. l'esecuzione di un programma avviene tramite l'esecuzione delle istruzioni una alla volta in sequenza(SEQUENZIALE) 2. dati e istruzioni devono trovarsi in memoria Central Processing Unit (CPU) -unità di controllo(CU) -estrae le istruzioni dalla memoria (unidirezionale dalla memoria al processore) -legge e scrive dati da e per la memoria -legge e scrive dati da e per i dispositivi I/O (dati dall'esterno vanno portati in memoria (modello di Von Neumann)) -unità logico-aritmetica(ALU) -esegue le operazioni aritmetiche/algebriche necessarie all'esecuzione -Registri (elementi di memorizzazione interni al processore): contengono informazioni locali legate all'istruzione in corso d'esecuzione -l'istruzione che il processore in quel momento sta elaborando -l'indirizzo della prossima istruzione da eseguire -i dati su cui opera l'istruzione corrente memorie piccole ma veloci, i due principali registri della CPU sono: 1.registro di istruzione (IR instruction register) contiene l'istruzione che si sta eseguendo 2.Registro Contatore (PC Program Counter) che contiene l'indirizzo della prossima istruzione Dispositivi di Input/Output (I/O) (servono all'uomo non alla macchina) input: acquisizione di informazioni output: emissione di informazioni Memoria: contiene dati e istruzioni elaborati dal processore, la CPU rimane in attesa che la memoria risponda a richieste di lettura o scrittura. accesso basato su indirizzi memoria suddivisa in locazioni in cui sono contenute informazioni raggiungibili tramite indirizzi(numeri) quando un programma non è in uso è memorizzato sulla memoria di massa, quando dev'essere eseguito viene caricato tutto o in parte in memoria principale CICLO DI ISTRUZIONE il processore esegue ogni istruzione mediante una sequenza definita di operazioni detta CICLO DI ISTRUZIONE 1. FETCH: Utilizzando l’indirizzo conservato nel PC, prelevare la successiva istruzione dalla memoria per portarla nell’IR 2. Modificare il contenuto del PC in modo che rappresenti l’indirizzo della istruzione successiva 3. DECODE: Determinare il tipo dell’istruzione appena prelevata; se l’istruzione usa un dato in memoria, determinare dove si trova 4. OPERAND FETCH: Se necessario, prelevare il dato per portarlo in un registro della CPU 5. EXECUTE: Eseguire l’istruzione 6. OPERAND STORE: Se necessario, scrivere il risultato dell’esecuzione in memoria 7. Tornare al punto 1 per iniziare l’esecuzione dell’istruzione successiva STORIA ELABORATORI CALCOLATORI MECCANICI (senza corrente, analogici) GEN 0 Pascalina(1642): -macchinetta meccanica in grado di eseguire addizioni e sottrazioni in maniera automatica Macchina di Leibniz (1674): -Basata sulla pascalina in grado di eseguire anche moltiplicazioni e divisioni -si basava su un organo traspositore (cilindro di Leibniz) che realizzava la moltiplicazione per mezzo di somme successive e la divisione per mezzo di sottrazioni successive Difference engine (1822, Babbage): -calcolava i valori di un polinomio di terzo grado tramite il metodo delle differenze finite -una volta attivata e impostata con i valori iniziali poteva proseguire autonomamente tramite un motore a vapore - incideva i risultati su una piastra di rame per mezzo di un dado di acciaio Analytical engine (1837, Babbage): -primo esempio di macchina a programma registrato: poteva eseguire sequenze di calcoli pre registrati su schede perforate -consisteva di unità distinte (per il calcolo, la memoria, l'input e l'output) - ADA Lovelace (figlia di lord Byron) si interessò al progetto di Babbage (mai realizzata) e ideò i programmi per la sua macchina, scrisse il modo con cui programmare la macchina nonostante non fosse possibile farlo, a lei si deve l'idea di vari concetti come loop o subroutine GEN 1 EINAC (Electronical Numerical Integrator And Computer), Eckert e Mauchly -primo prototipo di calcolatore elettronico digitale, costruito negli anni '40, presso l'università della Pennsylvania per scopi militari(calcoli balistici per lanciare i missili) -400 moltiplicazioni al secondo -18 000 valvole termoioniche -rappresentazione decimale -programmazione manuale attraverso cavi elettrici e interruttori su un pannello di controllo EDVAC (Electronic Discrete Variable Automatic Computer) -progettato nel 45 -realizzato da Eckert, Mauchly e Von Neumann - possibilità di programmare la macchina - uso dell'aritmetica binaria - memorie a linea di ritardo GEN 1 Macchina IAS (MANIAC) -progettata da Von Neumann - memoria a tubi catodici - macchina a programma memorizzato - dati e istruzioni nella memoria - schede perforate - 4096 parole di memoria da 40 bit - 20 bit istruzioni -8 bit tipo d'istruzione -12 bit una delle 4096 parole -insieme di registri -memory buffer register -memory address register -instruction register -program counter -accumulator primi calcolatori commerciali basati sul modello di Von Neumann UNIVAC I (universal automatic computer) costruito nel '47 da eckert e Mauchly utilizzato dal governo americano per il censimento IBM serie 700 -Famiglia di calcolatori realizzati a partire dal 1952 dall’IBM (International Business Machine) GEN 2 sostituzione delle valvole termoioniche con i transistor (58-64) - più piccolo, economico e affidabile - logicamente uguale alle valvole transistor: primo passo verso la miniaturizzazione del computer GEN 3 introduzione dei circuiti integrati al posto dei transistor (1958) -all'interno di piastrine di silicio si riescono a contenere transistor, diodi, condensatori, resistenze… in molto meno spazio primi computer a circuiti integrati: IBM system/360(1964) -Famiglia di macchine con lo stesso linguaggio -completa compatibilità -portabilità delle app -sistema operativo comune DEC PDP-11 -evoluzione diretta del PDP-8 -16bit -architettura a bus -sistema operativo UNIX Aumento della miniaturizzazione dei circuiti integrati ◦ Anni ‘60: SSI (Small Scale Integration) ◦ Un centinaio di dispositivi su un singolo chip ◦ Anni '70: LSI (Large Scale Integration) ◦ Da 1.000 a 10.000 dispositivi su un singolo chip ◦ Elaboratori di quarta generazione ◦ Anni '80: VLSI (Very Large Scale Integration) ◦ da 10.000 a 100.000 dispositivi su un singolo chip ◦ Elaboratori di quinta generazione ◦ Oggi: ULSI (Ultra Large Scale Integration) ◦ Milioni di dispositivi su un singolo chip Legge di Moore (1965) ◦ Legge empirica che esprime la velocità con cui aumenta l’integrazione dei chip nel tempo (Gordon Moore, cofondatore di Intel) ◦ il numero di transistor che possono essere inseriti in un chip di silicio all’incirca raddoppia ogni 18 mesi GEN 4 microprocessore -intel 4004 -primo esemplare 4 bit -640 byte di memoria indirizzabile -intel 8008 -primo processore a 8 bit -16kbyte di memoria -intel 8080 -8 bit -64 kbyte di memoria indirizzabile -primo processore general-purpose, progettato in modo da essere utilizzato per ogni genere di applicazione 1975 nasce il PC -architettura INTEL diviene lo standard nel mondo dei PC - PC IBM (1981) Processori intel -8086 -16 bit -1 Mb di memoria -8088 -16 bit -16 Mb di memoria -80286 -32 bit -supporta il multitasking -80486 -32 bit -pipeline -co processore matematico integrato SPAZIO DEGLI INDIRIZZI= LOCAZIONI DI MEMORIA [12 BIT ---> 9046 LOCAZIONI DI MEMORIA(212)] [24 BIT ---> 16 777 216 LOCAZIONI DI MEMORIA(224)] PRESTAZIONI La frequenza di clock del processore è il principale indice di prestazioni di un calcolatore ◦ indica il numero di operazioni elementari eseguite dal processore in un secondo ◦ si misura in hertz (Hz) e nei suoi multipli ◦ 1 Hz corrisponde a 1 operazione al secondo ◦ 1 MHz = 106 Hz = 1 milione di operazioni al secondo ◦ dipende dalla tecnologia e dall’architettura del processore Questo parametro è migliorato vertiginosamente ◦ Primi anni ’70: