ARCHITETTURA DEL CALCOLATORE L’architettura del calcolatore, cioè le unità funzionali o i sottosistemi che lo compongono, è rimasta sostanzialmente invariata a partire dagli anni ’40. L’architettura dei calcolatori attuali si basa su un unico modello teorico chiamato architettura di von Neumann, dal nome del matematico John von Neumann che per primo la propose nel 1946 Architettura del calcolatore A blocchi funzionali: BUS DATI/PROGRAMMI MEMORIA UNITA’ INPUT PROCESSORE (CPU) RISULTATI UNITA’ OUTPUT Memoria di massa ARCHITETTURA VON NEUMANN L ‘architettura di von Neumann è un modello per la progettazione e la realizzazione di calcolatori basato su 3 caratteristiche: 1) Un calcolatore realizzato a partire da 4 sottosistemi principali chiamati: CPU, memoria CENTRALE, ingresso/uscita, memorie di massa. Ogni sistema (blocco) ha una sua funzione Computer “ a programma memorizzato” : in grado di eseguire un programma precedentemente caricato in memoria centrale (un insieme di istruzioni “precaricate in memoria”) L’esecuzione sequenziale delle istruzioni. Una sola istruzione per volta viene presa dalla memoria per passare alla CPU dove viene decodificata ed eseguita. 2) 3) All’architettura FUNZIONALE corrisponde una architettura FISICA MEMORIE DI MASSA UNITA’ DI OUTPUT UNITA’ DI ELABORAZIONE (C.P.U.) MEMORIA CENTR. UNITA’ DI INPUT 1. “IL CERVELLO”PROCESSORE = C.P.U (Central Processing Unit) UNITA’ CENTRALE DI ELABORAZIONE in senso stretto: il “motore” che preleva dalla memoria, interpreta (decodifica) ed esegue le istruzioni del programma e governa il funzionamento delle diverse parti che compongono il computer Fisicamente un circuito integrato ad altissima integrazione (100 milioni di transistor da 90-65 nm) : MICROPROCESSORE PROCESSORE E’ l’unico dispositivo in grado di distinguere tra istruzioni (i comandi) e dati (il materiale sul quale eseguire i comandi) Deve saper riconoscere le istruzioni e i comandi a basso livello forniti dal programma Coordina le operazioni degli altri componenti del sistema 2. “IL BANCO DI LAVORO” la MEMORIA CENTRALE RAM Random Access Memory L’unita’ che funge da “DEPOSITO” dei DATI e delle ISTRUZIONI necessari per la esecuzione di un programma. La CPU vi ha accesso diretto. E’ UN PASSAGGIO “OBBLIGATO” prima di poter essere elaborata l’informazione deve essere acquisita dalla memoria centrale (per motivi tecnologici) Memoria di lettura/scrittura Caratteristiche: veloce (ns), costosa, volatile, non estremamente capace (media 1 GB ), non trasportabile 3. MEMORIE DI MASSA Caratteristiche: permanente, economica, con grande capacità di memorizzazione (fino a 500 GB), lenta (millisecondi), trasportabile Hard e floppy disk, CD, DVD, floptical, penne, ecc.. Dispositivi, fissi o removibili, esterni o interni, che memorizzano grosse quantita’ di dati o di istruzioni in modo PERMANENTE, organizzati in FILE 4.INGRESSO/USCITA UNITA’ di INPUT - OUTPUT (periferiche): tastiera, video, stampanti, scanner, modem, microfoni, casse audio, ecc...) DISPOSITIVI CHE CONSENTONO L’IMMISSIONE dei DATI e dei PROGRAMMI E L’USCITA DEI RISULTATI UN TIPO di COMPUTER (il Personal Computer) visto dall’ESTERNO 2 parti: “CHASSIS” (Cabinet - case) = UNITA’ CENTRALE DI ELABORAZIONE in senso LATO contiene la maggior parte degli elementi che compongono il PC PERIFERICHE o dispositivi I/O PC all’interno: “PARTE NON VISIBILE” CPU RAM/ ROM HARD DISK BUS HW: CLASSI di COMPUTER Fasce di crescente complessita’,prezzo e prestazioni (1 classe ogni decennio) CLASSIFICAZIONE ORIENTATIVA mantenuta nel linguaggio comune In modo sfumato: utilizzando i parametri MIPS, N.ro teminali collegati, Prezzo, Sistema operativo (standard o aperto, speciale o proprietario) STANDARD: “APPLICAZIONE DI UN METODO O DI UN FORMATO ACCETTATO E RICONOSCIUTO, SE NON DA TUTTI, AMPIAMENTE “ (es: formato postale, codice a barre, lattine birre) Classi di computer MIPS Mainframe >100 (anni ‘60) Minicomputer (anni ’70) 10 100 Microcomputer 1 – (PC) (anni ’80) 10 N.ro utenti Costo (€) Sistema operativo Centinaia Milioni Speciale Decine di migliaia Speciale e standard Decine Uno Migliaia Standard I tipi di P.C. (microcomputer): DESKTOP (entry level) MINITOWER TOWER (server) Formato digitale (binario) dell’informazione Nel calcolatore tutta l’informazione e’ codificata in binario (sequenza di 0,1) Perche’ il calcolatore e’ formato da componenti BISTABILI: - elettronici (alta/bassa tensione elettr.) - magnetici (differente stato di polarizzazione magnetica) - ottici (alternanza luce/buio) 2 STATI “FISICI” (possibili, nitidi e sicuri) che vengono RAPPRESENTATI (denotati) con 0 e 1 che sono anche le cifre del sistema binario (BIT – BINARY DIGIT) UNITA’ DI MISURA BIT (BINARY DIGIT: 0 1 ): l’unita’ minima che puo’ essere rappresentata. 2 motivazioni: 1) Il calcolatore e’ formato da componenti bistabili che fisicamente possono assumere solo 2 stati, logicamente rappresentabili solo con 2 simboli. 2) La semplicità dei calcoli in binario BYTE = sequenza di 8 BIT (00110111) e’ l’unita’ minima con cui opera = 1 carattere le possibili combinazioni sono 2^8 =256 256 simboli rappresentabili: lettere alfabeto, cifre numeriche, punteggiatura, caratteri di controllo UNITA’ DI MISURA: i multipli del byte *fattore moltiplicativo “1.024” * misura la capacità delle memorie e le dimensioni file KBYTE (kilobyte - Kbyte - KB) = 2^10 byte = 1.024 byte = mille caratteri MegaBYTE (detto anche Mega, Mbyte, MB, Mb, M) = 2^ 20 byte = 1024 Kbyte = 1.048.576 byte = un milione di caratteri Esempio: 1 pagina di testo 2.000 - 10.000 caratteri (10 MB???): 5.000 – 1.000 pagg. (10 libri da 500 pag.) UNITA’ DI MISURA: multipli del byte GIGABYTE (detto anche Giga, Gbyte, GB, Gb, G) = 2^30 byte = 1024 Megabyte = 1.073.741.824 byte = un miliardo di caratteri TERABYTE (detto anche Tera, Tbyte, TB, Tb, T) = 2^40 byte = 1024 Gigabyte = 1.099.511.628.000 byte = mille miliardi di caratteri UNITA’ DI MISURA: velocità e prestazioni MIPS - Milioni di Istruzioni Per Secondo: una misura della velocita’ della CPU (unita’ di elaborazione) di un computer ms- Millesecondi misura una frazione del secondo corrispondente a 10 elevato a -3 ms - Microsecondi misura una frazione del secondo corrispondente a 10 elevato a -6 ns- Nanosecondi misura una frazione del secondo corrispondente a 10 elevato a -9 UNITA’ DI MISURA Hertz e’ una unita’ di misura che corrisponde ad una oscillazione o ciclo per secondo. Un hertz e’ dato ad esempio da un pendolo che in un secondo oscilla da destra a sinistra e da sinistra a destra Nel computer si usano i Mhz e i GHz, milioni o miliardi di Hertz al secondo, che indicano la velocita’ del clock del processore e del bus In GHz (1,6 1,8 2,0 3,0 …) e’ misurata la velocita’ con cui l’orologio interno scandisce la frequenza delle operazioni elementari svolte dall’unita’ dedicata alle elaborazioni. La frequenza del clock costituisce uno dei parametri in base ai quali valutare la potenza di un computer. IL SOFTWARE = I programmi Diversi tipi di software: SOFTWARE DI SISTEMA : l’insieme dei programmi dedicati al funzionamento e alla gestione dell’elaboratore SOFTWARE APPLICATIVO: l’insieme dei programmi dedicati al supporto di specifiche esigenze dell’utente CLASSIFICAZIONE SOFTWARE SOFTWARE di BASE (o di SISTEMA): SISTEMA OPERATIVO AMBIENTE DI PROGRAMMAZIONE (tool di sviluppo) SOFTWARE APPLICATIVO: STRUMENTI PRODUTTIVITA’ INDIV. SISTEMI GRAFICI E CAD APPLICAZIONI GESTIONALI, NUMERICHE, CONTROLLO PROCESSO,ECC SOFTWARE DI BASE SISTEMA OPERATIVO: l’insieme dei programmi che consentono al computer e alle sue applicazioni di funzionare. Programmi dedicati a rendere più semplice l’utilizzo del computer per l’utente, a sgravare il programmatore dalla gestione delle componenti fisiche ed ad ottimizzare le risorse hardware AMBIENTE DI PROGRAMMAZIONE: EDITOR, COMPILATORI, INTERPRETI, LINKER, DEBUGGER- strumenti di supporto nella messa a punto ed esecuzione dei programmi (tools di sviluppo) Relazione fra utente/S.O/macchina SW APPLICATIVO S.OPERATIVO (macchina VIRTUALE) (macchina FISICA) Perché il sistema operativo ? L’HARDWARE, DA SOLO, troppo DIFFICILE DA USARE: NON è POSSIBILE INTERAGIRE IN MODO SEMPLICE CON LA MACCHINA CON ORDINI AD ALTO LIVELLO, DEL TIPO “ESEGUI IL PROGRAMMA ALFA” oppure “STAMPA il file x” (linguaggio macchina) I PROGRAMMI SAREBBERO STRETTAMENTE LEGATI ALLA CONFIGURAZIONE FISICA DELLA MACCHINA CHI PROGRAMMA DOVREBBE CONOSCERE MOLTO BENE IL FUNZIONAMENTO DI TUTTI I DISPOSITIVI PERIFERICI OGNI CAMBIAMENTO DELL’HARDWARE (IN TERMINI DI MEMORIA, HARD DISK, DISPOSITIVO DI I/O,...) COMPORTEREBBE UNA REVISIONE DEI PROGRAMMI Portabilità dei programmi: I PROGRAMMI POTREBBERO ESSERE PORTATI SU UNA ALTRA MACCHINA A CONDIZIONE CHE FOSSE IDENTICA MACCHINE COSTOSISSIME POTREBBERO ESSERE USATE DA UN SOLO UTENTE ALLA VOLTA SISTEMA OPERATIVO A partire dagli anni ’60 Insieme di programmi (strato software a supporto sia dell’utente che del programmatore) abilitati a: gestione RISORSE HARDWARE, tramite il governo e il controllo delle risorse principali del sistema informatico, il controllo e la supervisione di tutte le periferiche, la ottimizzazione delle stesse risorse: CPU,RAM, DISCO, I/O gestione RISORSE SOFTWARE, tramite il controllo ed il governo degli altri programmi applicativi (modulo INTERPRETE) interfaccia uomo/macchina (tramite tra utente e macchina, direttamente o indirettamente) 5 STRATI del S.O (struttura a cipolla) INTERPRETE FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA NUCLEO INTERPRETE INTERPRETE: rappresenta lo strato superiore del S.O.(quello che vede l’utente) il modulo che consente di interagire con il sistema: è responsabile di ricevere e interpretare i comandi dell’utente E’ il modulo che consente di richiamare le funzioni del S.O. e quello che manda in esecuzione i programmi applicativi Per eseguire un programma l’interprete accede al programma su disco tramite il file system, alloca e carica in memoria chiamando il gestore della memoria, attiva un processo tramite il nucleo Si occupa anche dell’inizializzazione del sistema INTERPRETE o INTERFACCIA del S.O. Diverse modalita’ di presentazione o di INTERAZIONE: a carattere, menù drive, grafica A CARATTERE (testuale - command line): DOS, UNIX – input con TASTIERA GRAFICA (Windows il più diffuso) MAC OS – Macintosh – macchine Apple) INTERPRETE GRAFICO (GUI) DESKTOP+ICONE+FINESTRE+MOUSE =INTERFACCIA GRAFICA