La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Informatica (B) (Scienze e Tecniche Psicologiche) a.a. 2009/2010 Organizzazione di un computer Matteo Baldoni Dipartimento di Informatica Università.

Presentazioni simili


Presentazione sul tema: "Corso di Informatica (B) (Scienze e Tecniche Psicologiche) a.a. 2009/2010 Organizzazione di un computer Matteo Baldoni Dipartimento di Informatica Università."— Transcript della presentazione:

1 Corso di Informatica (B) (Scienze e Tecniche Psicologiche) a.a. 2009/2010 Organizzazione di un computer Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 – I Torino baldoni[at]di[dot]unito[dot]it

2 Livelli come astrazioni Un computer è una macchina programmabile, tuttavia esso non è direttamente utilizzabile da parte degli utenti poiché richiederebbe la conoscenza sull’organizzazione fisica della specifica macchina e del suo linguaggio macchina Ogni machina avrebbe le sue differenti caratteristiche Il linguaggio macchina è estremamente complicato e non di facile gestione Linguaggio Macchina Utente ? ??

3 Livelli come astrazioni In altre parole desideriamo astrarci dai dettagli fisici della macchina in oggetto e dal suo specifico linguaggio macchina L’idea è quella di realizzare al di sopra della macchina reale una macchina virtuale astratta che abbia le funzionalità desiderate e che sia facile da utilizzare per l’utente L’utente interagisce con la macchina virtuale, ogni comando viene poi tradotto nei corrispondenti comandi sulla macchina fisica La macchina virtuale è realizzata mediante software (programmi) traduzione in LM Software Macchina Virtuale Utente Linguaggio Macchina

4 Livelli come astrazioni La macchina virtuale viene realizzata in genere mediante il software di base: Sistema Operativo: file system, memoria, cpu, risorse ausiliarie, comunicazione Linguaggi e ambienti di programmazione ad alto livello: interpreti e compilatori Non vi sono limiti al numero e al tipo di macchine virtuali che possono essere realizzate In genere nelle macchine moderne sono strutturate su più livelli (struttura a cipolla) traduzione in LM Software Macchina Virtuale Utente Linguaggio Macchina traduzione Software Macchina Virtuale

5 Livelli come astrazioni In termini un po’ più astratti, detto: I h l’insieme delle istruzioni che costituiscono il linguaggio LM della macchina virtuale del livello h M h l’insieme delle istruzioni utilizzabili al livello h, ma mascherate nei confronti dei livelli superiori C h l’insieme dei comandi implementati a livello h utilizzando il linguaggio macchina I h Il linguaggio macchina I h+1 della macchina virtuale di livello h+1 puo’ essere definito nel modo seguente: I h +1 = I h + C h - M h traduzione in LM Software Macchina Virtuale Utente Linguaggio Macchina traduzione Software Macchina Virtuale h=1 h=0

6 Livelli come astrazioni Un browser è un programma Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo Per la visualizzazione delle pagine un browser che per farlo si appoggia al software di base Il software di base si appoggia alla macchina fisica per realizzare effettivamente il “rendering” della pagina su video traduzione in LM Software Macchina Virtuale Utente Linguaggio Macchina traduzione BROWSER Macchina Virtuale

7 Interpretazione Interprete (JavaScript, Scheme, Prolog, php, asp): Interazione. Più facile modificare un programma durante l'esecuzione Sparc/Solaris Apple Codice Sorgente Interprete Sparc/Solaris Interprete MacOS Interprete Intel/GNU-Linux Intel/Windows

8 Interpretazione Affinché le due persone di lingua diversa possano dialogare tra di loro (nel caso nessuna delle due conosca la lingua dell’altro) è necessario che qualcuno interpreti (traduca sul momento) quanto dice una persona nella propria lingua nella lingua di chi ascolta Si interpreta quando è necessario una stretta interazione, quando si desidera dialogare e non solo trasmettere un messaggio

9 Traduzione o compilazione Compilazione (Pascal, C, Ada, C++): Efficienza di esecuzione. Il codice generato dal compilatore può essere ottimizzato, perché la compilazione è fatta una sola volta Compilatore Sparc/Solaris Compilatore MacOS Compilatore Intel/GNU-Linux binario Intel/GNU- Linux Intel/Wind Apple Sparc/Solaris Codice Sorgente

10 Traduzione o compilazione La traduzione è adatta per comunicare messaggio, come ad esempio una lettera Anche per effettuare una traduzione è necessario l’intervento di qualcuno che sia in grado di comprendere le frasi di un linguaggio e riportarle in un altro ma questo può operare in tempi separati rispetto la scrittura del messaggio e la sua lettura La lettura è più rapida e semplice, il traduttore ha senz’altro avuto tempo per meglio adattare il testo ma si penalizza l’interattività

