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
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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 la to 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 sottoforma 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 i linguaggio macchina sono detti di basso livello in quanto si

pongono al livello del calcolatore 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 chiavi 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 2

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 produce 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. 3

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 cetrale è stata affiancata dalle memorie di massa, caratterizzate da una

elevate 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

calcolatore di svolgere le proprie funzioni con la massima efficienza possibile ed offrire un

ambiente amichevole di lavoro all’utilizzatore. Un PC è essenzialmente Monoutente, ovvero può

essere utilizzato da un utente per volta, ma consente il Multitasking cioè è in grado di eseguire più

attività contemporaneamente. I sistemi operativi più utilizzati sono Windows, Linux. All’interno

del case è alloggiata la Motherboard (scheda madre), ovvero un circuito stampato sulla quale

poggiano gli altri componenti, come la CPU, la ROM, la RAM, gli slot di espansione,il BIOS, il

Chipset ed altri componenti come ventole ecc.

Il BIOS (Basic Input/Output System) è un insieme di istruzioni usato dal processore per

inizializzare il computer dopo premuto il bottone di accensione. Esso s’incarica di eseguire una

procedura di autodiagnostica (controlli e verifiche sulla memoria RAM, tastiera, processore, drive,

disco fisso, porte di comunicazione, ...) e di caricare il kernel del sistema operativo in memoria

centrale. Il Chipset è un Chip integrato in una scheda madre o grafica, che gestisce lo scambio di

dati fra CPU e memoria e con il bus. Gestisce e coordina il funzionamento di tutti i componenti

presenti sulla motherboard (Controllo I/O, gestione dell’elettronica dei dischi e CD-ROM, richieste

di interrupt, accessi diretti alla memoria,...).

I microprocessori, sono dispositivi elettronici in grado di contenere al proprio interno le funzioni

di una intera CPU, costituito da un unico circuito integrato costruito su uno strato di silicio e

installato su uno speciale zoccolo detto socket saldato sulla scheda madre. Esso interagisce con

tutti gli altri dispositivi attraverso dei fili su cui possono transitare uno o più bit

contemporaneamente (dipendente dal numero di linee) per trasferire i dati e le informazioni, tali

canali di comunicazione sono detti Bus, la cui velocità di trasferimento è detta Ampiezza di Banda,

misurata in bps, ovvero numero di bit al secondo. Un Bus costituito da un solo filo è chiamato Bus

Seriale e su di esso i bit transitano uno dietro l’altro, mentre un Bus costituito da n fili è chiamato 4

Bus Parallelo perché su di esso transitano n bit alla volta. A seconda delle informazioni trasportate

distinguiamo:

 Address Bus (Bus Indirizzi), tipicamente ha 64 linee e serve alla CU per comunicare

l’indirizzo del dispositivo interessato da una operazione di lettura o scrittura;

 Data Bus (Bus Dati), tipicamente ha 64 linee e consente ai dati di fluire da CPU a locazione

di memoria selezionata per operazioni di store e viceversa per quelle di load;

 Control Bus (Bus di controllo), trasporta segnali di controllo in tutto il sistema e serve alla

CU per indicare ai dispositivi cosa essi devono fare, tipici segnali sono quelli per operazioni

di read o write.

I Bus realizzano lo scambio delle informazioni attraverso i seguenti passi : la CPU fornisce l’indirizzo

all’address bus, i dispositivi collegati devono ascoltare l’address bus e attivarsi quando su di esso

riconoscono il proprio indirizzo identificativo, una volta attivatosi il dispositivo interpreta i segnali

del control bus per eseguire i comandi, le memorie prelevano dati dal data bus o immettono dati

in esso, i dispositivi di input possono solo immettere dati sul data bus mentre quelli di output

possono solo prelevarli. Bus di comunicazione standard per il trasferimento dati tra CPU e schede

periferiche sono detti PCI (Peripheral Component Interconnect), bus parallelo a 32 o 64 bit dotato

di una velocità di circa 133MB/sec. Una evoluzione del PCI è il PCIe (PCI Express) il quale non è

compatibile con il precedente e garantisce una maggiore velocità di trasferimento, con la versione

4.0 circa 31.5 GB/sec.

Come sappiamo, durante l’esecuzione dei programmi essi risiedono in memoria centrale ovvero

nella memoria RAM (Random Access Memory), memoria ad accesso casuale, così definita in

quanto il tempo di accesso non dipende dalla poszizine occupata. Su di essa sono consentite

operazioni di lettura e scrittura, in particolare una memoria di questo tipo è definita volatile, in

quanto tutte le informazioni in essa contenute vengono perse allo spegnimento del Sistema. Parte

della RAM può essere inclusa nella scheda madre, anche se di solito è presente sotto forma di

moduli intercambiabili SIMM o DIMM, che ne permettono l’ampliamento. Simm (Single Inline

Memory Module) Sono dei moduli, piccole schede, di memoria RAM con linea singola di

contatti.La loro velocità è di 60 o 70 ns. Dimm (Dual Inline Memory Module) Sono dei moduli di

memoria con linea doppia di contatti, la loro velocità è di 60 o 70 ns, e un modulo DIMM può

arrivare a 256 Mb. Le memorie RAM le classifichiamo in :

 SDRAM (Synchronous Dynamic RAM) è detta dinamica perché i bit della memoria

mantengono i dati solo per breve tempo e devono quindi essere aggiornati continuamente

(refresh).

 SRAM (Static RAM) è detta statica perché conserva i dati senza bisogno di refresh ed ha una

velocità di accesso ancora più alta. Essendo più costosa viene utilizzata essenzialmente per

la cache.

La Cache memory è piccola ma molto veloce, viene usata per accelerare il processo di

Dettagli
Publisher
A.A. 2014-2015
16 pagine
2 download
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.