IL COMPUTER. Nel 1500 Leonardo Da Vinci progettò una macchina sui pignoni dentati in grado di svolgere semplici calcoli. Nel 1642 Blase Pascal realizzò la prima macchina da calcolo con un principio meccanico molto simile al progetto di Da Vinci. Nella seconda metà del 600 Leibniz gettò le basi della logica simbolica introducendo i sistemi binari. Nel 1834 Charles Babbage realizzò la “macchinia analitica” che poteva risolvere problemi di tipo generale. Verso la metà del 1800 George Boole creò lo strumento concettuale che sta alla base del funzionamento dei moderni calcolatori: Algebra di Boole. Agli inizi del 900 grazie all'impiego dell'energia elettrica venne costruito il primo calcolatore programmabile. Nel 1930 Konrad Zuse costruisce la prima macchina a relé che utilizza la logica binaria. Nel 19636 Alan Turing dimostra la fattibilità di una “macchina universale”. Nel 1944 Howard Heiken realizza un calcolatore aritmetico universale noto come Mark1. Nel 1946 nasce l'ENIAC, un calcolatore che occupava un'intera stanza e serviva solo per calcolare traiettorie di missili. Nel 1952 John Von Neumann realizza il primo vero prototipo degli attuali elaboratori elettronici. Nei primi anni 80 si giunge ai primi microcalcolatori e ai primi personal computer. 1 FUNZIONAMENTO DEL CALCOLATORE Può essere paragonato al funzionamento di un operatore umano, e come quest'ultimo si comporterebbe nel seguente modo: 1. Acquisisce i dati del problema usando gli organi di senso. 2. Si predispone a un'attività di durata finita impegnando la sua memoria temporanea. 3. Per prudenza, riporta su un quaderno i risultati e le soluzioni che potrà usare in un futuro (memoria a lungo termine). 4. Comunica i risultati conseguiti. 2 MODULI FUNZIONALI DI UN ESECUTORE CPU → unità centrale di elaborazione CLOCK → unità che sincronizza tutte le attività della CPU MEMORIA PRINCIPALE → che memorizza temporaneamente dati e programmi MEMORIA SECONDARIA → che memorizza un gran numero di dati per un tempo indefinito UNITA' DI INGRESSO E DI USCITA (I/O) → che consentono alla macchina di interagire con l'esterno BUS → canale di comunicazione grazie al quale avviene uno scambio di informazioni tra i vari moduli LA MEMORIA PRINCIPALE La memoria principale si divide in due parti: RAM è la memoria che contiene il programma in esecuzione e i suoi dati. Le informazioni che contiene vengono perse quando si spegne il computer per questo è detta memoria volatile. ROM è la memoria principale non volatile che permane anche dopo lo spegnimento del computer. Qui sono conservate le informazioni necessarie all'avvio del computer e al suo funzionamento di base, dette BIOS. Nella memoria l'informazione 3 è immagazzinata come combinazioni di numeri binari (1 e 0), che costituiscono un'unità fondamentale detta bit. Una combinazione di 8 bit prende il nome di byte e rappresenta l'unità di memorizzazione. La capacità di una memoria si esprime come quantità di byte che essa è in grado di immagazzinare. Multipli del byte. Byte Kilobyte (KB) Megabyte Gigabyte (GB) Terabyte (TB) (MB) 8 bit 1024 byte = 1024 210byte 220byte KB = 1024 230byte MB = 1024GB 240byte Il tempo di accesso è l'intervallo di tempo che trascorre dal = momento in cui è stato specificato un indirizzo di memoria e quello in cui è possibile accedere al suo contenuto. 4 LA CPU E' detta anche processore. È in grado di interpretare ed eseguire le istuzioni prelevate dalla memoria principale e rappresenta il cervello dell'elaboratore. Strutturalmente è costituito da: la ALU che ha il compito di eseguire le operazioni logico- matematiche richieste dalle istruzioni; i REGISTRI che sono dei veloci elementi di memoria per conservare il codice operativo delle istruzioni, gli operandi e i risultati della ALU; la MEMORIA CACHE che contiene una copia delle istruzioni così da renderle immediatamente disponibili alla CPU senza doverle ricercare nella RAM; l'UNITA' DI CONTROLLO che coordina tutte le attività interne della CPU. In alcuni computer i dispositivi che compongono la CPU sono integrati in un unico circuito detto Microprocessore. Tutte le attività della CPU sono scandite e sincronizzate dal CLOCK, la cui frequenza (1 GHz) determina anche il numero di operazioni elementari che possono essere eseguite nell'unità di tempo. LA MEMORIA SECONDARIA La memoria secondaria è quella più utilizzata dell'elaboratore in quanto la RAM è volatile mentre la ROM non è modificabile. Ci sono vari tipi di memoria secondaria: 1. HARD DISK → è la memoria secondaria più utilizzata può essere già compresa nel computer oppure esterna ad esso. 2. CD-ROM → sono dischi ottici caratterizzati dall'essere facilmente trasportabili. Hanno una capacità di 700MB, mentre i DVD-ROM di 4,7GB. Oggi esistono anche anche i CD-RW e i DVD-RW che sono riscrivibili e permettono di essere usati un milione di volte per salvare le cose. 3. PEN DRIVE → sono memorie anche con una elevata 5 capacità. Sono delle memorie di massa allo stato solido senza alcuna parte meccanica ed impiegano una tecnologia detta flash. DISPOSITIVI DI INPUT E OUTPUT I principali dispositivi di input sono la tastiera e il mouse e servono per dare istruzioni all'elaboratore. I principali dispositivi di output sono lo schermo e la stampante e servono per osservare i risultati delle istruzioni date all'elaboratore. Tutto ciò che costituisce fisicamente il computer fa parte dell'harware dell'elaboratore. Il sofware invece ha il compito di rendere più flessibile il sistema del computer. LIVELLI di FUNZIONALITA' DEL COMPUTER A livello più basso, l'istruzione è un insieme di bit che rappresenta numero binario. tipo linguaggio di un Questo è il linguaggio macchina ed è l'unico comprensibile per il computer. Non è semplice però utilizzare un computer che comprende solo questo tipo di linguaggio, per risolvere questo problema esiste il sofware di base, formati soprattutto dai sistemi operativi. 6 I sistemi operativi sono un insieme complesso di programmi che svolgono una serie di funzioni fondamentali per consentire all'utente un utilizzo della macchina semplice ed economico. Per esempio: interpreta una serie di comandi comunicati dall'utente mediante un'interfaccia grafica, contiene le funzionalità di fase per allocare i vari hardware. Tra i sistemi operativi più importanti ci sono: Windows, Unix, Linux, MacOs, DOS. Per software di sviluppo si intendono quei programmi che traducono le istruzioni in linguaggio C++ in un sistema binario; ne fanno parte editor, compilatori, interpreti e linker. I programmi applicativi sono programmi utilizzati per risolvere problemi in un ambito specifico. 7