1.92k likes | 2.09k Views
Recapiti. Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.it Home page: http://www.iac.cnr.it/~adamo Tel.IAC: 06/88470235.
E N D
Recapiti • Massimiliano Adamo del Consiglio Nazionale delle Ricerche presso l'Istituto per le Applicazioni del Calcolo M. Picone di Roma. e-mail: adamo@iac.cnr.it Home page: http://www.iac.cnr.it/~adamo Tel.IAC: 06/88470235
Il corso ha come obiettivo di fornire allo studente una conoscenza generale del calcolatore ed il suo utilizzo Obiettivi del Corso
Obiettivi del Corso Questi obiettivi vengono raggiunti proponendo due tipi di nozioni: • quelle più generali che riguardano l'informatica di base tese a sviluppare nello studente il senso critico per le problematiche informatiche, • quelle più tecniche che abbiano una ricaduta pratica: in particolare l’uso di internet • Il corso si articola in lezioni teoriche ed in lezioni pratiche, l'accertamento della preparazione consisterà in un esame scritto ed orale.
Programma del Corso • Architettura dei Calcolatori • Sistemi Operativi • Linguaggi di Programmazione • Rappresentazione dei Dati ed Algoritimi • Gestione Distribuita dei Calcolatori • Il funzionamento di una rete locale e di Internet • Trattamento Ipertestuale dell'Informazione
Applicativi • Applicativi 1: Il web • Applicativi 2: il foglio elettronico • Applicativi 3: il wordprocessor • Applicativi 4: i database
Cos’è un Computer ? • Un calcolatore digitale è una macchina che può risolvere problemi eseguendo le istruzioni fornitegli. • Una sequenza di istruzioni che descrive come eseguire un certo compito è chiamata programma. • I circuiti di un calcolatore elettronico possono riconoscere ed eseguire un numero limitato di istruzioni semplici in cui tutti i programmi devono essere convertiti prima di poter essere eseguiti.
Informatica, Linguaggi e Programmi L'etimologia italiana di informatica proviene dai termini informazione e automatica, e sicuramente Philippe Dreyfus, che per primo utilizza nel 1962 il termine informatique (informatica) voleva significare la gestione automatica dell'informazione mediante calcolatore. Sebbene successivamente ne siano state date diverse definizioni, forse si avvicina di più alla realtà quella secondo cui l'informatica è la scienza che si occupa della conservazione, dell'elaborazione e della rappresentazione dell'informazione.
Informatica, Linguaggi e Programmi • l‘elaborazione viene effettuata attraverso dei PROGRAMMI scritti in un qualche LINGUAGGIO DI PROGRAMMAZIONE • un linguaggio di programmazione è un linguaggio formale dotato di una sintassi e di una semantica ben definite • per dare un programma occorre un algoritmo, cioè una sequenza di istruzioni deterministiche comprensibili dall'esecutore
Componenti di un elaboratore • In un elaboratore possiamo distinguere quattro componenti elementari: • la La CPU (acronimo di Central Processing Unit, detta comunemente processore) • la memoria principale (o centrale) • la memoria secondaria • i dispositivi di input/output
CPU - Central Processing Unit Qualunque CPU contiene: • una ALU (Unità Aritmetico-Logica) che si occupa di eseguire le operazioni logiche e aritmetiche; • una Unità di Controllo che legge dalla memoria le istruzioni, se occorre legge anche i dati per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è, scrivendolo in memoria o in un registro della CPU. • dei registri, speciali locazioni di memoria interne alla CPU, molto veloci, a cui è possibile accedere molto più rapidamente che alla memoria: il valore complessivo di tutti i registri della CPU costituisce lo stato in cui essa si trova attualmente.
CPU - Central Processing Unit La CPU e' situata in una posizione centrale sulla piastra madre. Ad essa e' affidato gran parte del lavoro del computer, infatti essa riceve continuamente delle istruzioni da eseguire.
Hertz • L'hertz (simbolo Hz) è l'unità di misura del Sistema Internazionale della frequenza. • Un hertz significa semplicemente uno al secondo • L'unità può essere applicata a qualsiasi evento periodico • Per esempio, si può dire di un orologio che ticchetta a 1 Hz.
Hertz • 1 chilohertz (simbolo kHz) = 103 Hz = 1.000 Hz • 1 megahertz (simbolo MHz) = 106 Hz = 1.000.000 Hz • 1 gigahertz (simbolo GHz) = 109 Hz = 1.000.000.000 Hz • 1 terahertz (simbolo THz) = 1012 Hz = 1.000.000.000.000 Hz • 1 petahertz (simbolo PHz) = 1015 Hz = 1.000.000.000.000.000 Hz
CPU - Central Processing Unit • Una misura della velocità e data dal numero di cicli al secondo (hertz) che e in grado di compiere • Una performance oggi ragionevole e intorno ai 3.0 Gigahertz • Gli ultimi pentium 4 lavorano oggi a circa 3,8 GHz • Nei primi pc IBM si aggira tra i 4,77 e i 10 MHz
CPU - Central Processing Unit • Ogni istruzione rappresenta un ordine di elaborazione dei dati; il lavoro svolto e' composto soprattutto da calcoli e trasporto dei dati, che seguono un percorso verso la CPU. Questo percorso si chiama bus di sistema. • Alla CPU viene fornito un lungo flusso di dati attraverso il bus di sistema; questi dati possono essere di due tipi: • Istruzioni(per manipolare dati) • Dati (da gestire secondo le istruzioni)
CPU - Central Processing Unit • Il compito piu' importante per la CPU consiste nel decodificare le istruzioni e nel localizzare i dati. • La decodifica consiste nell'interpretare le istruzioni che il programma-utente invia alla CPU. • Tutte le CPU compatibili “Intel” dei PC sono anche "compatibili 8086“: l'Intel 8086 è un microprocessore a 16 bit progettato dalla Intel nel 1978, che diede origine appunto all'architettura x86
CPU - Central Processing Unit • Dal 1978 l'8086 e le successive CPU hanno sempre ricevuto dei set di istruzioni compatibili che hanno permesso di affrontare senza traumi il passaggio da una generazione all'altra di microprocessori. • Le prime CPU avevano il cosiddetto CISC (Complex Instruction Set Computer, Set d'istruzioni complesse). • Il set d'istruzioni X86 (la X sta per 2, 3 e 4, 5 ecc…), e' stato sviluppato in origine per l'8086, con i suoi miseri 29000 transistor!
CPU - Central Processing Unit • Il RISC (Reduced Instruction Set Computer, computer con un set d'istruzioni ridotto), contiene un numero molto inferiore d'istruzioni rispetto al CISC. • Questi processori hanno una unità di controllo molto semplice e riservano invece molto spazio per i registri interni: • una CPU RISC ha di solito da un minimo di un centinaio ad alcune migliaia di registri interni generici, organizzati in un file di registri. • Il tipico set di istruzioni RISC è molto piccolo, circa 60/70 istruzioni molto elementari (logiche, aritmetiche e istruzioni di trasferimento memoria-registro e registro-registro); • Le istruzioni hanno tutte lo “stesso formato” e la stessa lunghezza, e tutte o quasi vengono eseguite in un solo ciclo di clock.
Le Memorie • La memoria e' quella parte del computer dove sono contenute tutte le informazioni da elaborare ed i risultati derivanti da queste o le istruzioni utili affinche' vengano elaborate.
Le Memorie (Principali) • RAM (Random Access Memory) • EPROM, acronimo di Erasable Programmable Read Only Memory Sono memorie centrali direttamente collegate, senza intermediazioni, al cuore pulsante del computer, la CPU. Il termine ROM viene ancor oggi utilizzato per indicare (impropriamente) quelle memorie non volatili che mantengono i dati in memoria anche in mancanza di alimentazione.
Le Memorie • Abbiamo anche una memoria detta secondaria che si contrappone alla primaria: qualunque mezzo usiamo per una memorizzazione non volatile (hard disk,floppy disk, cd-rom. dvd) nella quale vengono depositate informazioni gia' elaborate dalla CPU o che non lo saranno nell'immediato. • Tutta la memoria esterna indirizzabile da quella centrale, alla quale si può giungere per mezzo di canali di I/O (Input/Output): viene anche chiamata memoria esterna (external storage), secondary storage (memoria secondaria), auxiliary storage (memoria ausiliare).
La RAM: com’e’ fatta? • La RAM e' piccola, sia fisicamente (e' conservata in un microchip) sia nella quantita' di dati che puo' contenere.
La RAM: com’e’ fatta? • E' molto piu' piccola dell'hard disk sia fisicamente sia come capacita' di contenimento dati: un computer, oggi, e' dotato di 256/512 MB di RAM mentre gli Hard disk hanno una capacità di 80/120 GB Tre "cose" da ricordare: • La velocità della RAM e' misurata in MHz: una velocità oggi accettabile è di 300/400 MHz • SDRAM (synchronous DRAM) nome generico per dynamic random access memory (DRAM) che sono sincronizzate ed ottimizzate con il clock del Microprocessore. Queste caratteristiche permettono di massimizzare il numero di istruzioni elaborate in una unità di tempo. • DIMM (dual in-line memory module )
Rappresentazione dei dati in memoria • La memoria puo essere vista come una lunga sequenza di componenti elementari (celle) ognuna delle quali e in grado di conservare un bit.
Rappresentazione dei dati in memoria • Es. per rappresentare il numero 27con 8 bit posso scrivere 27=2*13+1=2(6*2+1)+1=22(2*3)+2+1= 23(2+1)+2+1=24+23+21+20 27 in base 2 si rappresenta quindi con 00011011
Rappresentazione dei dati in memoria • Ogni cella di memoria e caratterizzata da un indirizzo espresso mediante un numero intero. • Tale indirizzo è a sua volta rappresentato internamente mediante la sua codifica binaria: • il numero di bit utilizzati per scrivere tale codifica prende il nome di spazio di indirizzamento.
Unità di misura della memoria • Bit (unita' di codifica elementare: 0/1, v/f) • Byte (2^3 bits) • KB (KiloByte: 2^10 bytes, pari a circa 1000 byte) • MB (MegaByte 2^20 bytes ovvero circa un milione di byte) • GB (GigaByte 2^30 bytes, circa un miliardo di byte) • TB (TeraByte 2^40 bytes, circa mille miliardi di byte) di byte) • PB (PetaByte 2^50 bytes)
Capacità di alcuni dispositivi di memoria • Hard DISK : decine di GB fino a qualche TB • Floppy: 1.4 MB • CD-ROM: > 650 MB, < 800 MB • DVD: >4.7 GB; < 9 GB (Dual Layer) • Penne USB: fino a 2 GB • Memory Stick e simili: fino a 2 GB
Caratteristiche delle schede di memoria • parole di memoria (word): permettono di trasferire sequenze di bit di una determinata lunghezza (ad es. 32 bits), • tempo di accesso: e una misura della rapidita con cui l'informazione viene recuperata dalla memoria, si misura in nano-secondi, • costo: e un parametro importante perche se ci sipuò permettere una grande quantità di memoria molto veloce le performances del sistema migliorano) • volatilità: la memoria principale ha bisogno di un continuo refresh dunque tutte le informazioni contenute in essa sono perse al momento dello spegnimento del sistema.
Architetture a 32 ed a 64 bit I termini 32 e 64 bit sono utilizzati in informatica per indicare che, in una determinata architettura, gli interi sono indicati con al massimo 64 bit di larghezza o per descrivere l'architettura di una determinata CPU, che usa i registri interni, il bus degli indirizzi o bus dei dati di quella dimensione.
Architetture a 32 ed a 64 bit Ad oggi (2006) le CPU a 64 bit sono comuni nei server, e si stanno diffondendo sempre più anche nell'ambito dei personal computer (precedentemente a 32 bit), con le architetture AMD64, EM64T e PowerPC 970 Il processore diventa in grado di gestire interi a 64 bit in modo nativo. I processori a 32 bit possono gestire in modo nativo solo numeri interi fino a circa 4 miliardi, dopodiché devono combinare più numeri in modo piuttosto complicato. Un processore a 64 bit sposta questo limite a 16 miliardi di miliardi.
Collegamento tra le unità Il collegamento tra le varie unità è realizzato mediante canali di comunicazione detti bus ed è organizzato secondo una struttura di tipo master/slave
Collegamento tra le unita Pregi e difetti di un collegamento a bus sono: Semplicità Lentezza Estendibilità Limitata capacità Standardizzabilità Sovraccarico della CPU Da un punto di vista funzionale il bus puo essere suddiviso in 3 componenti: il bus dati, il bus degli indirizzi, il bus di controllo..
La memoria principale • La memoria centrale fornisce all'elaboratore la capacità di ricordare le informazioni. • In particolare la memoria dovrà contenere sia il programma, cioè la lista di istruzioni che l'unità di controllo deve leggere ed eseguire, che i relativi dati. • N.B. la memoria rappresenta queste diverse informazioni allo stesso modo mediante cifre binarie (detti bit dall'inglese binary digit).
Architettura di Von Neumann • Con l'espressione architettura di von Neumann o macchina di von Neumann ci si riferisce a uno schema di progettazione di calcolatori elettronici che prende nome dal matematico John von Neumann. • Lo schema si basa su quattro componenti fondamentali: • CPU o unità di lavoro che si divide a sua volta in • Unità di calcolo o ALU • Unità di controllo • Unità di memoria, intesa come memoria di lavoro o memoria principale (RAM, Random Access Memory) • Unità di input, tramite la quale i dati vengono inseriti nel calcolatore per essere elaborati • Unità di output, necessaria affinché i dati elaborati possano essere restituiti all'operatore • Uno speciale registro dentro la ALU detto accumulatore, che faceva da buffer tra input e output grazie a una speciale istruzione che caricava una parola dalla memoria all'accumulatore e viceversa.
Architettura di Von Neumann • Bisogna comunque precisare che questa è una schematizzazione molto sintetica, sebbene molto potente: basti pensare che il computer con il quale state leggendo questo articolo è progettato secondo l'architettura von Neumann (purché non si tratti di qualche mainframe aziendale). Inoltre, quando si parla di unità di memoria si intende la memoria principale, mentre le memorie di massa sono considerate dispositivi di I/O. Il motivo di ciò è innanzitutto storico, in quanto negli anni Quaranta, epoca a cui risale questa architettura, la tecnologia non lasciava neanche presupporre dispositivi come hard disk, CD-ROM o anche solo nastri magnetici, ma anche tecnico, se si considera che in effetti i dati da elaborare devono comunque essere caricati in RAM, siano essi provenienti da tastiera o da hard-disk.
Rappresentazioni dei dati in memoria :gli interi • Un unico byte è una quantità troppo piccola per rappresentare un numero intero. • La rappresentazione dei numeri interi, sia positivi che negativi, avviene nell'elaboratore considerando più byte consecutivi; usualmente si utilizzano 2 o 4 byte e, in certe situazioni, anche più. Un unico bit (di regola il primo a sinistra) rappresenta il segno: il bit 0 indica il "+" e il bit 1 il "-". • Per certe applicazioni, due byte sono sufficienti e in due byte si possono memorizzare tutti i numeri interi relativi da -32768 a +32767, esattamente un numero negativo in più rispetto ai positivi, poiché 0 è considerato un numero positivo.
Rappresentazioni dei dati in memoria:con virgola • Si consideri ad esempio il numero 12,345. Il numero viene prima di tutto "normalizzato", cioè scritto in una forma standard, del tipo 0,... seguito da una parte decimale la cui prima cifra sia diversa da zero. Per esempio il numero 12,345 diviene: 0,12345*10^2. • Nella terminologia tecnica, 0,12345 si dice la "mantissa" del numero 12,345, mentre l'esponente del 10 (in questo caso il 2) si dice l'"esponente" del numero considerato.
Rappresentazioni dei dati in memoria:con virgola • Mantissa ed esponente individuano univocamente il numero e quindi possono servire a rappresentarlo nella memoria dell'elaboratore. • Un numero con la virgola del tipo descritto si dice un "numero reale" nel gergo dell'informatica, e viene memorizzato in un certo numero di byte consecutivi, da 4 fino a 64 e anche più, a seconda dell'elaboratore e della particolare applicazione. • Cioe’: SEGNO X MANTISSA X BASE ^ ESPONENTE
Rappresentazioni dei dati in memoria:le lettere • Un testo letterale è una sequenza di "caratteri" presi da un "alfabeto" finito e ben caratterizzato. La codifica dei caratteri è stata a suo tempo standardizzata e fu detta "codifica ASCII", dove la sigla sta per "American Standard Code for Information Interchange". Tale codifica è oggi accettata quasi universalmente e comprende: • le lettere maiuscole e minuscole dell'alfabeto inglese (codici da 65 a 90 e da 97 a 122) • le cifre decimali (codici da 48 a 57)
Rappresentazioni dei dati in memoria:le lettere • i caratteri di interpunzione, cioè lo spazio, la virgola, il punto fermo, i due punti, il punto esclamativo, ecc.; i segni aritmetici, come il più, il meno, l'asterisco, le parentesi tonde, quadre e graffe; alcuni simboli speciali, come il dollaro, la barra verticale, la chiocciola (codici da 32 a 47, da 58 a 64, da 91 a 96 e da 123 a 127)
Rappresentazioni dei dati in memoria:le lettere • La codifica estesa (codici da 128 a 255) ha permesso di introdurre una serie di caratteri speciali, molto utili in varie applicazioni: • i caratteri nazionali, cioè accentati o con altri segni particolari • alcuni caratteri particolari, come !, ? e le virgolette • i caratteri semigrafici che permettono di disegnare, sullo schermo o sulla stampante, semplici disegni, schemi o diagrammi • i caratteri matematici, come alcune lettere greche, alcuni simboli e alcuni caratteri speciali
Programmi • L'elaborazione delle informazioni da parte del processore avviene secondo sequenze di istruzioni che ne regolano il comportamento, dette programmi. • Secondo il modello di Von Neumann la memoria principale deve ospitare contemporaneamente almeno due tipi di informazioni: • la sequenza delle istruzioni • l'insieme dei dati su cui operare
I compiti del processore • Ad ogni ciclo il processore: • legge dalla memoria principale la prossima istruzione da eseguire, • esegue l'istruzione.
I registri • Sono piccole unità di memoria interne al processore ed estremamente veloci. • Servono per mantenere le informazioni di necessità immediata per il processore. • Possono essere speciali (per scopi particolari ad es. registro Program Counter, registro istruzioni, registro di stato, registri di comunicazione) • o generali detti anche aritmetici per contenere risultati parziali. (Il numero e le dimensioni di questi registri variano da processore a processore).
Il registro Program Counter • Contiene l'indirizzo della cella di memoria in cui si trova la prossima istruzione da eseguire. • Dimensioni del registro: PC = dimensioni degli indirizzi