Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA...

109
INTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002- 03

Transcript of Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA...

Page 1: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

INTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI

Appunti di lezioni - A. A. 2002-03

Page 2: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Che cos'è l'informatica?

In inglese: "Computer Science"

-È la scienza e tecnica dei calcolatori? In realtà il calcolatore è solo uno strumento per operare concretamente e

realizzare applicazioni.

-È una delle applicazioni dei calcolatori? Non è solo la scienza per la risoluzione dei problemi di calcolo

scientifico o la scienza per i sistemi informatici aziendali…

-È la scienza dell'informazione? Definizione troppo generale o generica. Anche l'attività giornalistica è scienza dell'informazione.

I° definizione: è la scienza della rappresentazione e dell'elaborazione delle informazioni.

Soddisfa i costruttori di calcolatori Soddisfa i costruttori di applicazioni

II° definizione : Association for Computing Machinery (ACM).È lo studio sistematico degli algoritmi che descrivono e trasformano le informazioni: la loro teoria, analisi, sviluppo, efficienza, realizzazione ed applicazione.

Algoritmo: precisa sequenza di istruzioni od operazioni, comprensibili ed eseguibili da uno strumento automatico.

La definizione mette in evidenza l'attività di progettazione e di sviluppo indipendente dallo strumento calcolatore; esso interviene in quanto consente di gestire velocemente una grande quantità di informazioni. DIVENTA CENTRALE NELL’INFORMATICA IL CONCETTO DI ALGORITMO.

2

Page 3: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Intuitivamente un algoritmo è una ricetta (successione di passi o istruzioni) per risolvere un problema o realizzare un compito.

ESEMPI: Istruzioni per il montaggio di un elettrodomestico, somma di due numeri in colonna, prelievo di denaro con il Bancomat, determinazione del massimo comune divisore tra due interi positivi….

Questi passi (o istruzioni) devono essere elementari (comprensibili) per un esecutore.

Se le istruzioni per il montaggio di un elettrodomestico sono in inglese e l’acquirente non sa l’inglese, l’algoritmo non è utilizzabile.

Il calcolatore come esecutore di algoritmi: vogliamo costruire algoritmi eseguibili da un calcolatore e quindi i passi o istruzioni devono essere elementari per un calcolatore.

Per sapere quali sono le istruzioni che un calcolatore è in grado di eseguire, occorre conoscere gli elementi principali della struttura di un elaboratore.

3

Page 4: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Elaboratore digitale: è una macchina usata per Collezionare Analizzare Elaborareprecisamente e velocemente una vasta quantità di informazioni.È in grado di eseguire ad altissima velocità sequenze di operazioni lunghe, complesse e ripetitive.

La sua attività è una attività di esecutore preciso e veloce di una serie di ordini.

Principalmente ha due funzioni: Trasmissione, trasformazione e conservazione di

informazioni codificate in modo comprensibile alla macchina.

Risoluzione di problemi di tipo deterministico.

Informazioni

Dati: figure, impulsi, numeri, caratteri… che sintetizzano una situazione reale;Istruzioni: comandi che suggeriscono al calcolatore l'azione immediata da eseguire.

Tutte le informazioni sono codificate in forma ultima sempre come sequenze di numeri binari.

4

Page 5: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Il calcolatore realizza ogni elaborazione richiesta sui dati per reazione a una precisa successione di istruzioni detta

PROGRAMMA.

Ogni calcolatore comprende uno specifico e limitato insieme di istruzioni.

Ogni problema deve essere riformulato in modo da essere comprensibile alla macchina come successione di operazioni o passi che il calcolatore è in grado di eseguire (Algoritmo ).

Ogni algoritmo deve essere codificato mediante un linguaggio di programmazione in programma.

Programma: successione di istruzioni necessarie a produrre le informazioni desiderate dall'utente (Risultati) a partire da una serie di informazioni fornite inizialmente (Dati).

Linguaggio di programmazione

5

algoritmo

programma

risultati

problema

dati

Page 6: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Tecniche di programmazione:insieme dei criteri da seguire per progettare e costruire un programma sfruttando al meglio le risorse di un elaboratore.

Pertanto un calcolatore è una macchina in grado di: ricevere dall'esterno i DATI di un problema e il

programma, ossia le ISTRUZIONI per risolverlo; memorizzare le informazioni (dati ed istruzioni); eseguire le istruzioni, elaborando operazioni aritmetiche e

logiche sui dati; fornire in uscita i RISULTATI dell'elaborazione

Queste funzioni sono in corrispondenza biunivoca con le parti che costituiscono un sistema informatico.

Un sistema informatico è un oggetto complesso costituito da molte parti che interagiscono tra di loro.

ARCHITETTURA DI UN SISTEMA INFORMATICO: individuazione delle varie parti principi generali di funzionamento interazioni tra le varie parti

6

calcolatore

Page 7: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Un sistema di elaborazione dati è costituito da:( I° livello di decomposizione di un sistema informatico )

Hardware: ("ferraglia") struttura fisica di un calcolatore (dispositivi meccanici, componenti elettroniche…)

Software: totalità di programmi atti alla gestione del calcolatore, allo svolgimento delle sue funzioni e alla risoluzione di tutti i problemi non affrontati direttamente dall'hardware. Software di base : sistemi operativi,

compilatori, editori… Software applicativo : programmi scritti

dall'utente, librerie, pacchetti applicativi…

Classificazione utile ma non sempre molto evidente.

Firmware: è al confine tra hardware e software; sono MICROPROGRAMMI scritti su memorie permanenti direttamente dai costruttori che agiscono direttamente sullo strato hardware (autotest della macchina, gestione delle periferiche, nucleo di caricamento del sistema operativo - bootstrap-…).

7

Page 8: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

I° livello di decomposizione di un sistema Informativo:

firmware

8

SW applicativo

HW

SW di base (Sistema operativo)

Firmware

Page 9: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Hardware

Costituito da una serie di elementi funzionali presenti in ogni elaboratore anche se con caratteristiche diverse ed in numero diverso.

Unità di elaborazione o processore (CPU: Central Processing Unit ): svolge le elaborazioni e coordina il trasferimento dei dati all'interno del sistema: ESEGUE I PROGRAMMI, ossia interpreta ed esegue le varie istruzioni di cui è costituito il programma.

Memoria principale o centrale (RAM: random access memory): memorizza i dati ed i programmi; ha capacità limitata ed è volatile (perde il suo contenuto in assenza di alimentazione) ma l'accesso all'informazione è rapido.

Memoria secondaria (o memoria di massa): utilizzata per memorizzare grandi quantità di dati e programmi. L'informazione è persistente ma l'accesso è meno rapido.

Unità di ingresso/uscita ( periferiche): utilizzate per far comunicare il calcolatore con l'esterno (tastiere, video, stampanti…).

Bus di sistema: collega tutti gli elementi funzionali e consente lo scambio dei dati.

9

Page 10: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

CPU, memoria e dispositivi sono realizzati mediante TECNOLOGIA DIGITALE.

Dati ed istruzioni sono codificati mediante sequenze di impulsi elettrici (bit: binary digit)

00010010001111…

Le operazioni che la CPU esegue sono in aritmetica binaria. Le operazioni elementari sono semplici: Somma Differenza Scorrimento

L'utilizzo della sola struttura fisica imporrebbe all'utente di tradurre i propri comandi in sequenze di bit ( linguaggio macchina ).

10

Page 11: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

SOFTWARE

È un insieme complesso di programmi.Si può pensare ad una organizzazione a strati, ciascuno con funzionalità di livello più alto rispetto a quelli sottostanti (macchina virtuale).

11

Programmi applicativi

Ambiente di programmazione

Sistema operativo

Firmware Hardware

Software di comunicazione

Page 12: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

SISTEMA OPERATIVOInsieme di programmi che operano direttamente al di sopra di Hardware e Firmware e consentono all'utente l'utilizzo di tutte le funzionalità dell'elaboratore ( generalmente venduto dal costruttore dell'elaboratore ).

