Estratto del documento

Dispensa corso fondamenti di informatica 9 CFU

Corso di studi in Statistica e Informatica per la Gestione delle Imprese. Dall'architettura del modello di Von Neumann al calcolatore moderno, algoritmi, linguaggi di programmazione e rappresentazione dei dati. G. Madonna. 30/05/2015.

Macchina di Von Neumann

Il computer è un calcolatore e non un cervello elettronico in quanto incapace di operare scelte autonome di fronte a situazioni impreviste. Essi sostituiscono l'uomo nelle attività ripetitive o per problemi che richiedono un controllo continuo, inoltre risulta essere un valido strumento di aiuto nella documentazione automatica, scrittura di testi ecc.

Un calcolatore è capace di immagazzinare una grossa quantità di informazioni ed eseguire su di esse operazioni ad altissima velocità. Lo schema funzionale di un calcolatore prende il nome di modello di Von Neumann, tale modello è basato sul concetto che la macchina immagazzinava nella propria memoria i dati e le istruzioni su cui lavorare. I componenti fondamentali sono: la memoria, l'unità di controllo CU (Control Unit), l'unità logico aritmetica ALU (Arithmetic Logic Unit) e le unità di input e output.

La memoria

La memoria è il supporto fisico che permette di immagazzinare le informazioni, organizzata logicamente come una lista sequenziale di locazioni (o celle) di dimensioni fissate a cui si può fare riferimento mediante la posizione occupata detta indirizzo di memoria. La dimensione di una locazione di memoria si misura in numero di bit, memorie con locazioni di 8 bit sono dette a byte o caratteri, mentre con più di 8 bit sono dette parole (o voci).

Le operazioni consentite sulla memoria sono di lettura o di scrittura, ovvero con la lettura viene prelevata l'informazione contenuta nella locazione di memoria senza distruggerla, con quella di scrittura si inserisce un'informazione nella locazione eliminando quella precedente. Le prestazioni della memoria vengono misurate in tempi di accesso, ovvero il tempo necessario per prelevare l'informazione, solitamente misurata in nanosecondi: il costo delle memorie è proporzionale a W × N × C dove W è l'ampiezza della voce (16, 32, 64 bit), N è la capacità della memoria (Kbyte, Megabyte, GByte), e C è il tempo di accesso.

L'unità di controllo (CU)

L'Unità di Controllo (CU) è l'organo che si occupa di coordinare tutte le attività del calcolatore, essa ha il compito di prelevare ogni istruzione dalla memoria centrale, di decodificarla ed infine eseguire l'istruzione secondo un ordine rigidamente sequenziale. Tale ciclo prende il nome di Ciclo Fetch, Operand Assembly. Perché l'intero sistema possa avere avvio, la CU deve essere informata dell'indirizzo del registro di memoria contenente la prima istruzione da eseguire, tale fase è detta di Boot.

L'unità logico aritmetica (ALU)

L'Unità Logico Aritmetica (ALU) è il componente che si occupa di eseguire tutte le operazioni di calcolo logico aritmetico, eseguendo appunto operazioni di tipo aritmetico e di confronto sui dati. Essa è formata da registri definiti Interni per distinguerli da quelli della memoria centrale, dove la CU predispone gli operandi, l'ALU esegue l'operazione ed infine deposita il risultato in memoria.

L'insieme dell'unità di controllo e dell'unità logico aritmetica prende il nome di Central Processing Unit (CPU). Essa è caratterizzata dalla velocità operativa, ovvero il tempo di esecuzione di una singola istruzione che si aggira sui milioni di istruzioni svolte al secondo (MIPS). Di recente viene usata l'unità di misura MFLOPS (milioni di operazioni floating point al secondo).

Le attività di tutti i dispositivi sono sincronizzate tra loro mediante un orologio interno chiamato Clock che emette degli impulsi a precisi intervalli di tempo scandendo i ritmi di lavoro. L'intervallo tra due impulsi consecutivi è detto tempo di ciclo di clock misurato in Hertz. Le attuali tecnologie consentono di produrre processori fino a 4 Ghertz ovvero (0,25 ns). La velocità operativa della CPU è legata alla frequenza del suo clock, infatti ad essa è associato il numero di operazioni elementari che vengono eseguite nell'unità di tempo dalla CU. In generale un'istruzione viene eseguita in un ciclo di clock, ad esempio un processore a 1,2GHz ha una velocità operativa di 1200 MIPS anche se tale ipotesi non è sempre vera in quanto l'esecuzione di una operazione potrebbe richiedere più cicli di clock.

Unità di input e output

Le unità di Input e Output rappresentano l'interfaccia con il mondo esterno, tipici organi di input sono la tastiera, il mouse, mentre quello di output è il monitor.

Algoritmi e linguaggi di programmazione

Il calcolatore è un esecutore di algoritmi, ovvero un procedimento per la risoluzione di una classe di problemi, costituito da una sequenza finita di direttive non ambigue che specificano le operazioni da eseguire su un insieme di dati. I linguaggi utilizzati per comunicare algoritmi ai calcolatori sono detti linguaggi di programmazione, essi sono tanto più difficili da utilizzare per scrivere e comunicare algoritmi quanto minori sono le capacità dell'esecutore a cui è rivolto.

