Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l’Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto ARCHITETTURA DEI CALCOLATORI http://www.diee.unica.it/giacinto/Lab Sommario ! Architettura di Von Neumann ! ! ! ! ! ! ! La memoria centrale L’unità centrale di elaborazione I dispositivi di ingresso e uscita Il sistema operativo Reti di calcolatori Internet Basi di dati Giorgio Giacinto 2010 Laboratorio di Informatica 2 Architettura di Von Neumann Dispositivi di Ingresso (dischi, tastiera, mouse, microfono, ecc.) Memoria centrale Dispositivi di Uscita (dischi, video, stampante, cuffia, ecc.) Processore Unità di Controllo Unità Aritmetico-Logica Giorgio Giacinto 2010 Laboratorio di Informatica 3 La Memoria Centrale ! ! È il dispositivo che conserva le istruzioni e i dati dei programmi in esecuzione. Questa unità è collegata direttamente al processore. Caratteristiche ! ! ! ! Velocità di accesso elevata (poche decine di ns) Tempo di accesso indipendente dalla posizione del dato nella memoria (RAM: Random Access Memory) Dimensione limitata (oggi max pochi GB) L’informazione viene persa se si interrompe l’alimentazione elettrica Giorgio Giacinto 2010 Laboratorio di Informatica 4 La Memoria Centrale (cont.) ! Dati memorizzati in bit (binary digit): ogni unità elementare di memoria contiene una informazione di tipo binario: 1 oppure 0. ! ! Memoria organizzata in ! ! ! Realizzazione mediante dispositivi fisici a due stati Byte: insieme di 8 bit Parola: insieme di più byte contenuto in una cella di memoria Indirizzo ! Un numero che individua univocamente una cella come posizione relativa rispetto alla prima cella, che ha posizione 0. Giorgio Giacinto 2010 Laboratorio di Informatica 5 La Memoria Centrale (cont.) ! Un valore può essere memorizzato/recuperato dalla memoria specificando l’indirizzo. ! ! Il tempo di accesso è indipendente dall’indirizzo (ecco perché il nome di RAM) Memorie ROM (Read Only Memory) ! ! Sono memorie di sola lettura. Vengono pre-impostate dal fabbricante. Organizzate come le memorie RAM (ROM e RAM non sono termini contrapposti!) ma il contenuto permane anche se si interrompe l’alimentazione elettrica Giorgio Giacinto 2010 Laboratorio di Informatica 6 Il Processore ! Il Processore (CPU, Central Processing Unit) contiene due elementi funzionali ! ! Unità di controllo ! recupera le istruzioni dalla memoria centrale ! decodifica le istruzioni ! invia gli opportuni comandi di esecuzione alle unità indicate nell’istruzione ! preleva i dati necessari all’esecuzione e li trasferisce all’unità di esecuzione Unità Aritmetico-Logica (ALU, Arithmetic and Logic Unit) ! Modulo capace di eseguire un certo numero di operazioni aritmetiche e logiche Giorgio Giacinto 2010 Laboratorio di Informatica 7 Il Processore (cont.) ! ! Nel processore vi sono alcune celle di memoria molto veloce, dette registri, per memorizzazione dati intermedi e stato della CPU. Registri principali ! Program Counter (PC): indirizzo della istruzione successiva ! Current Instruction Register (CIR): Istruzione che deve essere eseguita ! Program Status Word (PSW): informazioni sull’ultima istruzione eseguita (risultato zero, segno risultato, riporto di una somma, ecc.) ! General Purpose (GPR): utilizzati per memorizzare dati e risultati intermedi Giorgio Giacinto 2010 Laboratorio di Informatica 8 Funzionamento elementare ! Caricamento in memoria centrale del programma in codice binario ! Caricamento dell’indirizzo della prima istruzione nel registro PC del processore ! Caricamento (fetch) della prima istruzione nel registro CIR del processore e incremento di PC di 1 ! Decodifica (decode) del codice operativo per determinare l’operazione da eseguire Giorgio Giacinto 2010 9 Laboratorio di Informatica Funzionamento elementare (cont.) PC = Program Counter DR = Data Register AR = Address Register CIR = Current Instruction Register Giorgio Giacinto 2010 Laboratorio di Informatica 10 Funzionamento elementare (cont.) ! ! ! ! ! Trasferimento degli operandi (operand fetch) nei registri del processore Esecuzione (execute) dell’istruzione Trasferimento (store) dei risultati in memoria A questo punto l’elaborazione prosegue trasferendo nel processore l’istruzione successiva. L’ultima istruzione termina il programma Giorgio Giacinto 2010 11 Laboratorio di Informatica Funzionamento elementare (cont.) PDR = Peripheral Data Register Giorgio Giacinto 2010 Laboratorio di Informatica 12 Unità di Ingresso e Uscita ! Prendono anche il nome di unità periferiche per sottolineare il loro ruolo di completamento delle funzioni di base della CPU. ! ! ! ! Unità di memorizzazione secondaria (dischi, nastri) Unità per l’inserimento di dati (tastiera, mouse, schede di acquisizione dati, microfono, telecamera, ecc.) Unità per il recupero dei risultati (video, stampante, plotter, dispositivi audio, ecc.) Unità per il collegamento ad altri calcolatori (scheda di rete, modem, ecc.) Giorgio Giacinto 2010 Laboratorio di Informatica 13 Unità di Memorizzazione Secondaria ! Servono per archiviare in modo permanente programmi e dati ! ! ! Dischi Magnetici, Ottici (CD, DVD) e Magneto-Ottici Nastri magnetici Sono caratterizzati da elevata capacità di memorizzazione e bassa velocità di accesso ! ! ! L’accesso avviene per mezzo di organi meccanici Tempo di accesso a un disco dell’ordine dei ms (tempo d’accesso memoria centrale dell’ordine dei ns!) Il tempo d’accesso varia a seconda della posizione del dato nel dispositivo di memorizzazione Giorgio Giacinto 2010 Laboratorio di Informatica 14 Interfacciamento di unità periferiche ! Il trasferimento di dati e istruzioni fra CPU e periferiche avviene per mezzo di interfacce ! ! ! Ad esempio se l’istruzione di CPU è del tipo scrivi(testo,periferica) ! se la periferica è un monitor, l’istruzione si traduce in comandi specifici per la scheda video ! se la periferica è una stampante, l’istruzione si traduce in comandi specifici per la stampante Il collegamento è governato da una unità di controllo locale. Dati e istruzioni vengono scambiati in un’area di memoria riservata detta porta Giorgio Giacinto 2010 Laboratorio di Informatica 15 Il Bus di sistema ! Un insieme di connessioni elementari lungo le quali viene trasferita l’informazione ! Collega fra di loro il processore, la memoria e le periferiche di I/O. ! In ogni istante di tempo il bus è dedicato a collegare due unità: una trasmette, l’altra riceve. ! Necessità di gestire le connessioni sul bus Giorgio Giacinto 2010 Laboratorio di Informatica 16 Il Bus di sistema (cont.) ! Tre linee funzionalmente distinte: ! ! ! Bus dati l’insieme di linee impiegate per trasmettere i dati fra mittente e ricevente (ad es. 32, 64 bit) Bus indirizzi l’insieme di linee impiegate per trasmettere l’indirizzo del dato che si deve trasferire (ad es. indirizzo della cella di memoria che contiene l’istruzione da trasferire al processore, ecc.) Bus controllo l’insieme di linee impiegate per trasmettere i codici di controllo della trasmissione (ad es.: istruzione di lettura/scrittura, esito positivo/negativo della trasmissione, ecc.) Giorgio Giacinto 2010 Laboratorio di Informatica 17 Estensione architettura di von Neumann ! ! ! Presenza di più processori dedicati ad es. per presentazione grafica su video Esecuzione in parallelo delle diverse fasi di una istruzione (pipelining) Uso di gerarchie di memoria ! ! ! memorie caratterizzate da costi e prestazioni crescenti (e dimensioni decrescenti). Ad es. disco, memoria centrale, cache Processori per operazioni di I/O Architetture multiprocessore/multicore Giorgio Giacinto 2010 Laboratorio di Informatica 18 La Memoria cache ! Sono memorie più veloci della memoria centrale, più piccole e più costose ! ! ! ! Si trovano sullo stesso chip del processore (cache di primo livello, L1) o fuori del processore, fra la memoria e il processore (cache di secondo livello, L2). Dimensioni L1: dell’ordine di 32 KB Dimensioni L2: da poche centinaia di KB a qualche MB La cache contiene le istruzioni e i dati usati più di frequente ! Il tempo medio di accesso a queste istruzioni e dati è inferiore a quello di accesso alla memoria centrale Giorgio Giacinto 2010 Laboratorio di Informatica 19 Il Sistema Operativo ! E’ il programma di base che consente l’utilizzo efficiente ed efficace del calcolatore elettronico ! Rende trasparenti agli utenti le operazioni di ! Gestione dei processi, cioè la gestione dei programmi in esecuzione (soprattutto sistemi multitasking e multiutente) ! Gestione della memoria per consentire multiprogrammazione e multitasking ! Gestione dei driver di periferiche (contengono le specifiche di funzionamento delle periferiche) ! Gestione del file system (gestione degli archivi: programmi, dati, ecc.) ! Contiene Giorgio Giacinto 2010 l’interprete dei comandi Laboratorio di Informatica 20 Collegamento di elaboratori in rete ! ! Tecnologia informatica = sistemi per la raccolta, memorizzazione, elaborazione, distribuzione dell’informazioni. Oggi questi quattro aspetti stanno convergendo. ! ! Anni ‘50: si parlava di “centro di calcolo”, cioè la stanza di un’azienda, università ecc., dove si trovava il/i calcolatori deputati a soddisfare tutte le esigenze di calcolo... Oggi: un gran numero di calcolatori indipendenti e interconnessi eseguono il lavoro. Si parla di reti di calcolatori Giorgio Giacinto 2010 Laboratorio di Informatica 21 Collegamento di elaboratori in rete (cont.) ! ! Le reti di calcolatori collegano elaboratori a diversa distanza fra loro fornendo a ciascuno servizi di rete (accesso a programmi, archivi, ecc.) La comunicazione avviene tramite scambio di messaggi in formato di pacchetti ! ! I pacchetti contengono sequenze di byte in genere di uguale lunghezza Il messaggio comprende alcuni byte di controllo all’inizio e alla fine che include la parte del messaggio che contiene l’informazione Giorgio Giacinto 2010 Laboratorio di Informatica 22 Servizi di rete ! Reti per le aziende ! ! ! ! Condivisione risorse fra sedi lontane geograficamente e fra diverse divisioni dell’azienda (magazzino, produzione, amministrazione, ecc.) Affidabilità: stessi dati presenti su più elaboratori per evitare che il guasto ad un elaboratore renda qui dati indisponibilI. Risparmio di denaro: molti piccoli elaboratori con risorse condivise in rete hanno un rapporto costo/prestazioni migliore di un unico grosso elaboratore Mezzo di comunicazione fra diverse sedi Giorgio Giacinto 2010 Laboratorio di Informatica 23 Servizi di rete (cont.) ! Reti per le persone ! ! ! Accesso a informazioni remote: servizi bancari, assicurativi, commerciali, quotidiani personalizzati, informazioni varie, ecc. disponibili sull’elaboratore di casa (accesso a basi di dati) Comunicazione uomo-a-uomo: posta elettronica, chat videoconferenze, gruppi di discussione Intrattenimento: video a richiesta (film, programma televisivo, ecc.), giochi Giorgio Giacinto 2010 Laboratorio di Informatica 24 Internet ! Anni ‘ 70 ARPANET: rete nazionale USA dedicata alla ricerca con una dozzina di nodi (ARPA = Advanced Research Projects Agency) ! ! ! ! Anni ‘80: ARPANET si divise in MILNET (applicazioni militari) e CSNET (ricerche in ambito informatico) CSNET collegò tutte le facoltà universitarie USA In Italia rete universitaria: GARR Fine anni ‘80 CSNET si aprì ad applicazioni commerciali. Primi provider: CompuServe e MCI Giorgio Giacinto 2010 Laboratorio di Informatica 25 Struttura di una applicazione ! Architettura logica a tre livelli ! Logica dei dati ! ! Strutturazione dei dati, relazioni, metodi di accesso, ecc. Logica della applicazione (business logic) ! Le elaborazioni dei dati per una particolare finalità " ! Ad es., pagamento tasse universitarie, carriera accademica Logica di presentazione ! L’interfaccia con l’utente " Giorgio Giacinto 2010 Grafica, pulsanti, menù, ecc. Laboratorio di Informatica 26 Struttura di una applicazione ! Architettura three-tier Client DBMS Rete Logica dell’Applicazione Rete Client ! ! ! I dati vengono gestiti da un DBMS I programmi (logica applicazione) accedono ai dati e foniscono i risultati agli utenti I client sono in genere realizzati in tecnologia web Giorgio Giacinto 2010 Laboratorio di Informatica 27