Permette un utilizzo ottimizzato ed amichevole della macchina, controllando tutte le risorse HW e SW. Gestisce le risorse disponibili Interpreta ed esegue comandi elementari Manda in esecuzione i programmi, stampa e legge i dati e

visualizza le informazioni su video… Organizza e gestisce la memoria di massa e gestisce la

memoria centrale. Gestisce la multiutenza, distribuendo le risorse

disponibili ai vari utenti.. (sistema multiutente)

In pratica un utente "vede" la macchina solo tramite il sistema operativo.Attraverso il sistema operativo il livello di interazione utente - elaboratore viene elevato: Senza S.O. : sequenze di bit. Con S.O. : parole chiave ( comandi), programmi, dati…

Sono evoluti nel corso degli anni (interfacce grafiche Windows, …).

12

Page 13: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Il S.O traduce le richieste dell'utente in opportune sequenze di impulsi da trasmettere all'HW e viceversa:

Ogni operazione di accesso a risorse della macchina, richiesta implicitamente dal comando di un utente, viene esplicitata dal S.O. (accesso a memoria centrale, secondaria, I/O verso video, tastiera…).

Tipi di sistema operativo Classificazione in base al massimo numero di utenti

collegati al sistemaMonoutenteMultiutente

Classificazione in base al massimo numero di programmi eseguibili contemporaneamente dalla macchina astrattaMonoprogrammatoMultiprogrammato

Es. DOS monoutente, monoprogrammato WINDOWS 95 monoutente, multiprogrammato UNIX, WINDOWS NT multiutente, multiprogrammato

13

Utente S.O. HW

Comando 01010101…

01010101…Risultato

Page 14: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Ambiente di programmazione: insieme di programmi che facilitano la scrittura di programmi applicativi e la verifica di correttezza.

Editor: serve per la costruzione di file di testo; in particolare servono per costruire i programmi sorgente scritti in un linguaggio di programmazione ad alto livello.

Compilatore : traduttore di un programma sorgente ad alto livello in un programma oggetto scritto in linguaggio macchina direttamente eseguibile dal calcolatore.

Linker: (collegatore o correlatore): moduli compilati separatamente collegati per formare un unico programma eseguibile.

Debugger (scopritore di bachi, o errori): serve per scoprire ed eliminare gli errori presenti durante l'esecuzione di un programma.

Interprete: traduce ed esegue direttamente ciascuna istruzione del programma sorgente istruzione per istruzione.

14

Page 15: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

PROGRAMMI APPLICATIVI

Scritti per risolvere problemi specifici usando linguaggi di programmazione ad alto livello.Risentono in misura ridotta o nulla della architettura dell'ambiente sottostante ( PORTABILITA').Sono TRASPORTABILI da un sistema informatico all'altro senza difficoltà.

PACCHETTI SW (Software personale e di produttività) Word processing (WP): trattamento di testi, dalla

battitura alla correzione, all’impaginazione e alla stampa (MICROSOFT WORD)

Foglio elettronico: elaborazione di dati, soprattutto di tipo numerico e loro organizzazione in tabelle e grafici (MICROSOFT EXCEL)

Gestore di dati e archivi (database): archiviare e gestire informazioni in modo efficiente e razionale (MICROSOFT ACCESS)

Pacchetti grafici ( Computer Aided Design CAD) Pacchetti applicativi aziendali: elaborazione fatture,

gestione magazzino… Librerie scientifiche matematiche e statistiche.

15

Page 16: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

SISTEMI INFORMATICI O DI CALCOLO

Calcolatori piccoli Calcolatori medi Calcolatori grandi

Calcolatori piccoli (monoutenza, potenza di elaborazione medio bassa).

PC (personal computer): calcolatore a basso costo prodotto per la prima volta dall'IBM nel 1981. È in grado di funzionare autonomamente e di eseguire sequenzialmente le attività.

Modello Desktop: ha dimensioni tali da stare in una scrivania; costituito da un BOX con CPU, memoria centrale e di massa, collegato a tastiera e video.Memorie di massa: disco fisso inamovibile e molto capace (hard-disk: HD) e dischetti rimovibili con capacità ridotta (floppy-disk: FD) o lettori di CD. Informazioni organizzate in ARCHIVI o file con un nome.

Modello NOTEBOOK: dimensioni di un libro o quaderno, con le stesse caratteristiche di un desktop ma non espandibile; alimentato con corrente e batterie.

Home Computer: privi di HD, memoria limitata, adatti per videogiochi.

Microcalcolatore: calcolatore completo costruito attorno a un microprocessore cablato su un solo chip; montati su automobili, elettrodomestici, sistemi di controllo di impianti e di dispositivi (sistemi embedded: interagiscono con una macchina e non un utente).

16

Page 17: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Calcolatori medi: buona potenza di elaborazione, memorie RAM e cache di medio alte dimensioni predisposti per la multiutenza.

WORKSTATION ( stazione di lavoro): usata per applicazioni professionali con processore di elevate prestazioni. Calcolo scientifico con grande velocità di

elaborazione. Applicazioni grafiche (CAD: Computer Aided

Design: necessita di software adatto per la progettazione grafica) richiede buona risoluzione grafica e molta memoria.

MINICALCOLATORI: multiutenza, memorie di massa capaci, buona potenza di elaborazione, con sistemi operativi sofisticati.

Calcolatori Grandi: possono avere uno o più processori, molta potenza di calcolo e grande capacità di memoria (RAM e di massa ); gestiscono centinaia di utenti.

MAINFRAME: gestisce grandi archivi di dati e reti.

CALCOLATORI MULTIPROCESSORI: con una memoria comune (shared) o con memoria distribuita tra i vari processori. Adatti per l'elaborazione scientifica di grandi dimensioni. Necessita di SW specifico. Consentono l'elaborazione di più programmi o all'interno di un programma di più istruzioni simultaneamente.CRAY Y-MP; CRAY C90; … shared memoryCRAY T3E; IBM SP-2 … distributed memory

17

Page 18: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

La capacità di elaborazione di un sistema informatico può crescere aumentando la potenza di un singolo elaboratore , ma la crescita della potenza di elaborazione si può ottenere anche connettendo insieme vari calcolatori in una rete.

Reti di calcolatori: si connettono insieme più calcolatori per aumentare la capacità di elaborazione.

Reti locali (LAN): connettono elaboratori fisicamente vicini (nello stesso ufficio o stabilimento). Si condividono alcuni servizi (stampanti, dischi…). Trasmissione veloce

18

Stampante Disk Server

Work Station

Work Station

Work Station

Work Station

Bus di rete

Page 19: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Reti geografiche (WAN): Collegano elaboratori medio grandi che sono a grande distanza tra loro. Servono per attivare e controllare l'esecuzione di programmi remoti (applicazioni distribuite). Trasmissione più lenta

Calcolatori di grandi dimensioni (host-computer) connessi in rete geografica. Alcuni sono connessi in rete locale.

19

Mini

PC

Rete locale

HOST HOST

HOST

Rete geografica

Terminali locali

Terminali locali

Terminali remoti

Terminali remoti

Page 20: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

ARCHITETTURA DI UN CALCOLATORE

Organizzata secondo il modello della macchina di Von Neumann (1945-Institute for Advanced Study di Princeton).

È costituita da 4 elementi funzionali fondamentali: Unità di elaborazione o unità centrale (CPU) Memoria centrale o primaria Periferiche di ingresso / uscita (input/output) Bus di sistema

