Concetti chiave Computer 1 • Hardware e software • Architettura di von Neumann • Processore • Memoria centrale • RAM, ROM, cache • Input e output • Memoria di massa • Calcolo e automazione • Tipi di computer • Reti • Client/Server • Cloud computing • Virtualizzazione A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 1 1.1 Hardware e software Il computer è una macchina universale: obbedendo alle istruzioni che gli sono fornite riesce a trovare la soluzione a qualsiasi problema risolvibile con una macchina, sempre che sia dotato di sufficiente memoria e gli sia concesso il tempo necessario. A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 2 1.1 Hardware e software Il computer è un sistema di elaborazione costituito dall’hardware, la parte fisica della macchina, e dal software, i dati e le istruzioni che pilotano l’hardware. Riceve i dati e le istruzioni in ingresso o input, li archivia all’interno della propria memoria, elabora i dati eseguendo le istruzioni e invia le informazioni risultanti in uscita o output. Una sequenza di istruzioni, atte a far svolgere un determinato compito all’elaboratore, è detta programma. A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 3 1.2 Processore L’architettura di von Neumann è ancora quella dei sistemi di elaborazione di oggi: • dati in ingresso da trasformare in dati in uscita • un programma da eseguire per effettuare la trasformazione • una memoria in cui contenere il programma e i dati intermedi dei calcoli • un agente che esegua le azioni programmate Programmi e dati vengono memorizzati allo stesso modo nella stessa unità fisica, la memoria A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 4 1.3 Memorie Le istruzioni e i dati necessari per eseguire le operazioni svolte dalla CPU sono memorizzati in un particolare archivio, la memoria centrale, che è volatile, ovvero il suo contenuto è perso quando si spegne il computer, ed è costituita fisicamente da uno o più chip formati da un numero elevatissimo di bit. A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 5 1.4 Periferiche di Input/Output Senza strumenti che da un lato ricevano dall’esterno dati e istruzioni, e strumenti che dall’altro lato comunichino all’utente i risultati del lavoro svolto dal computer, quest’ultimo sarebbe completamente isolato e del tutto inutilizzabile. Allo scopo provvedono le periferiche di input/output, I/O. Esse comprendono tutti gli strumenti utilizzati dal computer per comunicare con l’utente o con altre macchine. A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 6 1.5 Memorie di massa Le memorie di massa, dette anche memorie secondarie o ausiliarie, sono molto più capienti, conservano il loro contenuto anche quando il computer viene spento e hanno, a parità di byte, un costo inferiore rispetto alla RAM. Sono esempi di memorie di massa gli hard disk, i Cd-Rom, i DVD (Digital Versatile Disk) e i nastri magnetici. A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 7 1.6 Storia di una macchina Abaco Automatismo, Automazione, Orologi, Programmazione. Calcolatrici di Napier, Pascal, Leibniz. Telaio di Jacquard. Progetto di un computer di Babbage. Macchina calcolatrice di Hollerith. Z3, Mark I, ENIAC. L’architettura di Von Neumann. A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 8 1.7 Tipi di Computer Mainframe Minicomputer Personal Computer Tablet Smartphone … A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 9 1.8 Reti IP LAN - WAN Internet Download/Upload ADSL Wireless VOIP A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 10 1.9 Architettura Client/Server Server specializzati Downsizing / Righsizing Programmi Client/Server N-tier Elaborazione distribuita P2P A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 11 1.10 Cloud Con cloud computing si indicano genericamente le tecnologie che permettono di gestire dati attraverso risorse hardware e software distribuite sulla Rete. Con il cloud gli utenti possono svolgere le loro attività da qualunque luogo abbiano accesso a Internet, senza aver installato alcun applicazione nel loro PC, Tablet, Smartphone… A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 12 1.10 Virtualizzazione La virtualizzazione è la creazione della versione virtuale di una piattaforma hardware, di un sistema operativo o di qualsiasi altra risorsa informatica. La versione virtuale ha esattamente le stesse funzionalità e lo stesso comportamento della versione “fisica”, la simula perfettamente. A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 13 1.10 Virtualizzazione Per esempio su una macchina Mac della Apple si può virtualizzare una macchina Windows della Microsoft, avendo così a disposizione due sistemi in una solo oggetto fisico. Pere esmpio su un server Linux si possono virtualizzare più server Linux e Windows ognuno dei quali è isolato dall’altro. A. Bellini, A. Guidi, Linugaggio C. Una guida alla programmazione con elementi di Objective-C 5/ed Copyright © 2013 - McGraw-Hill Education Italy srl Capitolo 1 Diapositiva 14