11 Architettura e organizzazione L'insieme di tipi di dati, operazioni e caratteristiche di ogni livello si chiama architetura Lo studio dei come progettare le parti di un sistema che sono visibili ai programmatori si chiama architettura dei calcolatori Organizzazione, relazioni strutturali tra le unità funzionali di una data architettura (non visibile al programmatore) Spesso il termine organizzazione è usato come sinonimo di architettura

12 Livelli come astrazioni In termini un po’ più astratti, detto: I h l’insieme delle istruzioni che costituiscono il linguaggio LM della macchina virtuale del livello h M h l’insieme delle istruzioni utilizzabili al livello h, ma mascherate nei confronti dei livelli superiori C h l’insieme dei comandi implementati a livello h utilizzando il linguaggio macchina I h Il linguaggio macchina I h+1 della macchina virtuale di livello h+1 puo’ essere definito nel modo seguente: I h +1 = I h + C h - M h traduzione in LM Software Macchina Virtuale Utente Linguaggio Macchina traduzione Software Macchina Virtuale h=1 h=0

13 Livelli come astrazioni Ogni livello nasconde i dettagli non necessari e costituisce l'insieme di astrazioni rilevnti per il livello superiore Ogni livello è costituito da un insieme di componenti e da un insieme di modi per combinare i componenti in strutture Le strutture così costruite rappresentano l'astrazione realizzata dal livello e costituiscono le entità su cui si opera a livello superiore Questo, a sua volta, le aggrega in modo da formare entità ancora più astratte per il livello soprastante. traduzione in LM Software Macchina Virtuale Utente Linguaggio Macchina traduzione Software Macchina Virtuale h=1 h=0

14 Livelli di macchine HARDWARE E SOFTWARE SONO LOGICAMENTE EQUIVALENTI

15 Hardware ≡ Software Potremmo anche simulare l'hardware di un intero computer via software Un esempio è la 'vmware workstation' prodotta da “VMWARE and EMC company” Una virtual machine che simula l'hardware di un PC!

16 Hardware ≡ Software Tale software permette di installare un sistema operativo senza nessuna differenza con una installazione su un vero computer per mezzo della realizzazione di una “Virtual Infrastructure” GNU/Linux RedHat Windows 2000

17 Le idee ed i pionieri Babbage Turing von Neuman Il computer è un calcolatore digitale programmabile dotato di memoria dati e programmi risiedono in memoria

18 Macchina di von Neumann Von Neumann collaboro` prima all'ENIAC (lenta aritmentica decimale), quindi alla macchina IAS (aritmetica binaria) Cinque parti principali: memoria, ALU, unita` di controllo e dispositivi di I/O Registro accumulatore E` alla base di quasi tutti i calcolatori digitali (dal 1949!)

19 Software vs hardware Programming in hardware: il programma e` codificato da una sequenza di funzioni aritmetiche e logiche implementate nell'hardware Programming in software: le istruzioni servono a configurare l'hardware (general purpose) per calcolare la funzione desiderata in quel momento Von Neumann: dati e istruzioni possono essere memorizzati nella stessa memoria Programming in hardware Dati Output Istruzioni Dati Output Segnali di controllo Programming in software Instruction interpreter General purpose artihmetic and logic functions Sequence of artihmetic and logic functions

20 Unità funzionali Unità di elaborazione e controllo (CPU): interpretazione ed esecuzione delle istruzioni. Unità operativa (ALU) e di controllo responsabile del coordinamento di tutte le attività. Registri: memoria temporanea ad alta velocità Memoria: contenitore di istruzioni e dati (in forma binaria). L'interpretazione dà luogo all'esecuzione dello specifico codice di istruzione. Dati e istruzioni sono di per sé indistinguibili ma dipende dal modo in cui si leggono e interpretano i bit

21 Unità funzionali L'unità di controllo legge le istruzioni della memoria centrale e ne determina il tipo Sistema di ingresso e uscita: l'insieme dei dispositivi per comunicare con il modo esterno e con l'utente. L'informazione in ingresso e uscito è sempre in forma codificata Un sistema di interconnessione per collegare le varie unità funzionali

22 Componenti principali Video/display Periferiche di input/output Stampante (secondarie) Memorie di massa Processore Memoria (centrale) Bus principale Controller

23 Organizzazione fisica attuale Periferiche per l’output Unità centrale e memorie Periferiche per l’input CPU + HD, CD, Floppy Tastiera e mouse Scanner

24 Organizzazione fisica attuale Hard Disk RAM CPU Lettore CD Floppy Disk

25 Architettura dei computer Le varie componenti comunicano attraverso uno o più insiemi di collegamenti detti bus Nei computer moderni: c’e’ un collegamento dedicato detto bus di sistema per la comunicazione tra cpu e memoria principale ci sono collegamenti per le altre periferiche detti bus locali con i loro adattatori (memorie secondarie, dispositivi di I/O e di rete)

26 La memoria principale Fornisce la capacità di “memorizzare” le informazioni (i dati e i programmi) Può essere vista come una lunga sequenza di componenti elementari, ognuna delle quali può contenere un’unità di informazione (un bit) Le componenti elementari della memoria sono aggregate tra di loro e formano strutture complesse dette celle che possono contenere otto bit (un byte) La memoria può essere vista come una sequenza di celle