CPU: contiene i dispositivi elettronici in grado di acquisire, interpretare ed eseguire le istruzioni del programma ("cervello" che controlla l'elaboratore). Si distingue UC (unità di controllo) e ALU (unità logico aritmetica).

Memoria: contiene le informazioni necessarie ad eseguire un programma (dati ed istruzioni) .

Unità di I/O ( input/output): consentono lo scambio delle informazioni tra l'elaboratore ed il mondo esterno, in ingresso (dall'esterno al calcolatore), in uscita (dal calcolatore all'esterno); fanno parte del calcolatore solo le interfacce di collegamento, mentre i dispositivi sono esterni. MEMORIE DI MASSA.

Bus di sistema: collega gli elementi funzionali; fornisce il supporto fisico per la trasmissione dei dati tra i vari elementi.

20

UNITA' DI ELABORAZIONE CPU

MEMORIA CENTRALE

INTERFACCE DELLE PERIFERICHE

BUS DI SISTEMA

Page 21: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

I componenti logici di un elaboratore sono in corrispondenza biunivoca con le fasi di risoluzione di un problema.

Dispositivi di ingresso (input): permettono l'ingresso delle informazioni dall'esterno all'interno di un calcolatore (dati e istruzioni).

I dati vengono immagazzinati in memoria, che è un dispositivo dove stanno anche eventuali dati generati durante l'elaborazione.

L'Unità Centrale o Processore esegue l'elaborazione vera e propria.

I risultati devono essere manifestati scorrendoli all'esterno mediante l'unità di uscita o di Output.

21

Acquisizione dati

Elaborazione

Visualizzazione dei risultati

Page 22: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

FUNZIONAMENTO DELLA MACCHINA DI VON NEUMANN

L'unità di elaborazione coordina le varie attività. Estrae dalla memoria, decodifica ed esegue le istruzioni.

Le istruzioni comportano manipolazioni di dati (operazioni aritmetiche e logiche) oppure trasferimento di informazioni tra una unità e l'altra.

I trasferimenti avvengono sul bus di sistema che in funzione dell'operazione da fare, abilita il collegamento logico tra due unità. Il collegamento fisico è sempre presente.

Le fasi di elaborazione si succedono in modo sincrono rispetto alla scansione temporale impostata dall'orologio di sistema (CLOCK) che sta nell'unità di elaborazione e stabilisce le funzioni da fare da parte sua o di altre unità nell'intervallo di tempo.

Il modello di Von Neumann è strettamente SEQUENZIALE. Ad esso si ispira la maggior parte dei calcolatori esistenti. Ogni evoluzione prevede di introdurre una qualche forma di parallelismo, cioè di esecuzione contemporanea delle attività elaborative.

22

Page 23: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Unità di ingresso/uscita: Preposte alla comunicazione con il mondo esterno (mezzi periferici). Mediante i mezzi periferici di ingresso, l'utente

trasmette al calcolatore i dati da elaborare e le istruzioni che determinano come operare su di essi, che a questo livello vengono recepite come dati. Tastiera (Keyboard): più semplice dispositivo di

input. Altre unità contraddistinte da funzioni distinte

oltre che da velocità distinte: mouse, lettori di dischi, nastri, convertitori analogici digitali, tavolette digitalizzatrici, scanner…

I mezzi periferici di uscita servono a visualizzare i dati elaborati (risultati) in forma in forma permanente (hard copy) o volatile (soft copy). Hard copy: stampante, dischi, nastri , plotter,… Softcopy: monitor (scrolling, cursore)

Molti mezzi periferici di ingresso (dischi, nastri) possono servire per la registrazione hard copy di risultati, che possono essere riutilizzati come dati di successive elaborazioni.

23

Page 24: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Tastiera: serie di tasti disposti in righe e colonne. Alla chiusura del contatto elettrico del tasto (pressione del tasto) si ottengono direttamente i codici binari che rappresentano: Lettere Cifre Caratteri speciali (barra spaziatrice, segni di

punteggiatura...)

Sono presenti:

Tasti funzione Tasti di direzione ALT + CTRL + CANC, INVIO Tastierino numerico

Tastiere diverse da paese a paese.

TERMINALE:- modo teletype: ciascun carattere immesso mediante la

tastiera viene immediatamente trasmesso al calcolatore;-- modo a blocchi: una intera linea di testo (terminata con il

carattere INVIO) viene immessa in una memoria locale (buffer) e poi inviata in blocco al calcolatore; pertanto è possibile correggere la linea e poi inviarla in blocco.

24

Page 25: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

- MOUSE, TRACKBALL

Dispositivi di puntamento.

Mouse: muovendolo si sposta una pallina interna spostando il cursore sul video; tasto sinistro e destro attivano un comando.

Trackball: si muove una sfera con la mano e il contenitore rimane fermo (si trova nei portatili).

25

Page 26: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

MONITOR: suddiviso in zone (finestre) ciascuna associata ad una specifica elaborazione. Si può allargarle, restringerle, spostarle. Una di esse è la “finestra corrente” (quella su cui compaiono i caratteri digitati da tastiera).Legato al monitor c'è una scheda grafica che traduce le informazioni da visualizzare in informazioni grafiche.

Dimensione: lunghezza della diagonale in pollici (inches); va da 14" a 21" ed oltre.

Risoluzione grafica: numero di pixel che è possibile visualizzare (pixel: picture element);

VGA: 640 X 480SVGA: 800X 600, 1024 X 768, 1280 X1024

Colori: la visualizzazione dei colori avviene mandando sullo schermo fasci di tre colori di base (rosso, verde, blu) attraverso una griglia di piccoli fori; la distanza tra i fori è il DOT PITCH; più piccolo è migliore è la nitidezza dell'immagine;

DOT PITCH: 0.28 - 0.26 mm;per 17 " e 21 " 0.21 mm;

Le immagini vengono generate dall'alto verso il basso molte volte al secondo per evitare lo sfarfallio

26

Page 27: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

(flickering): la frequenza di scansione è misurata in Hz. Modalità di scansione verticale.Modalità interlacciata ( prima le righe dispari poi le pari).FLAT SCREEN: riducono i riflessi.

Adattatore (scheda grafica): caratterizzata dalla massima risoluzione che può supportare.

Memoria VRAM (RAM video): deve essere sufficiente a contenere per ogni pixel uno dei possibili colori:- 1 byte serve per 256 colori;- 2 byte per 65535 colore;

Se si ha la risoluzione di 1024 X 768, occorrono 1024 X 768 X 2 bytes per avere 65535 colori per ogni pixel (=1573000 byte – 1.5 M bytes)

La risoluzione del video deve essere maggiore o uguale di quello della scheda.

27

Page 28: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

STAMPANTI: ad aghi, a getto d'inchiostro, laser…

Risoluzione grafica: dpi (dots per inches) dove un pollice è 2.54cm.

Velocità di stampa: caratteri al secondo, pagine al minuto.

28

Page 29: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Modem (Modulatore/Demodulatore): trasforma segnali digitali in segnali analogici per il trasferimento attraverso via telefonica ad altri elaboratori.

Velocità di trasmissione: misurata in baud (bit per secondo)

29

Page 30: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

MEMORIA (Primaria o Centrale): è un deposito in cui sono contenute in forma indistinta tutte le informazioni per l'unità logico aritmetica (dati) e l'unità di controllo (istruzioni). Conserva le informazioni fornendone una copia se richiesta.

È una successione di elementi bistabili (indipendentemente dalla natura fisica dei singoli componenti, ciascuno di essi può assumere solo due stati), detti bit (binary digit). Il bit è la più piccola unità di informazione: consente di memorizzare una sola tra due informazioni, denotate per la convenzione come 1 e 0 ( i due simboli dell'alfabeto binario).

Memoria centrale: contiene tutta l'informazione che deve essere elaborata a breve termine.

Ogni elemento di informazione, per poter essere elaborato, deve prima essere acquisito dalla memoria centrale.

Ha dimensioni ridotte, costo elevato, tempo di accesso basso.

Ciclo di memoria: tempo necessario a trasferire informazioni tra memoria e CPU; si misura in millisecondi, microsecondi, nanosecondi.

Memorie non volatili: conservano le informazioni anche in assenza di alimentazione.Memorie volatili: perdono tutti i dati in assenza di alimentazione.

30

Page 31: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

ROM (Read only Memory)

MEMORIA PRINCIPALE

RAM (Random Access Memory)

ROM: memoria in cui non è possibile alterare lo stato delle cifre binarie, ossia delle informazioni memorizzate; è memoria non volatile in cui sono registrate (dalle case costruttrici) programmi di gestione della macchina (procedure di avviamento della macchina, di caricamento in memoria del Basic I/O System (BIOS) , diagnostica per errori hardware).RAM: lo stato delle cifre può venire alterato oppure anche venire letto (memoria a lettura / scrittura). È una memoria volatile, usata come area di memoria principale per conservare i dati e programmi in cui il processore opera al momento. È una quantità limitata di memoria, molto veloce. Random Memory significa che la memoria è ad accesso diretto, ossia per accedere ad una informazione non è necessario scandire tutte le precedenti: il tempo per accedere ad una informazione non dipende dalla sua posizione ed è uguale ( ciclo di memoria). Anche le memorie ROM sono ad accesso diretto.

Accanto all'unità di memoria primaria, contenente le informazioni strettamente necessarie per l'elaborazione corrente, molto veloce ma limitata e costosa ci sono MEZZI DI MEMORIZZAZIONE SECONDARIA.

31

Page 32: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

MEMORIE

32

Statiche: SRAM non devono essere rinfrescate. Memoria preferita con minor tempo di accesso (flip flop). Registri e memoria di CPU.Dinamiche: DRAM rinfrescate ogni pochi millisecondi; sono transistor MOS; Memoria Centrale: tempo di accesso più elevato di SRAM.

ROM: read only memory; contiene Firmware (BIOS , Bootstrap)EROM: erasable ROM mediante raggi ultravioletti;Prom: programmabileEprom: cancellabile e programmabileEarom: cancellabile elettronicamente e riprogrammabile.

A semiconduttoreRAM:tempo di accesso dell’ordine dei microsecondi, indipendente dalla posizione.

VOLATILI (RWM)

NON VOLATILI (ROM)

Sequenziali (SAM): il tempo di accesso di pende dalla posizione del dato (nastri, cassette).

Semirandom: dischi magnetici ed ottici; il tempo di accesso ad un dato è dell'ordine dei millisecondi.

Magnetiche: memorie di massa

Page 33: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

ORGANIZZAZIONE DELLA MEMORIA PRIMARIA

È costituita da una successione di elementi, che indipendentemente da come sono costituiti fisicamente, possono assumere solo due stati, denotati , per convenzione, con i simboli 1 e 0 dell'alfabeto binario e perciò detti bit.Il bit è l'unità elementare di informazione.Ogni informazione è codificata mediante una successione di bit.

LA TOTALITA’ DEI BIT È SUDDIVISA IN BYTE O CARATTERI. OGNI BYTE È COSTITUITO DA UN NUMERO PREFISSATO (DALLA CASA COSTRUTTRICE) DI BIT.TIPICAMENTE 1 BYTE = 8 BIT.

Pertanto in un byte è possibile rappresentare 256 informazioni diverse.

IL BYTE È L'UNITA’ INDIRIZZABILE DELLA MEMORIA.

Ad ogni byte è associato in modo univoco un indirizzo che rappresenta la posizione che occupa il byte in memoria.

LA MEMORIA PUO' ESSERE VISTA COME UNA SUCCESSIONE DI LOCAZIONI INDIRIZZABILI, OSSIA DI BYTE CONSECUTIVI, CON INDIRIZZI SEQUENZIALI DA 0 ALL'ULTIMO BYTE DI MEMORIA; OGNI ELEMENTO DI MEMORIA È UNIVOCAMENTE REPERIBILE DALL'UNITA' DI CONTROLLO.

0000 0001 0002 …. FFFF

INIZIO FINE

33

Page 34: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

PER CONVENZIONE SI USA RAPPRESENTARE IL CONTENUTO DI UN BYTE E IL SUO INDIRIZZO IN ESADECIMALE.

Contenuto di un byte (informazione);

0F0A(16): indirizzo del byte (posizione fisica in memoria).35(16): contenuto ( i bit sono esaminati da sinistra a destra).

Parola (WORD): è un byte od un multiplo pari di byte, il cui valore è prefissato dalla casa costruttrice.Una Word è il numero di bit che l'unità centrale può elaborare nell'unità di tempo (Clock period: CP).

Per rappresentare un indirizzo si usano una o più parole.

(Intel 286 a 16 bit, 386 e 486 a 32 bit, Pentium a 32 bit, Alpha a 64 bit)Esempio:Calcolatore a 8 bit: word di 8 bit, dunque si possono indirizzare 256 byte, con indirizzi da 0 a 255.Calcolatore a 8 bit con due word per gli indirizzi: si possono indirizzare 216 byte.Calcolatore a 16 bit ( 1 Word = 16 bit) con una word per gli indirizzi: si può avere una memoria di al più 64Kbyte; con 2 word per gli indirizzi si può avere una memoria di 4 Gbyte.

UNITA' DI MISURA PER LA CAPACITA' DI MEMORIAKilobyte: 210 byte: 1024 byteMegabyte: 220 byte: 1048576 byteGigabyte: 230 byte: 109 byteTerabyte: 240 byte: 1012 byte

34

0|0|1|1|0|1|0|1

Page 35: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

MEMORIA CENTRALE (INDIRIZZAMENTO)

L'UNITA' CENTRALE ACCEDE A UNA LOCAZIONE DI MEMORIA MEDIANTE 2 REGISTRI (MDR e MAR).La CPU seleziona una delle celle di memoria mettendo l'indirizzo nel registro indirizzi (MAR).

Operazione di lettura (Fetch-load): carica il registro dati (MDR) con il contenuto della cella di memoria indirizzata da MAR; il contenuto della cella di memoria è lasciato inalterato.

Operazione di scrittura (Store): deposita il contenuto del registro dati (MDR) nella cella di memoria indirizzata nella MAR. Il precedente contenuto della cella di memoria è perso.

Se non ci sono operazioni la memoria è rilasciata.In pratica: i circuiti elettronici della memoria vengono opportunamente collegati in modo che i valori di tensione vengano trasmessi ordinatamente.

MAR STORE LOAD

MDR

k bit h bit

35

Page 36: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Tutto avviene sotto il controllo dell'unità di elaborazione che carica il registro MAR e ordina il trasferimento di MDR in memoria e viceversa attraverso il BUS.

IL TEMPO DI ACCESSO AD UNA LOCAZIONE DI MEMORIA È INDIPENDENTE DALL'INDIRIZZO ED È UN MULTIPLO DELL'UNITA' DI TEMPO; È DETTA CICLO DI MEMORIA.

36

Page 37: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

MEMORIA SECONDARIA (di massa )

Dispositivi per la memorizzazione permanente di informazioni: più lenti (costituiti da dispositivi meccanici oltre che elettronici) ma anche più capaci, con un costo decisamente inferiore rispetto alla memoria centrale.Usata anche come mezzo di I/O.

Le informazioni giacciono in forma strutturata detta file. Ogni unità mantiene un indice dei file residenti detto "directory" ( o direttorio) che ne permette un rapido reperimento.

Ogni direttorio ha un numero limitato di posizioni; in ogni posizione è registrato il nome di un file ed una serie di informazioni (lunghezza del file, posizione di inizio, tipo di file…). Per cancellare un file di cancellano le sue informazioni dal direttorio senza cancellarlo fisicamente.

Le unità di memorizzazione secondaria si distinguono in : Unità ad accesso sequenziale (per reperire una informazione

occorre scandire tutte le precedenti - nastro) Unità ad accesso diretto (il tempo per reperire una

informazione è quasi identico indipendentemente dalla posizione - disco)

Ci sono interfacce HW e SW tra memoria secondaria e centrale. L'informazione è registrata come dato di magnetizzazione positivo o negativo (cifra binaria).

37

Page 38: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

NASTRI MAGNETICI

ARROTOLATI SU SUPPORTI CIRCOLARI.CAPACITA' FINO AL GBYTE.

Sulla fettuccia sono inserite delle piste orizzontali parallele; per esempio 9 piste parallele di cui 8 corrispondono a 1 byte e la nona è il bit di parità (per controllo di errori di trasmissione).

123456789 bit di parità

I dati su nastro sono organizzati in zone contigue detti RECORD (registrazioni) separate da zone prive di informazioni (inter record gap).Tutte le elaborazioni sono sequenziali (con conseguente lentezza di lettura / scrittura). Si misura la densità di memorizzazione in bit per inch (bpi).

SVOLGONO SOLO UNA FUNIONE DI COPIA DI RISERVA (BACKUP).

38

Page 39: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

DISCHI MAGNETICI

UN DISCO CONSTA DI UN CERTO NUMERO DI PIATTI, CIASCUNO CON DUE SUPERFICI CHE RUOTANO INTORNO AD UN PERNO CENTRALE. Per ogni superficie (eccetto le due esterne) c’è una testina di lettura/scrittura.Ogni superficie è suddivisa in una serie di cerchi concentrici o TRACCE ed in spicchi di eguale grandezza detti SETTORI.La testina si sposta longitudinalmente lungo le tracce. Tutte le tracce equidistanti dal centro formano un CILINDRO.

Traccia 0 Traccia 100Traccia 200

Settore

I DATI SONO SCRITTI OCCUPANDO POSIZIONI SUCCESSIVE LUNGO LE TRACCE.

BLOCCO: selezionabile mediante una terna di valori (superficie, traccia, settore); le informazioni vengono lette e scritte su un blocco mediante una sola operazione.

CONTROLLER del disco: è un dispositivo hardware che dirige, controlla e sincronizza le operazioni di I/O e trasferisce le informazioni da e verso il calcolatore; il controller influenza le prestazioni di accesso al disco (IDE, EIDE, SCSI).

In memoria principale, ci sono BUFFER per il trasferimento delle informazioni.

39

Page 40: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

DISCHIOperazioni di I/O: comportano uno spostamento della testina (seek) sulla traccia richiesta, una rotazione fino a che il settore arriva sotto la testina e un tempo di trasferimento dati (solitamente eseguito dal controller, che è un processore dedicato, senza interferire con la CPU attraverso DMA, direct memory access).

TI/O = Tseek + Trotazione/2 + Ttrasferimento

Tseek è il tempo più lungo.Per dischi a teste rigide (una testina per ogni traccia) il tempo Tseek non c’è.

DISCHETTI (FLOPPY DISK)Hanno due superfici e 2 testine di lettura/scrittura. Tipica dimensione è 3.5 pollici. Devono essere formattati (ossia divisi in settori) dal sistema operativo prima di essere usati; ciò specifica la densità dei bit e la capacità (720 Kbytes o 1.44 Mbytes)

DISCHI OTTICIDischi simili ai Compact Disk (CD) con lo stesso funzionamento; possono essere di tre tipi: eraseable (scrivibili dall’utente) Read-Only (a sola lettura o normali CD-ROM) WORM (Write Once Read Many) (possono essere scritti una sola volta)Hanno grande capienza (fino al Gigabyte), piccole dimensioni, possibilità di memorizzare immagini e/o suoni e sono rimovibili. Sono più lenti di un HD.

Tipo di memoria Capacità(Mbyte) Tempo di accesso Memoria centr. 1-256 O(nanosecondi)Floppy disk 3.5" 360 K, 720 K 100 millisecondi

1440 KHard disk O(Gigabyte) 10-20 millisecondiCD ROM O(Gigabyte)Nastro magnetico 20-400Bobina/cassetta 200-4000

40

Page 41: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

BUS DI SISTEMA

Interconnette CPU, memoria centrale ed interfacce di I/O.

COLLEGAMENTO APERTO, non limitato agli estremi.

AD OGNI ISTANTE, connette due unità funzionali logicamente: una trasmette le informazioni, l'altra riceve.

SEMPRE sotto il controllo della CPU: connette CPU e memoria, oppure CPU ed una periferica.CPU: è MASTER; altre unità funzionali connesse sono SLAVE.Fisicamente è una serie di linee attraverso cui fluisce l'informazione:Bus dati: bidirezionale; trasmette dati da memoria a MDR o viceversa;Bus indirizzi: unidirezionale; trasmette un indirizzo da MAR alla memoria.Bus comandi: bidirezionale; MASTER comunica a slave l'istruzione da eseguire; SLAVE avverte MASTER del completamento dell'elaborazione.

Trasmissione di dati in PARALLELO: un bit su ciascuna linea. Se ci sono sufficienti linee, si possono trasmettere in parallelo parole, altrimenti sono necessari più trasferimenti per ogni parola. Ciò influisce notevolmente sulla velocità di elaborazione.

41

Page 42: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Esempio.

Operazione di LOAD di un dato dalla memoria.

La CPU deve:- inserire l’indirizzo della cella di memoria desiderata in MAR;

esso viene comunicato alla memoria tramite il bus indirizzi;- comunicare il codice di una operazione di LOAD alla memoria

attraverso il bus comandi.

La memoria può:- leggere il contenuto della cella selezionata e inviarlo attraverso

il bus dati a MDR;- inviare sul bus comandi alla CPU l’informazione che

l’operazione è completata.

Operazione di STORE di un dato in memoria.

La CPU deve:- caricare in MAR l’indirizzo della cella di memoria interessata e

inviarlo attraverso il bus indirizzi alla memoria;- caricare il dato in MDR, avviandolo verso la memoria

attraverso il bus dati;- inviare il codice dell’operazione di STORE alla memoria

mediante il bus comandi.

La memoria può:- scrivere il dato all’indirizzo specificato;- inviare un segnale alla CPU sul bus comandi di completamento

dell’operazione.

42

Page 43: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Esistono vari tipi di Bus dati che differiscono oltre che per la lunghezza della parola trattata anche per la PORTATA (numero di bit trasferiti nell'unità di tempo): Bus ISA (Industry Standard Architecture) 16 bit, bassa portata Bus EISA (Extended ISA), MCA (Micro Channel

Architecture), bus VESA Bus PCI (Peripherical Central Interface) 64 bit

Un bus può funzionare in vari modi: Multiplexer mode: trasmissione delle informazioni con più

unità periferiche per volta (con opportuna ripartizione del tempo tra le varie unità)

Selector mode: trasmissione delle informazioni con una periferica per volta (fino a che la trasmissione non è completata)

43

Page 44: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

INTERFACCE DI INGRESSO / USCITA

Consentono il collegamento dell'elaboratore con le varie periferiche.SONO MOLTO DIVERSE TRA LORO, A SECONDA DEL TIPO DI PERIFERICA (POSSONO ESSERE INTELLIGENTI).

INTERFACCIA STANDARD ELEMENTARE: Registro dati della periferica ( RDP) per scambiare dati con al

periferica; lo scambio può avvenire verso la periferica (stampante) o verso l'elaboratore (lettore ottico). Un terminale ha un registro verso l'elaboratore ed uno verso il video.

Registro comando (RCP): contiene il comando che la periferica deve eseguire.

Informazione sullo stato della periferica (rivelazione di errori).

RDP è collegato al bus dati.RCP è collegato al bus comandi.

L'informazione sullo stato va su un registro speciale (RS) di stato, letto a comando dalla CPU oppure nel registro interruzione della CPU (RINT).

44

Page 45: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

UNITA’ DI ELABORAZIONE (CPU)

UNITA' DI CONTROLLO (UC)UNITA' LOGICO ARITMETICA (ALU)Registri e clock di sistema.

ALU

ALU: preposta al calcolo in senso stretto; costituita da costosi e veloci circuiti integrati; esegue operazioni aritmetiche (+, -, * , /), operazioni logiche (or, not, and, confronto, scorrimento).Sono presenti registri accumulatori per operandi e/o risultati intermedi di operazioni.

1) Registri acc.: vengono caricati con operandi.2) UC invia codice che mette in funzione il circuito associato

