Sistema di Elaborazione Dati CPU RAM INTERNET Il Modello di Von Neumann Unità di elaborazione Unità di input Memoria centrale (Ram) C.P.U. (Processore) Unità di output Memorie di massa Hardware •Definizione: l’insieme dei dispositivi (elettronici, elettrici meccanici, ecc.) che costituiscono fisicamente il sistema di elaborazione. Software Definizione: l’insieme dei programmi e dei dati che permettono lo svolgimento delle funzioni di elaborazione Il transistore • È l’elemento base degli attuali elaboratori elettronici digitali: – piccole dimensioni ( mm ) – basso consumo di energia ( mW ) – alta velocità di funzionamento (milioni di operazioni al secondo) Circuiti integrati (Chip) Chip: circuito integrato, microcircuito, componente elettronico contenente al suo interno moltissimi transistor Calcolatore Il chip sta al calcolatore come il mattone sta alla casa Le generazioni informatiche • 1942-’57, • 1958-’63, • 1964-’80, • 1980-oggi, • (futuro) 1a gen. 2a gen. 3a gen. 4a gen. 5a gen. = valvole = transistori = circuiti integrati = circuiti VLSI =? ENIAC (1943): Electronic Numerical Integrator And Calculator • Primo eleboratore general-purpose • 18000 Valvole, 1500 relay • Uso per calcoli balistici •Lunghezza 25m, altezza 3m, superficie 180m2, peso 30ton, potenza assorbita 140KW • Programmazione con interruttori manuali • Aritmetica decimale, 5000 operazioni/sec Microprocessori INTEL 80x86 1993 Pentium MIPS: 100+ (66 MHz) Transistors: 3.000.000+ 1989 80486 MIPS: 41 (50 MHz) Transistors: 1.200.000 1985 1979 80386 MIPS: 11 (33 MHz) Transistors: 275.000 1982 80286 MIPS: 3 (12 MHz) Transistors: 134.000 8088/8086 MIPS: 0.33 (5 MHz) Transistors: 29.000 Microprocessori INTEL 80x86 1999 Pentium III 64 bit – 1.13 GHz Transistors: 9.000.000+ 1998 Pentium II 64 bit - 450 MHz Transistors: 7.000.000+ 1995 Pentium PRO 64 bit - 200 MHz Transistors: 7.000.000+ 1993 Pentium 32 bit - (166 MHz) Transistors: 3.000.000+ Processore Il processore o CPU è uno dei componenti principali del computer. Esso consente l’esecuzione di numerose istruzioni come: operazioni di elaborazione dei dati o comandi per controllare tutti gli altri elementi del sistema. Processore Intel 80286 Processore AMD Athlon Processore • Dalla frequenza di lavoro del processore, espressa in MHZ cioè in milioni di cicli di istruzioni a secondo, dipende la velocità di calcolo dell’intero sistema. • Le operazioni che il processore è in grado di eseguire sono elementari (somma, lettura di un dato, etc.), ma vengono svolte ad una velocità notevole, consentendo di fornire funzionalità complesse come somma di un numero elevato di operazioni semplici. 8086 - 8088 (4.77 - 12 MHz) -1979 Pentium (75 - 200 MHz) - 1994 80286 (8 - 20 MHz) - 1983 Pentium II (180 - ? MHz) - 1997 80386 (16 - 40 MHz) - 1987 Pentium III (400 - 1200 MHz) - 1999 80486 (25 - 133 MHz) - 1991 Pentium 4 (1.2 – 2.4 GHz) - 2001 Il clock – T = periodo di clock – f = frequenza di clock ( unità di misura Hertz ) t T • Ogni elaboratore contiene un elemento di temporizzazione (detto clock ) che genera un riferimento temporale comune per tutti gli elementi costituenti il sistema di elaborazione. Memoria • Il modulo della memoria è fondamentale perché consente di memorizzare i programmi da eseguire, i dati da elaborare, i risultati intermedi e finali forniti dal computer. • La memoria si divide in memoria interna, quella posta fisicamente sulla scheda elettronica che ospita anche il processore, e quella esterna che si trova su dispositivi posti fuori della scheda e ad essa collegati. • Memoria interna o principale – ROM (read only memory) – RAM (random access memory) – Cache • Memoria esterna, di massa o secondaria – Floppy disk – Hard Disk – Nastro magnetico – CD/DVD ROM Memoria Interna • ROM (Read Only Memory) – Memoria non cancellabile che contiene le informazioni necessarie per inizializzare l’elaboratore (64 kB - 512 kB) • RAM (Random Access Memory) – Memoria cancellabile e riscrivibile che contiene il/i programma/i attualmente in esecuzione (128 MB - 1 GB) • CACHE Memoria di transito fra componenti diversi (fra CPU e RAM, tra RAM e memoria esterna) Memoria interna • Banchi di memoria DRAM su supporti SIMM Memoria Esterna o Memoria di massa Periferiche di ingresso • Le periferiche d’ingresso sono quei dispositivi che consentono all’elaboratore di acquisire informazioni dal mondo esterno ed in particolare dall’utente che interagisce con la macchina. Periferiche di uscita Le periferiche d’uscita sono tutti quei dispositivi che consentono di ottenere i risultati delle elaborazioni effettuate dal calcolatore. Periferiche di ingresso • Tastiera (inserimento alfanumerico) • Mouse (inserimento posizioni) • Tavoletta grafica (inserimento posizioni) • Scanner (inserimento immagini) • Modem (ricezione dati) Periferiche di uscita • Monitor (visualizzazione) • Stampanti (trasferimento su carta) • Plotter (disegni e grafici) • Modem (trasmissione dati) • Macchine a controllo numerico Periferiche di uscita - Monitor • I parametri fondamentali di un monitor sono la sua dimensione (da 12 a 21 pollici), la sua risoluzione intesa come punti distinti che possono essere attivati sulla superficie (da 200x320 a 1280x1024) e la sua “precisione” misurata con un indice che varia da 0.25 (migliore) a 0.38 (peggiore). • Esistono anche particolari monitor detti “touch screen” che consentono, tramite il tocco di aree particolari della loro superficie, di acquisire informazioni (periferica di input). Periferiche di uscita - Stampanti • Stampanti (trasferimento su carta) Consentono di trasferire su carta i risultati delle elaborazione per poi poterli utilizzare come strumenti di verifica o di memorizzazione. • Ad impatto ( metodo di stampa vecchio ma economico). • A getto d’inchiostro: La definizione è migliore delle stampanti ad impatto ed anche il rumore è ridotto a quello causato dal movimento della carta. • Laser: La qualità di stampa è ottima, ma il costo del dispositivo e della sua manutenzione è elevato. • Plotter (disegni e grafici) A questo dispositivo trasferisce su carta immagini e grafici di dimensioni elevate, normalmente per disegno tecnico o meccanico. Periferiche di uscita • Macchine a controllo numerico Un elaboratore può avere come periferica d’uscita a diretto contatto anche una macchina operatrice a controllo numerico; in tale caso i “dati” in uscita dal computer sono i manufatti realizzati dalla macchina stessa. Generazioni di calcolatori elettronici La prima generazione è basata sulla tecnologia dei tubi a vuoto (valvole). Nel 1951 si costruisce l'Univac1, dotato di memoria a mercurio e nastri magnetici che consentivano di elaborare 30.000 informazioni al minuto. La seconda generazione, comparsa nel 1959, è basata sui transistor che sostituiscono le ingombranti e dispendiose valvole. Le memorie di questi calcolatori sono costituite da nuclei di ferrite, le cui dimensioni si riducono fino al diametro di pochi decimillimetri. La velocità di calcolo raggiunge le 210.000 addizioni al secondo. La terza generazione è costituita da circuiti integrati (chip) che sostituiscono il transistor, ed appare a partire dal 1964. Le memorie a nuclei sono affiancate da quelle a bolle magnetiche (minore ingombro, maggiore velocità e sicurezza di funzionamento. La quarta generazione di calcolatori è nata con la realizzazione del microprocessore, cioè dell'Unità Centrale (CPU) ottenuta su un unico circuito integrato. È iniziata nel 1971 con l'invenzione del microprocessore a 4 bit (4004) ad opera di Enrico Faggin della Intel e prosegue tuttora. Le diverse tipologie di computer apparse dal 1971 ad oggi sono il risultato di un'evoluzione nelle tecniche di realizzazione dei circuiti integrati e di aumento della densità circuitale, il cui massimo valore si indica con il termine di livello di integrazione. Nell'evoluzione dei livelli di integrazione si è passati dalla SSI (Small Scale Integration) alla MSI (Medium Scale Integration), LSI (Large Scale Integration) ed infine alla VLSI (Very Large Scale Integration). La tecnologia VLSI ha consentito di realizzare microprocessori a basso costo e memorie di grande capacità su un unico chip. La quinta generazione di computer si basa su architetture parallele (es. dual core) e sulla costruzione di cluster di computer. Cenni Storici Fin dall'antichità gli uomini hanno sempre cercato di rendere meno laboriosi i calcoli. Il desiderio di rendere più veloce e più possibile automatico il calcolo è probabilmente antico come l'uomo. Anche se il calcolatore non si può considerare semplicemente una macchina di calcolo, senz'altro è il prodotto più recente e più clamoroso delle ricerche nate da questo desiderio. Nell'VIII secolo a.C. fu inventato in Cina il primo pallottoliere. Presso i Romani era diffuso l'abaco. Strumento di calcolo formato da un telaietto su cui scorrono alcune file di palline che denotano le unità, le decine, le centinaia, le migliaia. Abaco Per giungere a qualcosa di nuovo bisogna aspettare fino al 1600, quando il matematico scozzese John Napier inventa il regolo calcolatore. Strumento costituito da stecche di avorio su cui erano incise opportune serie di numeri. Facendo scorrere le stecche una sull'altra era possibile eseguire moltiplicazioni e divisioni. Regolo calcolatore La prima vera calcolatrice (che prese il nome di "pascalina") fu inventata da Blaise Pascal nel 1642. La pascalina, poteva eseguire solamente l'addizione e la sottrazione. La pascalina Guglielmo Leibniz (nel 1971) ideò una macchina che eseguiva anche la moltiplicazione e la divisione. La macchina di Leibniz Le prime macchine calcolatrici prodotte in serie comparvero agli inizi del 1800 dopo la rivoluzione industriale. Ma è solo nel 1801 che si assistette ad una svolta decisiva, grazie al francese Joseph Jacquard che realizzò un telaio da tessitura controllato da schede perforate, sulle quali era memorizzato il programma di funzionamento della macchina stessa. Il telaio Jacquard Sfruttando questa idea, l'inglese Charles Babbage ideò una macchina analitica (macchina di Babbage) che si può considerare il primo esempio di calcolatore. Esso adottava schede perforate per introdurre dati ed istruzioni ed era fornito di una memoria in grado di immagazzinare fino a 1000 cifre. La macchina analitica di C. Babbage Verso la fine del 1800, negli Stati Uniti si presentò un problema molto concreto e urgente: l'elaborazione dei dati del censimento americano del 1890. Uno studioso di statistica, Herman Hollerith adattò la scheda perforata a questo scopo, registrando su ogni scheda i dati di un cittadino e realizzando una macchina in grado di contarli. La società fondata da questo brillante individuo si chiamò, e si chiama tuttora, IBM (International Business Machine). Macchina di Hollerith Il primo vero calcolatore elettro-meccanico fu il MARK 1, messo a punto nel 1944 da un gruppo di ricercatori dell'università americana di Harvard. Con l'avvento delle valvole elettroniche si costruì l'ENIAC (Elettronic Numerical Integrator and Calculator) e nel 1951 si realizzò l'UNIVAC 1 (UNIVersal Automatic Computer). L'UNIVAC fu il primo calcolatore elettronico in grado di conservare il programma all'interno della memoria (grazie ad un'importante innovazione dovuta al matematico John Von Neumann). UNIVAC Sistemi Operativi Che cosa è un sistema operativo? Un software che agisce da intermediario fra l’utente e la struttura fisica del calcolatore: gestisce gli elementi fisici di un calcolatore e fornisce all’utente un’interfaccia per poter utilizzare le risorse del sistema di calcolo in modo semplice, efficiente e sicuro Scopi del sistema operativo: Eseguire i programmi utenti e facilitare la soluzione dei problemi degli utenti. Rende il sistema di calcolo un ambiente in cui si può lavorare in modo conveniente e corretto. Utilizzo del calcolatore in maniera efficiente. Quali sono le parti di un SO ? Applicazioni Gestore del processore Interprete di comandi (shell) Gestore della memoria Gestore delle periferiche Hw Interfaccia grafica (desktop) File system Il nucleo (Kernel) del SO • Le funzioni del SO che riguardano: – la gestione dei processi, – la loro cooperazione (sincronizzazione e comunicazione) – la gestione del processore sono dette Nucleo (Kernel) del SO. Processo utente Processo sistema Processo sistema Processo utente Nucleo: System call Send, Receive, Scheduling Hardware e Firmware Schema del sistema MS-DOS Non ha l’identificazione PROGRAMMI DI APPLICAZIONE dell’utente con login e password; Non ha protezione del file system (administrator, gruppi). PROGRAMMI DI SISTEMA DRIVER DISPOSITIVI MS-DOS DRIVER DISPOSITIVI ROM BIOS Non supporta meccanismi di protezione della memoria. Non esiste la modalità supervisore distinta da quella utente. Non è multiprogrammato: la shell lancia un programma e attende che sia completato. i comandi utente di I/O agiscono direttamente sui dispositivi non passano attraverso il S.O. Lo schema di Unix interfaccia utente interfaccia delle librerie di sistema interfaccia system call Utenti Programmi di utilità (Shell, compilatori, editors) user mode Libreria Standard (Open close, read, write, fork) Unix kernel: Gestione Processi, Memoria, File System, I/O kernel mode Windows NT-2000 un modello ibrido Client Server Macchine virtuali non è microkernel Fine