Evoluzione delle CPU Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Informatica – a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni Architettura del calcolatore (parte III) CPU Anno Frequenza (MHz) 8086 1978 4.77 — 12 8 / 16 29 000 1982 8 — 16 16 / 16 134 000 275 000 80386 1986 16 — 33 32 / 32 80386 SX 1988 16 — 33 32 / 16 275 000 80486 1989 33 — 50 32 / 32 1 200 000 3 100 000 Pentium 1993 60 — 200 32 / 64 Pentium II 1997 233 — 400 32 / 64 7 500 000 Pentium III 1999 450 — 1133 32 / 64 24 000 000 Pentium 4 2000 1600 — 2000 32 / 64 42 000 000 100 000 000 Osservazione di Gordon Moore nel 1965: 10 000 000 1 000 000 In origine X era 12. Correzioni successive hanno portato a fissare X=18. Questo vuol dire che c’è un incremento di circa il 60% all’anno. 100 000 1989 Informatica 2012/2013 -2- # Transistor [CPU Intel] il numero dei transistor per cm2 raddoppia ogni X mesi Numero di transistor 80286 Informatica 2012/2013 Legge di Moore Dimensione registri / bus dati Informatica 2012/2013 -3- 1991 1993 1995 1997 1999 -4- Pag. 1 1 Caratteristiche dell’architettura dell’elaboratore Legge di Moore e progresso Il progresso della tecnologia provoca un aumento del numero di transistor per cm2 e quindi per chip. Un maggior numero di transistor per chip permette di produrre prodotti migliori (sia in termini di prestazioni che di funzionalità) a prezzi ridotti. I prezzi bassi stimolano la nascita di nuove applicazioni (ad es. non si fanno video game per computer da milioni di $). Nuove applicazioni aprono nuovi mercati e fanno nascere nuove aziende. L’esistenza di tante aziende fa crescere la competitività che, a sua volta, stimola il progresso della tecnologia e lo sviluppo di nuove tecnologie. Informatica 2012/2013 Modularità Scalabilità ogni componente ha una funzione specifica ogni componente può essere sostituito con uno equivalente ma con maggiori prestazioni Standardizzazione Riduzione dei costi Semplicità componenti facilmente sostituibili in caso di malfunzionamento grazie alla produzione su larga scala di installazione ed esercizio del sistema Informatica 2012/2013 -5- Cambiare di un ordine di grandezza la quantità significa cambiare anche la qualità: Tipo Prezzo (€) Calcolatore monouso 1 Calcolatore dedicato 10 Calcolatore per videogiochi 100 Calcolatore per PC 1K Server 10 K Reti di workstation 100 K Mainframe 1M Supercalcolatore 10 M Nei computer le differenze sono di diversi ordini di grandezza. I miglioramenti procurati dalla legge di Moore possono essere utilizzati in modi diversi: • costruire calcolatori sempre più potenti a prezzo costante; • costruire lo stesso calcolatore a prezzi ogni anno più convenienti. Informatica 2012/2013 -6- Classi di Calcolatori • un’auto in grado di raggiungere una velocità di 1000 km/h nel deserto del Nevada è una macchina fondamentalmente diversa da un’auto fatta per viaggiare a 100 km/h sull’autostrada; • un grattacielo di 100 piani non è solo un edificio di 10 piani un po’ più grande. Flessibilità adatta a svolgere diverse tipologie di compiti Quantità vs. qualità Applicazione tipica Biglietti di auguri Orologi, automobili, … Videogiochi personali PC da tavolo o portatile Server di rete Centro di calc. Dipartim. Database di una banca Previsioni del tempo I prezzi sono solo indicativi! Informatica 2012/2013 -7- -8- Pag. 2 2 Classi di Calcolatori Classi di Calcolatori Calcolatori monouso: • chip singoli incollati all’interno dei biglietti di auguri; • si tratta in pratica di calcolatori usa e getta. • dotati di alcuni gigabyte di memoria, di un disco fisso contenente alcune decine di gigabyte di dati, drive DVD e/o CD–ROM, modem, scheda audio e altre periferiche; • dotati di sistemi operativi elaborati, molte opzioni di espansione e una vasta gamma di software disponibile. • Gli smartphone di fascia più alta sono veri e propri PC Sistemi embedded (calcolatori dedicati): • calcolatori che si trovano in telefoni, televisori, forni, auto, … • questi calcolatori contengono un processore, meno di un megabyte di memoria e qualche funzione di I/O. Videogame Informatica 2012/2013 -9- Classi di Calcolatori NOW (Network of Workstations) o COW (Cluster of Workstations) Supercomputer • hanno CPU velocissime, molti gigabyte di memoria centrale, dischi e reti molto veloci. • Recentemente molti supercomputer sono diventati macchine altamente parallele non molto diverse dai COW, ma con componenti più veloci e più numerosi. • I supercomputer vengono utilizzati per risolvere problemi di calcolo molto complicati in campi scientifici e ingegneristici: Mainframe • calcolatori grandi come una stanza, in uso fin dagli anni ’60; • non sono più veloci di server potenti, ma solitamente hanno più capacità di I/O e sono dotati di grandi insiemi di dischi • sono macchine estremamente costose, che vengono spesso mantenute per via dell’ingente investimento esistente in termini di software, dati, procedure operative e personale. Informatica 2012/2013 - 10 - Calcolatori disponibili • composti da PC o workstation normali collegate con reti ad elevate prestazioni (qualche gigabit/sec) e funzionanti con software speciale, che permette a tutte le macchine di lavorare insieme su un unico problema; • architetture sono facilmente scalabili (da alcune macchine ad alcune migliaia) e sono paragonabili a minisupercomputer. Server di rete • si tratta di PC o workstation potenziati utilizzati come server di rete sia per le reti locali che per Internet; • esistono sia in configurazione con processore unico che con più processori, hanno alcuni gigabyte di memoria, molti gigabyte di spazio sul disco fisso e interfacce di rete ad alta velocità. • normali calcolatori con particolari capacità grafiche, ma software limitato e poche possibilità di estensione; fanno parte di questa categoria anche i PDA e gli smartphone di fascia più bassa; • contengono un processore, alcuni megabyte di memoria, uno schermo e poco di più. Informatica 2012/2013 Personal computer (PC) o workstation: • • • simulazione di uno scontro fra galassie, sintesi di nuovi farmaci, modelli del comportamento dell’aria attorno alle ali di un aereo. Informatica 2012/2013 - 11 - - 12 - Pag. 3 3 Principali componenti di un sistema di elaborazione Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Informatica – a.a. 2012/13 Informatica Hardware Software Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni Il software: Applicazioni e Sistemi Operativi – Software di sistema: Sistema operativo – Software applicativo: Applicazioni Informatica 2012/2013 Motivazioni Sistema a livelli Obiettivo per un sistema costituito da diversi componenti ben separati: – Disporre di un sistema a livelli, in cui lo strato superiore mascheri quello inferiore - 14 - Applicazioni Software Sistema Operativo Perché costruire un sistema a livelli: – Per i progettisti: modularità -> semplicità nella progettazione, nella realizzazione e nell’estensione (modificabilità); naturale strategia di gestione della complessità – Per gli utilizzatori: virtualizzazione -> fare apparire la realtà in modo diverso (più semplice e/o più gradevole) Informatica 2012/2013 Hardware Windows Unix/Linux Mac OS Informatica 2012/2013 - 15 - È il livello di SW con cui interagisce l’utente e comprende programmi quali : Compilatori Editori di testi Fogli elettronici Sistemi bancari Navigatori per Web ….. gcc, Word, PowerPoint Excel, Explorer Photoshop, Gimp È il livello di SW che interagisce direttamente con l’hw e che si occupa di un uso corretto ed efficiente delle risorse fisiche (processore, memorie, periferiche etc.) - 16 - Pag. 4 4 I componenti di un sistema di elaborazione Componenti di un sistema di elaborazione • Nel caso di un sistema monoutente: • In generale: Applicazioni Sistema operativo A cosa serve il SO? Un S.O. implementa una macchina virtuale più agevole e più sicura da programmare ed utilizzare rispetto all’hw sottostante. Informatica 2012/2013 Informatica 2012/2013 - 17 - Organizzazione a strati - 18 - Architettura del Software •Software = insieme (complesso) di programmi - Organizzazione a strati, ciascuno con funzionalità di livello più alto rispetto a quelli sottostanti: programmi utente Sistema Operativo “Macchine Virtuali” HW •Firmware: strato di (micro-)programmi che agiscono direttamente sullo strato hardware memorizzato dal costruttore su una memoria permanente (ROM) Informatica 2012/2013 Informatica 2012/2013 - 19 - - 20 - Pag. 5 5 Cosa è il software? Esecuzione di un programma Il software è un insieme di programmi che permettono ad un calcolatore di offrire agli utenti determinate funzionalità Cosa è un programma? L’esecuzione delle azioni nell’ordine specificato dall’algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema dati input – Un programma è un’entità statica, descritta in un linguaggio ben definito, che specifica: • l’insieme di istruzioni che il calcolatore deve eseguire • la sequenza in cui devono essere eseguite Applicazioni Quando un programma viene messo in esecuzione si ha l’attivazione di un processo. Un processo è un’entità dinamica, il cui stato rappresenta il modo in cui si esegue il programma Informatica 2012/2013 Sistema operativo Hardware Informatica 2012/2013 - 21 - Quali e quanti applicativi software? Per Per Per Per Per calcolo scientifico videoscrittura memorizzazione e recupero dati comunicazione svago, … Foglio elettronico – Tabelle di valori e generazione di grafici: Excel, Lotus, OpenOffice Calc Software per database – Sistema per l’archiviazione ed il recupero efficiente di dati in formato digitale: Access, Oracle, MySQL, … Le multinazionali del software (IBM, Microsoft, EDS, …) Grandi software house Gruppi di sviluppatori di free software Gruppi di ricerca per prototipi Singole persone … Informatica 2012/2013 Sofware per elaborazione testi – Creazione, modifica e stampa di un documento: Word, Editor, OpenOffice Writer Per ogni categoria, esistono innumerevoli applicativi software prodotti da fonti diverse: – – – – – – - 22 - Esempi Esistono tanti tipi di applicativi software: – – – – – risultati output Software per presentazioni – Creazione di testi/immagini per diapositive e prospetti: PowerPoint, Acrobat, … Informatica 2012/2013 - 23 - - 24 - Pag. 6 6 Esempi Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Informatica – a.a. 2012/13 Software per la comunicazione – Creazione, invio e ricezione di posta elettronica: Outlook, Eudora, … – Navigazione su Web: Explorer, Firefox, … Sistemi operativi Software per il calcolo – Simbolico e/o numerico: Matlab, … Software di utilità Cos’è un virus informatico ? – Antivirus, antispyware, … – E’ un programma software anche lui … Informatica 2012/2013 - 25 - Funzioni dei sistemi operativi Definizioni Realizzano le operazioni base necessarie per l’uso efficace del computer, ma non supportate direttamente dall’hardware – – – – – – Il sistema operativo (OS): – – – – – – Esegue il boot Gestisce la memoria centrale Gestisce il processore Gestisce i dispositivi di input/output Gestisce i file Gestisce le connessioni alle reti e le comunicazioni Informatica 2012/2013 Un Sistema Operativo è un insieme di programmi che servono a gestire le attività fondamentali di un calcolatore: Lettura o scrittura di file Caricamento ed esecuzione di programmi Gestione della memoria Gestione dei dispositivi di input/output Comunicazione tra calcolatori (rete) Gestione degli utenti Un sistema operativo funziona da intermediario fra l’utente e l’hardware, con lo scopo di fornire un ambiente nel quale l’utente possa eseguire i programmi in maniera “sicura” ed efficiente Informatica 2012/2013 - 27 - - 28 - Pag. 7 7 Tipi di sistemi operativi Tipi di sistemi operativi Il mondo Windows: Windows95, Windows98, Windows2000, Windows NT Workstation/Server, Windows CE, Windows XP, Windows Vista, Windows 7, Windows 8 Sistemi operativi più diffusi: Microsft Windows – XP – Vista Il mondo Unix/Linux: Sun Solaris, IRIX, HP-UX, SCO, Linux, … Informatica 2012/2013 Informatica 2012/2013 - 29 - Sistema operativo (S.O.) In base al numero di utenti: Mono-utente (mono-user) – un solo utente alla volta può utilizzare il sistema Le funzioni offerte dal S.O. dipendono dalla complessità del sistema di elaborazione: gestione delle diverse risorse hardware gestione della memoria centrale organizzazione e gestione della memoria di massa interpretazione ed esecuzione di comandi elementari gestione della multi-utenza e del multi-tasking Informatica 2012/2013 - 30 - Classificazione dei S.O. Strato di programmi che opera al di sopra di hardware e firmware e gestisce l’elaboratore – – – – – Linux Unix Mac OS-X di Apple (per Macintosh) Multi-utente (multi-user) – più utenti in contemporanea possono interagire con la macchina – il S.O. deve fornire a ciascuno l'astrazione di un sistema “dedicato” Informatica 2012/2013 - 31 - - 32 - Pag. 8 8 Classificazione dei S.O. Interazione dell’utente con il S.O. In base al numero di programmi in esecuzione: Mono-programmato (mono-task) – diversi S.O. possono realizzare diverse macchine virtuali sullo stesso hardware – aumenta l’astrazione nell’interazione utente/elaboratore – si può eseguire un solo programma per volta Un utente "vede" l’elaboratore solo tramite il S.O., che simula una “macchina virtuale” • Multi-programmato (multi-task) • – il S.O. permette di eseguire più programmi in contemporanea (su una sola CPU) – il S.O. deve gestire la suddivisione del tempo della CPU fra i vari programmi (time-sharing) senza S.O.: sequenze di bit con S.O.: comandi, programmi, dati Il S.O. traduce le richieste dell’utente in opportune sequenze di comandi da sottoporre alla macchina fisica – Il S.O. traduce qualsiasi operazione di accesso a risorse hardware, implicitamente richiesta dal comando dell’utente Informatica 2012/2013 Informatica 2012/2013 - 33 - Interazione dell’utente con il S.O. - 34 - Interazione dell’utente con il S.O. Interfaccia testuale – Il S.O. interagisce con l’utente mediante l’interpretazione di linee di comando – esempi: DOS, Linux Utente “esegui progr1” “risultato = 10” Informatica 2012/2013 S.O. input da tastiera ricerca codice di “progr1” su disco carica in RAM codice e dati <elaborazione> output su video Interfaccia grafica o GUI (Graphical User Interface) – tutti i programmi e le funzioni sono mostrati sullo schermo mediante simboli immediatamente comprensibili (icone) – esempi: Windows, MacOS (Macintosh), Linux+KDE Informatica 2012/2013 - 35 - - 36 - Pag. 9 9 Le funzioni di un S.O. Le funzioni di un S.O. Esecuzione delle applicazioni Archiviazione di dati e programmi – carica il programma binario prodotto della compilazione (e residente su disco) nella RAM, – cede il processore all’applicazione da eseguire – mette a disposizione dell’utente una visione astratta della memoria secondaria (il file system basato sulle astrazioni file/archivi e folder/cartelle) – gestisce la realizzazione di queste astrazioni sul supporto fisico (disco) gestendo tutti i dettagli legati alla lettura/scrittura dei settori Facilitazione dell’accesso ai dispositivi di I/O – interagisce con le periferiche facendosi carico di tutti i dettagli fisici (es. modem, reti, video…) – mette a disposizione operazioni di lettura/scrittura ad alto livello che possono essere usate senza conoscere i dettagli tecnici della periferica Informatica 2012/2013 Informatica 2012/2013 - 37 - Le funzioni di un S.O. - 38 - …. Gestione delle risorse Fine per oggi… – ripartisce le risorse disponibili fra le varie applicazioni (processore, RAM, periferiche) – evita che ci siano malfunzionamenti dovuti all’uso contemporaneo di risorse • es: un word processor e un web browser che inviano contemporaneamente dati alla stampante potrebbero provocare una stampa erronea – ottimizza le prestazioni adottando delle politiche che permettano di sfruttare al meglio tutte le parti del computer Informatica 2012/2013 Informatica 2012/2013 - 39 - Pag. 10 10