27 La memoria principale Ciascuna cella è caratterizzata da un indirizzo Gli indirizzi corrispondono all’ordinamento delle celle nella sequenza Gli indirizzi sono numeri interi (partono da 0) Gli indirizzi non sono scritti da nessuna parte, sono determinati N

28 La memoria principale Un altro nome con cui viene indicata la memoria principale è memoria RAM (Random Access Memory) Questa definizione indica che il tempo di accesso ad una cella è lo stesso indipendentemente dalla posizione della cella Le operazioni che un Processore può effettuare sulla memoria sono le operazioni di lettura e scrittura di informazioni nelle celle

29 La memoria principale L’ indirizzo di una cella è un numero intero e quindi lo si può codificare in binario Il numero di celle di memoria determina il numero di bit necessari a rappresentare l’indirizzo Viceversa il numero di bit destinati all’indirizzo determina il numero di celle indirizzabili questo numero viene chiamato Spazio di indirizzamento

30 Dimensione della memoria Le dimensioni della memoria principale variano a seconda del tipo di computer Nei computer attuali le dimensioni tipiche della memoria principale vanno da 128MB a 2GB (1MB = 2 20 byte ~ byte, 1GB = 2 30 byte ~ byte)

31 Spazio di indirizzamento Nei computer attuali lo spazio di indirizzamento è di almeno 32 bit, con cui si possono indirizzare 2 32 byte = 4GB Lo spazio di indirizzamento è maggiore della memoria esistente

32 Parola di memoria Una parola di memoria è, a seconda del tipo di computer, un aggregato di (due) quattro o otto byte, sul quale si può operare (leggere e scrivere) come su un blocco unico Per eseguire le operazioni di lettura e scrittura sulla memoria, si deve specificare l’indirizzo della parola su cui si vuole operare Gli indirizzi delle parole devono essere multipli del numero di celle (byte) che le compongono

33 Indirizzamento La cella è l’unità minima di memoria indirizzabile, non sono indirizzabili i singoli bit La parola è l’unità massima di memoria che è possibile leggere e scrivere in un colpo solo (mediante un’unica istruzione)

34 Accesso alla memoria La memoria è caratterizzata dal tempo di accesso (tempo necessario per leggere o scrivere un’informazione in una parola) Le memorie principali dei computer attuali sono molto veloci e i loro tempi di accesso sono di pochi nanosecondi (1 nanosecondo= sec, un miliardesimo di secondo) Le memorie principali sono relativamente costose, (128MB costano qualche decina di euro) La memoria principale perde ogni suo contenuto quando si interrompe l’alimentazione elettrica. Questa caratteristica viene chiamata volatilità È quindi necessario per conservare le informazioni (programmi e dati) avere altri tipi di memoria (memoria secondaria) che conservano il contenuto anche senza alimentazione elettrica

35 Tipi di RAM DRAM (Dynamic RAM): il tipo più diffuso, economica, tempo di accesso ns SRAM (Static RAM): molto più veloce e costosa della DRAM, viene utilizzata per realizzare la memoria cache, tempo di accesso < 10ns VRAM (Video RAM): ha caratteristiche particolari ed e’ utilizzata per la gestione delle immagini Moduli di memoria RAM: DIMM (chip di memoria montati su due lati) SIMM (chip di memoria montati su un lato solo)

36 Memoria Cache Memoria molto veloce intermedia tra RAM e CPU i dati di uso piu’ frequente sono mantenuti nella memoria Cache per minimizzare i trasferimenti tra RAM e CPU Principio di Localita’ alla base dell’architettura con cache: Localita’ spaziale: il processore utilizza con alta probabilita’ dati che risiedono in locazioni di memoria contigue Localita’ temporale: se il processore utilizza un dato in memoria, e’ altamente probabile che lo riutilizzi nuovamente in breve tempo

37 Memoria Cache Ci sono due tipi di Cache: interna al processore (~256KB) esterna al processore (~2MB) realizzata con chip di memoria SRAM

38 Memoria RAM-ROM Tutti i computer contengono un chip di memoria elettronica permanente non modificabile (ROM=Read Only Memory) Il più comune è chiamato EPROM Contiene un programma (detto Basic Input Output System) per l’avviamento del computer e per altre operazioni fondamentali

39 Riassunto La memoria RAM è: veloce (accesso nell’ordine dei nanosecondi) relativamente costosa ha dimensioni limitate è volatile (non può mantenere dati permanenti è ad accesso diretto (si può accedere a qualsiasi cella senza accedere alle altre)


Scaricare ppt "Corso di Informatica (B) (Scienze e Tecniche Psicologiche) a.a. 2009/2010 Organizzazione di un computer Matteo Baldoni Dipartimento di Informatica Università."

Presentazioni simili


Annunci Google