all'operazione richiesta;3) Risultato viene scaricato su un registro acc. (A);4) RS riporta nei suoi bit indicazioni sull'operazione.

Tutto avviene in un Clock Period.

45

PC

IR

RINT

MAR MDR

UC

Acc.B

Acc.A

RS

CLOCK

Page 46: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

RS (registro di stato): Bit carry: indica la presenza di un riporto (serve per confronti) Bit zero: indica la presenza di un valore nullo in un particolare

Registro acc. (A) Bit segno: riporta il segno del risultato di una operazione Bit overflow: consente di rilevare l'overflow quando due

operandi dello stesso segno sommati danno luogo a un risultato di segno contrario.

UC: funzioni decisionali e di coordinamento; sezione amministrativa del calcolatore.Realizza ogni funzione per reazione a un preciso comando (istruzione).

Esegue in continuazione il cosiddetto ciclo dell'istruzione: Prelevamento dalla memoria dell'istruzione che viene posta in

IR (registro dell'istruzione corrente) Decodifica dell’istruzione e individuazione di: Codice operativo Operandi Caricamento operandi Esecuzione Riconosciuto il completamento dell'elaborazione carica la

successiva istruzione.

La direzione dei compiti è formulata dall'utente mediante un programma, memorizzato in memoria in forma indistinta rispetto ai dati (concetto di programma memorizzato di Von Neumann).

46

Page 47: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Le istruzioni vengono introdotte come i dati mediante una unità di ingresso in memoria, ove giacciono in forma indistinta rispetto ai dati

Ogni istruzione contiene in campi di lunghezza prefissata le seguenti informazioni:codice operativo : codice corrispondente all'insieme di

impulsi che attivano il circuito associato a una specifica funzione

indirizzo degli operandi e del risultato indirizzo della prossima istruzione da eseguire

Poiché le istruzioni sono in genere caricate in locazioni consecutive nello stesso ordine in cui sono eseguite, si può omettere l'ultimo campo.Nell'UC esiste un registro, detto “Contatore di programma” o PC, inizialmente caricato con l'indirizzo della prima istruzione da eseguire e che, per ogni istruzione caricata, viene incrementato in modo da puntare in ogni momento alla prossima istruzione da eseguire. Esistono istruzioni che alternano il contenuto del PC in modo da provocare trasferimenti di controllo da istruzioni non consecutive (salti condizionati ed incondizionati, cicli).

Per quanto riguarda i campi degli indirizzi degli operandi e del risultato esistono istruzioni a tre indirizzi, due indirizzi, un indirizzo.

47

Page 48: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

La lunghezza s in bit di una istruzione dipende dal numero di bit h della parola (s=h, una istruzione in una parola, oppure s=2h, una istruzione in due parole…). In generale s=m+r*n, ove m è il numero di bit per il codice operativo, r è il numero di operandi e n il numero di bit per la rappresentazione dell’informazione relativa a dove reperire un operando.

SET DELLE ISTRUZIONI: è l’insieme delle diverse istruzioni eseguibili; il loro numero è non superiore a 2m.

48

Page 49: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

MACCHINE A TRE INDIRIZZI

MACCHINE A DUE INDIRIZZI

Il risultato viene memorizzato all'indirizzo del II operando, perdendo quest'ultima informazione. Pertanto se si vuole salvare occorre prima eseguire una istruzione di trasferimento in un'altra cella di memoria.

MACCHINE AD UN INDIRIZZO

Si servono di un accumulatore per memorizzare il secondo operando ed il risultato. Servono due istruzioni in più per ogni accumulatore presente nella macchina, per caricare il contenuto di una locazione di memoria nell'accumulatore e viceversa per scaricare il risultato a una certa locazione di memoria.

49

Codice operativo Indirizzo II op. Indirizzo risultatoIndirizzo I op.

Codice operativo Indirizzo II op.Indirizzo I op.

Codice operativo Indirizzo operando

Page 50: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Dal momento dell'avviamento della macchina fino allo spegnimento , l'UC esegue in continuazione il ciclo di esecuzione dell'istruzione: UC carica nel registro istruzione IR il contenuto della locazione

indicata da PC. PC viene incrementato per puntare alla nuova istruzione Decodifica (separazione codice operativo da informazioni su

operandi) Reperimento operandi che vengono portati dalla memoria

all'ingresso del circuito dell'ULA associato al codice operativo. Attivazione del circuito Memorizzazione del risultato

Ogni funzione è sincronizzata dall'orologio del sistema che misura il tempo in unità di tempo (CP).

UC

50

PC IRINDIRIZZO ISTRUZIONE

MEMORIAISTRUZIONE

ISTRUZIONE

MAR MDR

Page 51: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

ESECUZIONE DELLE ISTRUZIONI

Comporta 3 fasi: ACQUISIZIONE della memoria dell'istruzione (FETCH) DECODIFICA ESECUZIONE

Acquisizione della memoria (FETCH)Richiede l'esecuzione di 4 microistruzioni:

PC->MAR

Memoria (MAR)->MDR

MDR->IR

PC+1->PC

DecodificaSi individua il codice operativo.

EsecuzioneSi recuperano dalla memoria gli eventuali operandi. Si attiva il circuito preposto alla funzione associata al codice operativo. Si memorizza l’eventuale risultato.

51

Page 52: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

CLOCK (orologio di sistema)

Affinché il trasferimento dei dati ed istruzioni tra le varie componenti possa avvenire correttamente, occorre che queste siano sincronizzate.È stato introdotto un segnale di sincronizzazione generato da un dispositivo HW detto clock: è un oscillatore che lancia un segnale ad intervalli di tempo regolari; la sua frequenza è misurata in MHz (milioni di hertz), dove 1 Hz è una oscillazione al secondo.

Tipici valori: Pentium a 160 MHz, a 200 MHz, Alfa a 500 MHz…

Ciclo di clock: T=1/f, ove f è la frequenza dell'oscillatore; dall'ordine del milionesimo di secondo o del miliardesimo di secondo (nanosecondi)

ISTRUZIONE ELEMENTARE: eseguita in un ciclo di Clock.

Altre unità di misura per il confronto tra calcolatori:1 MHz: un milione di oscillazioni al secondo1 mips: un milione di istruzioni elementari al secondo1 Mflop: un milione di operazioni floating point al secondo1 Gflop: un miliardo di operazioni al secondo di tipo floating point

52

Page 53: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Pur variando da elaboratore ad elaboratore, l'insieme delle istruzioni attorno a cui si sviluppa un sistema di calcolo permette sempre di effettuare le seguenti funzioni fondamentali: Operazioni aritmetico logiche; Controllo di condizioni logiche Trasferimento da una locazione all'altra e scorrimento delle

cifre Istruzioni di ingresso ed uscita Arresto

ARCHITETTURE DEI MICROPROCESSORI

CISC (Complete Instruction Set Computing): ha molte istruzioni realizzate ad HW, sia elementari che complesse. I processori per PC (Intel e Motorola ) sono di tipo CISC. Processori Intel: 80386, 80486, Pentium (PC IBM e

compatibili). Processori Motorola: adottati da Apple per Macintosh.

RISC (Reduced Instruction Set Computing): poche istruzioni elementari realizzate ad HW in modo efficiente (le istruzioni complesse sono realizzate via SW come combinazioni di quelle elementari); tra i più efficienti l'Alpha (Digital). L'architettura RISC consente un notevole aumento di velocità di elaborazione, anche se le istruzioni complesse richiedono un maggior tempo di quello necessario per fare la stessa funzione via HW su CISC; Infatti mediamente il numero di istruzioni complesse in un programma è basso.(Power PC Motorola, Sun Sparc, Digital Alpha)

INTEL continua a progettare CISC; il SW di base che gestisce CISC deve essere riscritto per RISC.

53

Page 54: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Estensione della macchina di Von Neumann

La macchina di Von Neumann ha come problema la stretta sequenzialità imposta dalle operazioni; modifiche nell'architettura di Von Neumann consistono nell'introdurre del parallelismo: Processori dedicati (coprocessori)

Calcolo Gestione della grafica I/O

Esecuzione in parallelo delle varie fasi di una istruzione (parallelismo)

Architetture multiprocessore, dataflow, sistoliche Gerarchie di memorie

Registri, cache, memoria locale, memoria centrale, memoria di massa (dalla più veloce alla meno veloce, dalla meno capace alla più capace)

54

Page 55: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

COPROCESSORE: processore diverso dal processore principale che esegue funzioni sussidiarie; per esempio coprocessore matematico esegue più rapidamente i calcoli matematici con numeri a virgola mobile (numeri finiti).

Molti microprocessori sono in grado di effettuare solo operazioni di interi. Operazioni tra numeri finiti sono effettuate scomponendole in sequenze di operazioni tra interi, con conseguente aumento del tempo di calcolo.

Per evitare tale inconveniente, per applicazioni di calcolo scientifico e di grafica, alla CPU si affianca un coprocessore matematico che esegue mediante circuiti HW e dunque in modo notevolmente più veloce le operazioni tra numeri finiti.

MEMORIA CACHE: Memoria di capacità limitata formata da SRAM molto veloce posta tra il microprocessore e la memoria centrale.

La prima volta che il microprocessore carica dai dati dalla memoria centrale tali dati sono caricati nella cache. Successivamente i dati sono prelevati dalla cache anziché dalla memoria centrale più lenta.

Sfrutta le caratteristiche di LOCALITA' spaziale e temporale tipica dei programmi.

Problemi di COERENZA tra dati contenuti in cache e memoria.

55

Page 56: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

CONFRONTO TRA CALCOLATORI

Ciclo di CLOCK : più è basso più è veloce l'elaborazione; TEMPO DI ACCESSO IN MEMORIA (presenza di una cache

e sue dimensioni); Caratteristiche del bus; Presenza di un coprocessore matematico (valutare mips o

Mflop) ha importanza per chi fa calcolo scientifico; VELOCITA' DI ACCESSO AL DISCO E VELOCITA' DEL