Le istruzioni possono essere classificate in elementari, ovvero quelle che l'esecutore è in grado di comprendere ed eseguire; non elementari quelle non note all'esecutore, affinché tale istruzione possa essere eseguita dal calcolatore deve essere specificata in termini più semplici, tale procedimento è detto raffinamento o specificazione dell'istruzione non elementare.

Un programma è quindi la descrizione di un algoritmo in un linguaggio comprensibile al calcolatore, il linguaggio più semplice è quello comprensibile direttamente dal calcolatore che chiameremo linguaggio macchina, le istruzioni in linguaggio macchina hanno un formato fisso, ovvero il codice operativo che specifica quale operazione deve essere eseguita e poi gli indirizzi delle locazioni di memoria degli operandi. Esso da un lato offre il vantaggio di una elevata velocità di esecuzione e di una ottimizzazione nell'uso delle risorse hardware, dall'altro lo svantaggio che un programma scritto per un calcolatore non può essere eseguito da un calcolatore con caratteristiche diverse.

Inoltre programmare in linguaggio macchina è difficile sia perché le istruzioni sono tanto elementari sicché la costruzione dell'algoritmo richiederebbe un gran numero di comandi, sia perché i calcolatori comprendono solo istruzioni sotto forma di sequenze di bit. Per ovviare a tale difficoltà possono essere usati i linguaggi assemblativi, i quali rendono più agevole la programmazione, poiché associano alle sequenze di bit dei codici mnemonici più facili da ricordare e interpretare. Essi comunque, come il linguaggio macchina, sono detti di basso livello in quanto si pongono al livello del calcolatore e comportano difficoltà nella scrittura e verifica del funzionamento di programmi.

Sono nati per questo i cosiddetti linguaggi di alto livello che rendono più semplice l'attività di programmazione in quanto sono più comprensibili agli uomini che non dai calcolatori. Essi fanno uso di uno pseudo-linguaggio umano utilizzando parole chiave o codici, facilitando la stesura e rilettura di un programma ma non mette il computer nella condizione di comprendere direttamente il programma. Per ottenere il risultato finale è necessario applicare un traduttore che traduca il linguaggio in istruzioni comprensibili al calcolatore, quello più semplice è sicuramente quello che mette in corrispondenza i codici del linguaggio assemblativo con le sequenze di bit del linguaggio macchina, tale traduttore è detto assemblatore.

La traduzione del testo del programma detto anche testo sorgente può avvenire secondo due modalità diverse: mediante una preventiva traduzione del testo sorgente in linguaggio macchina e successiva esecuzione del programma utilizzando i compilatori; oppure mediante una contestuale interpretazione del testo origine e sua esecuzione utilizzando un interprete.

Il compilatore riceve in ingresso un testo sorgente traducendolo in un linguaggio oggetto, tuttavia esso non è in grado di mettere assieme le varie componenti del programma, pertanto tale funzione viene assolta da un'applicazione detta linker o collegatore che riceve in ingresso un programma oggetto e i riferimenti alle librerie da cui estrarre moduli da collegare, producendo un unico programma eseguibile. Infine, per essere eseguito il programma viene caricato in memoria centrale attraverso il caricatore o loader.

Un interprete invece è un esecutore che definisce una macchina astratta attraverso il linguaggio che riconosce, eseguendo contestualmente la traduzione e l'esecuzione. I vantaggi sono la loro indipendenza dalla macchina reale e dal sistema operativo che li ospita, pertanto possono essere eseguiti su macchine diverse, di contro però sono più lenti in quanto il calcolatore esegue sempre il programma interprete che a sua volta esegue il programma utente, per cui ogni volta che un programma interpretato viene eseguito, esso viene anche tradotto.

Architettura di un calcolatore moderno

Con il termine hardware indichiamo l'insieme di circuiti elettronici ed elettromeccanici che costituiscono un calcolatore, mentre con il termine architettura indichiamo la combinazione delle funzionalità operative delle unità hardware del calcolatore, del flusso delle informazioni e del controllo tra esse.

Lo schema funzionale di un PC corrisponde ancora oggi a quello della macchina di Von Neumann, ma lo sviluppo tecnologico ha comportato delle modifiche nel tempo, come ad esempio la memoria centrale è stata affiancata dalle memorie di massa, caratterizzate da una elevata capacità di memorizzazione. Un personal computer oggi si compone di: unità di input e di output, delle periferiche, di un contenitore detto case che racchiude gli altri componenti.

Il sistema operativo di un computer, è un insieme di componenti software che si interpone tra l'hardware di un calcolatore e l'utilizzatore, ponendosi come obiettivo quello di consentire al...

Anteprima
Vedrai una selezione di 5 pagine su 16
Fondamenti Di Informatica Pag. 1 Fondamenti Di Informatica Pag. 2
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Fondamenti Di Informatica Pag. 6
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Fondamenti Di Informatica Pag. 11
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Fondamenti Di Informatica Pag. 16
1 su 16
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Guido.Madonna di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Napoli - Parthenope o del prof Zanetti Paolo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community