CONTROLLER (è importante per chi fa molta gestione di dati, come le aziende)

ESPANDIBILITA' DEL SISTEMA (numero di slot - prese di espansione); espansibilità della memoria RAM, della memoria Video, …

QUANDO SI ACQUISTA UN CALCOLATORE, VALUTARE LE SUE PRESTAZIONI ATTRAVERSO

BENCHMARK (insieme di programmi tipici di applicazioni che l'utente vuole elaborare)

56

Page 57: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

LA DIREZIONE DEI COMPITI DEVE ESSERE FORMULATA DALL'UTENTE MEDIANTE LA COSTRUZIONE DI UNA LISTA DI ISTRUZIONI O "PROGRAMMA", INTRODOTTO INSIEME AI DATI MEDIANTE UN DISPOSITIVO DI INGRESSO IN MEMORIA ED IVI RESIDENTE (PROGRAMMA MEMORIZZATO DI VON NEUMANN).

Ogni programma per essere eseguito direttamente dalla macchina deve essere scritto direttamente in linguaggio macchina. Ogni elaboratore ha il suo linguaggio macchina strettamente legato alle caratteristiche dell’hardware.

LINGUAGGIO MACCHINA: insieme di istruzioni scritte secondo regole sintattiche fissate immediatamente interpretabili ed eseguibili dall’unità di controllo.

È necessario: ricordarsi tutti i codici (che cambiano da macchina a macchina) gestire gli indirizzi completamente, indirizzando alcune

locazioni alle costanti conoscere l'architettura

Il programma è: non "portabile" su altre macchine poco leggibile (comprensibile) difficilmente modificabile alta probabilità di commettere errori e difficoltà nel

rintracciarli

LINGUAGGIO ORIENTATO ALLA MACCHINA E NON AL PROBLEMA: se si conosce alla perfezione l'architettura si ottengono programmi altamente efficienti!!!

57

Page 58: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

ESEMPIO:Supponiamo di avere una macchina in cui ogni istruzione è codificata in una LOCAZIONE DI MEMORIA costituita da 16 bit, di cui 4 servono per il campo del codice operativo e 12 per il campo dell’indirizzo di un solo operando, se è necessario specificarlo.

Codici operativi (al più 16)

0000 LOADA caricamento nel registro accumulatore A :(w) ->(A)0001 LOADB

caricamento nel registro accumulatore B: (w)->(B)0010 STOREA

memorizzazione del contenuto dell'accumulatore A all'indirizzo specificato (A)->(w)

0011 STOREBmemorizzazione del contenuto dell'accumulatore A all'indirizzo specificato (B)->(w)

0100 READlettura di un dato e memorizzazione nella locazione di indirizzo w ; input ->(w)

0101 WRITEstampa del contenuto della locazione di indirizzo w; (w)->output

0110 ADD:somma (A)+(B) ->(A)0111 DIF: differenza (A)-(B) -> (A)1000 MUL:prodotto (A)*(B)->(A)1001 DIV: quoziente (A):(B)->(A); resto in (B)1010 JUMP: salto incondizionato all’indirizzo w: (w)->(PC)1011 JUMPZ: salto all’indirizzo w se (A) =0 1101 HALT:fine elaborazione

58

Page 59: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Ogni istruzione è eseguita mediante una serie di microistruzioni.

LOADA o LOADBOP(IR)->MARMemoria (MAR)->MDRMDR->A o B

STOREA o STOREBA o B-> MDROP(IR)->MARMDR->memoria(MAR)

READ RDP->MDROP(IR)->MARMDR ->memoria(MAR)

WRITEOP(IR)->MARMemoria(MAR)->MDRMDR->RDP

ADD, DIF, MUL, DIVA+B->AA-B->AA*B->AA/B->A resto ->B

JUMPOP(IR)->PC

JUMPZSe il bit zero di RS contiene 1, OP(IR)->PC

59

Page 60: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

Il seguente programma legge i due dati I e F, ne esegue la somma e visualizza il risultato.

Indirizzo di memoria Contenuto CO |Operando

Ingresso di I e F 0-0000 READ I 0100 000000001000 1-0001 READ F 0100 000000001001

K<-I+F 2-0010 LOADA I 0000 0000000010003-0011 LOADB F 0001 0000000010014-0100 ADD 0110 000000000000

5-0101 STOREA K 0010 000000001010Stampa K 6-0110 WRITE K 0101 000000001010Stop 7-0111 HALT 1101 000000000000Spazio memoria 8-1000 spazio riservatoSpazio memoria 9-1001 spazio riservato

10-1010 spazio riservato

Per mandare in esecuzione il programma in PC (program counter) viene caricato l'indirizzo 0.

60

Page 61: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

MODALITA’ DI INDIRIZZAMENTO

diretto: il campo operando dell’istruzione contiene l’indirizzo assoluto della locazione di memoria in cui sta l’operando (un accesso in memoria);

indiretto: il campo operando contiene l’indirizzo della locazione di memoria ove sta l’indirizzo dell’operando (due accessi in memoria);

tramite registro indice: l’indirizzo dell’operando si ottiene sommando il contenuto del campo operando con il contenuto di un registro speciale, detto registro indice (I); si usa per accedere a una serie di parole consecutive che seguono una data locazione, il cui indirizzo viene messo nel registro indice;

immediato: l’operando è contenuto nel campo operando.

Per codificare i 4 diversi modi di indirizzamento, possono essere usati i primi due bit del campo operando:

0 indirizzamento diretto01 indirizzamento indiretto10 indirizzamento tramite registro indice11 indirizzamento immediato

61

Page 62: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

LINGUAGGIO SIMBOLICO (Assembler)

Codici operativi delle istruzioni sono sostituiti con nomi mnemonici (corrispondenti al codice numerico)

Rappresentazione degli indirizzi di memoria con nomi di fantasia (modo simbolico) detti etichette

Esistono direttive per la gestione della memoria

UN PROGRAMMA ASSEMBLER DEVE ESSERE TRADOTTO IN LINGUAGGIO MACCHINA

La conversione è eseguita da un: ASSEMBLATORE: programma fornito in linguaggio macchina fornito

dalla casa costruttrice che esegue il procedimento meccanico di tradurre, detto PROCESSO DI ASSEMBLAGGIO:L'assemblatore viene eseguito, caricandolo in memoria, usa come dato il programma sorgente, scritto in Assembler e produce come risultato un programma oggetto, scritto in linguaggio macchina che può essere eseguito. Eventualmente l'assemblatore può effettuare una rilocazione.

VANTAGGI L'utente può conoscere i codici e programma in modo da non

conoscere gli indirizzi facile modifica del programma e facile localizzazione degli erroriSVANTAGGI: programma non portabile corrispondenza 1-1 tra istruzioni macchina e Assembler linguaggio orientato alla macchina

62

ASSEMBLATORE

PROGRAMMA SORGENTE IN ASSEMBLER

PROGRAMMA OGGETTO IN LINGUAGGIO MACCHINA

FASE DI ASSEMBLAGGIO

MEMORIA PRINCIPALE

Page 63: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

ESEMPIO:

READ IREAD FLOADA ILOADB FADDSTOREA KWRITE KHALT

I: int 1F: int 1K: int 1

Etichette:I, F, K sono nomi di fantasia associati a locazioni di memoria che contengono i dati su cui lavora il programma.

Dichiarative:int: istruzione dichiarativa che avvisa l’assemblatore di lasciare una locazione vuota.

Modi di indirizzamento:LOADA F diretto: l’operando è contenuto all’indirizzo FLOADA @F indiretto: l’operando è contenuto all’indirizzo contenuto in FLOADA F(I) tramite registro indice: l’operando è contenuto all’indirizzo dato dal contenuto di F sommato al contenuto del registro indiceLOADA #F immediato: l’operando è il valore di F

63

Page 64: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

ESEMPIO: SOMMA DI N NUMERI

READ N ; input NLOADA #0 ; S<-0STOREA SLOADB #0 ; I<-0STOREB I

CICLO: LOADA NDIF ; N<- N-IJUMPZ STAMPAREAD XLOADA S

LOADB XADD ; S<-S+XSTOREA SLOADA ILOADB #1ADDSTOREA I ;I<-I+1LOADB IJUMP CICLO

STAMPA: WRITE SHALT

N: int 1S: int 1I: int 1X: int 1

CICLO, STAMPA, N, S, I, X sono ETICHETTE di indirizzi di memoria. Ogni volta che si fa riferimento ad un indirizzo di memoria, si usa il nome simbolico ad esso associato. Le costanti sono introdotte direttamente (#0, #1,...)

DIFFERENZA TRA VARIABILI E COSTANTI

64

Page 65: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

LINGUAGGI EVOLUTI

Si sviluppano a partire dagli anni '60 e non sono più orientati alla macchina, ma alla mentalità dell'utente ed al problema da risolvere (FORTRAN, C, PASCAL,..). Sono linguaggi SIMBOLICI (indirizzi di memoria rappresentati con simboli)

Si possono usare su una qualunque macchina dotata di programma traduttore

PORTABILITA' DEI PROGRAMMI

Non è più richiesta la conoscenza dell'HW e dei codici operativi delle istruzioni.

IL PROGRAMMATORE DEVE CONOSCERE alfabeto sintassi del linguaggio evoluto semantica

La macchina diventa una scatola nera. La corrispondenza tra una istruzione di linguaggio evoluto ed una di linguaggio macchina diventa 1 a più .

LINGUAGGI DI PROGRAMMAZIONE65

Page 66: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

FORTRAN (FORmula TRANslator) e C per elaborazione scientifica

COBOL (COmmon Businness Oriented Language) per applicazioni gestionali

Linguaggi basati nello STUDIO dei PRINCIPI DI PROGRAMMAZIONE: ALGOL 60 (non utilizzato molto nella pratica) Pascal (diffusi per la didattica dell'informatica) C (costruzione di sistemi informatici) ADA (prescelto dal Ministero della Difesa degli USA)

Sono tutti linguaggi imperativi.

PROGRAMMAZIONE AD OGGETTI: si mantiene una corrispondenza tra gli oggetti che caratterizzano una applicazione e la loro codifica.LINGUAGGI AD OGGETTI (C++, VISUAL BASIC...): le istruzioni sono associate agli oggetti.

Linguaggi orientati alla logica matematica: LISP basato sul concetto di funzione (linguaggio

funzionale) PROLOG basato sul formalismo della logica matematica

(linguaggio dichiarativo)

66

Page 67: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

LINGUAGGI EVOLUTI

LINGUAGGI INTERPRETATIVI

si dividono in:{LINGUAGGI COMPILATIVI

.. a seconda della modalità di traduzione del programma sorgente in oggetto.

67

Page 68: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

LINGUAGGIO INTERPRETATIVO (BASIC...)

Necessita di un INTERPRETE come traduttore: INTERPRETE: risiede in memoria insieme al

programma sorgente; considera una istruzione alla volta del programma sorgente, lo analizza sintatticamente. Se non è corretta si arresta visualizzando un messaggio di errore e si pone in attesa di una nuova istruzione. Se è corretta esegue immediatamente la procedura in linguaggio macchina corrispondente all'istruzione;

la traduzione del programma avviene durante l'esecuzione; tale esecuzione avviene sotto la supervisione dell'interprete.

facile localizzazione degli errori (utile per la "messa a punto" de i programmi)

non è possibile un'ottimizzazione del programma (programma visto istruzione per istruzione e non nella sua interezza)

esecuzione lenta

68

Page 69: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

LINGUAGGI COMPILATIVI (FORTRAN, C,...)

Necessitano di un COMPILATORE come traduttore. COMPILATORE: risiede in memoria principale, vede il

programma sorgente come un dato di input, ne esegue una analisi sintattica (fornisce lista di errori e messaggi sulla loro posizione) e, nel caso di un programma sintatticamente corretto, esegue la traduzione in linguaggio macchina. Crea una tavola dei simboli (symbol table). Il programma oggetto è il risultato della compilazione (file.OBJ, file.O).

La traduzione del programma avviene prima della sua esecuzione.

Programma LINKER/LOADER: aggiunge procedure contenute nella libreria del linguaggio o in altre librerie, creando un programma eseguibile (file.EXE, file.X).

Esegue eventualmente una rilocazione del codice (assegnazione indirizzi alla Symbol table)

È possibile un'ottimizzazione del programma (poiché viene visto dal compilatore nella sua interezza)

esecuzione veloce difficile localizzazione degli errori di tipo logico

L'IDEALE SAREBBE DI AVERE UN LINGUAGGIO CON INTERPRETE (per la messa a punto) E COMPILATORE (ottimizzazione).

69

Page 70: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

PROCEDIMENTO DI INTERPRETAZIONE

PROCEDIMENTO DI COMPILAZIONE

70

PROGRAMMA SORGENTE

INTERPRETATORE (TRADUZIONE ED ESECUZIONE)

DATI SEGNALAZIONE DI ERRORI (SINTATTICI E/O SEMANTICI)

RISULTATI

EDITING PROGRAMMA SORGENTE

COMPILATORE TRADUZIONE

LINKER LOADER

PROGRAMMA OGGETTO

COLLEGAMENTI

PROGRAMMA ESEGUIBILE

ESECUZIONE

RISULTATI

DATI

Page 71: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

SISTEMA OPERATIVO

programma scritto in linguaggio macchina permanentemente in esecuzione che funge da interfaccia tra: utente <-----S.O.-----> HW

permette all'utente di sfruttare al meglio le risorse dell'HW senza consentire dettagli

Il nucleo (KERNEL) giace permanentemente in memoria dal momento dell'avvio del sistema.

È un interprete di comandi che il S. O. fornisce per:gestione dei files su nastri dischi ecc.stampanticreazione ed esecuzione programmidotato di vari programmi di utilità per lo svolgimento di varie attività (editor, compilatori, interpreti, linker, loader...)

71

Page 72: Laboratorio di programmazioneluppi/Architettura.doc · Web viewINTRODUZIONE ALL’ARCHITETTURA DEGLI ELABORATORI Appunti di lezioni - A. A. 2002-03 Che cos'è l'informatica? In inglese:

RIFERIMENTI BIBLIOGRAFICI

Ceri, Mandrioli, Sbatella: Istituzioni di Informatica, Mc Graw Hill.

72