Issuu on Google+

Antonino Galati

ELEMENTI DI INFORMATICA - Appunti personali -

1


Concetto di informatica Il termine informatica automatique”.

deriva

dalla

sintesi

del

termine

francese

“information

L’informatica è la scienza che studia la codifica, l’elaborazione e la trasmissione dei dati al fine di ricavarne informazioni. È necessario prima di tutto analizzare i concetti di dato e informazione. Si definisce dato nel senso più generico ogni evento che colpisca un sistema elaborante, che può essere il nostro cervello o un elaboratore elettronico: quindi possiamo parlare di dato per ogni evento che stimola la nostra percezione, così come ogni evento che genera un’elaborazione da parte di un computer. Un dato che viene recepito mediante un linguaggio viene definito dato strutturato. Quindi un dato è definito strutturato se è codificato, cioè se esiste un linguaggio, una codifica in grado di rappresentarlo univocamente. Ogni dato strutturato può essere un’informazione, non il contrario. Il dato strutturato diventa informazione se e solo se è un grado di provocare un cambiamento del sistema. Ciò che ci è già noto non costituisce informazione in quanto non modifica le nostre conoscenze, ma quando leggiamo il giornale ( mediante dunque il linguaggio scritto o verbale ) apprendiamo notizie che alterano il nostro stato di memoria e comunque modifica il nostro stato conoscitivo: quella è informazione. In un computer ogni dato strutturato rappresenta un’informazione, in quanto il sistema elaborante subisce un cambiamento di stato, al livello fisico della macchina.

Codifica dell’informazione Ogni dato recepito da un computer è un dato strutturato, in quanto viene codificato da un linguaggio, definito linguaggio macchina basata sul sistema binario, ovvero un linguaggio basata su due soli elementi di base : lo 0 e l’ 1. Da soli non significano nulla: ma opportunamente posizionati in sequenza forniscono il linguaggio di cui si avvale il computer. Tra i codici noti citiamo il codice ASCII, che utilizza le combinazioni di 8 cifre di sequenze di 0 e 1 per rappresentare, ad esempio, ogni carattere di una tastiera. Ogni unità logica che costituisce il linguaggio è definito bit. Un bit dunque può contenere il valore 0 o 1. L’insieme di 8 cifre costituisce un byte. Per cui 8 bit = 1 byte che nel linguaggio ASCII rappresenta ogni carattere presente in una tastiera. Successivamente vedremo cosa rappresenta un bit al livello fisico della macchina. Per adesso diciamo che il bit è l’unità di misura dell’informazione in un computer.

2


L’informazione in un computer Chiunque abbia visto un computer al suo interno, non ha potuto non notare la fitta trama di linee che collegano i vari elementi elettronici fra di loro. Ogni elemento viene definito microchip ed ha caratteristiche specifiche a seconda la sua funzione. Le linee che collegano fra di loro sono i microcircuiti, ovvero dei microscopici circuiti elettrici caratterizzati da una situazione di tipo on/off. Diamo alcuni concetti di elettrotecnica per capire meglio.

Si definisce elettricità quando attraverso un filo, chiamato conduttore, passa un flusso ordinato di elettroni. Per convenzione il verso della corrente è opposto a quello degli elettroni. Consideriamo un circuito semplice composto da una batteria generatore (G) che alimenta una lampadina (U) attraverso un circuito elettrico di intensità I. Esiste un dispositivo, chiamato interruttore, in grado di accendere e spegnere la lampadina, in quanto riesce a chiudere e aprire il circuito ( situazione on/off ). Ai poli della batteria vi è un numero di elettroni liberi diverso, poiché in -V ci sono pochi elettroni mentre in +V ce ne sono tanti. Questa è la normale condizione di una qualsiasi batteria, e viene definita differenza di potenziale o voltaggio, è misurato in volt (V). Ora, ogni impulso elettrico ha un valore di voltaggio che è dato in sostanza dalla quantità di elettroni che passano per ogni impulso. I componenti del computer utilizzano proprio questi impulsi elettrici per “parlare” tra loro: il loro linguaggio è composto di due “parole”, ognuna delle quali rappresentate da un dato voltaggio, e precisamente: impulso da 3,3 V = valore “ 0 ” ( corrispondente allo stato “off” dell’esempio ); impulso da 5 V = valore “ 1 ” ( corrispondente allo stato “on” dell’esempio ); Questi impulsi rappresentano fisicamente il bit così come spiegato. In un computer dunque circolano solo questi due voltaggi, più un terzo voltaggio chiamato Signal Ground (segnale di zero) che serve a pulire le linee da eventuali residui elettroni che possono causare disturbo nel segnale. Questi impulsi hanno un voltaggio talmente basso che è facile che possono essere disturbati, e quindi alterare in qualche modo il dato.

3


Hardware e software Possiamo definire hardware l’insieme delle parti fisiche di un computer, visibili o microscopiche, esterne o interne al case. Gli elementi hardware in questione definiscono l’architettura fisica del pc. Successivamente ne definiremo le componenti principali. Possiamo definire software l’insieme dei programmi eseguibili dal computer. Si distinguono in software di sistema quali il BIOS e i sistemi operativi, senza i quali il computer non potrebbe nemmeno funzionare, ed i software applicativi. Il BIOS (Basic Input Output System) è un software di base residente in un’area della ROM che ha la funzione di dare le istruzioni alla CPU utili affinchè essa possa riconoscere le unità periferiche ad essa connesse. In realtà l’area di memoria su cui risiede il BIOS è una parte di ROM modificabile elettromagneticamente chiamata EEPROM Le principali funzioni di un sistema operativo partono dalla gestione della CPU e dei programmi di esecuzione, alla gestione delle memorie, alla gestione del file system e delle periferiche, fino all’interazione con l’utente. Il sistema operativo presiede a tutte le operazioni della CPU, decide a quale unità di input/output dare la priorità ( tramite la gestione degli interruptus ), nonché creare dei livelli intermedi di linguaggio, dal linguaggio macchina a quello utente.

I software applicativi sono quelli che vengono installati ed utilizzati per effettuare delle operazioni, sfruttando le capacità elaborative del computer. Questi software svolgono le specifiche funzioni “user oriented” come videoscrittura, calcoli, navigazione in internet ( ad esempio il pacchetto Office, i Browser, i client di posta elettronica etc.. ).

Processo di inizializzazione del computer Il computer all’avvio compie alcune istruzioni di preparazione fondamentali che gli permettono di eseguire tutte le operazioni dell’utente. Queste istruzioni per inizializzare il computer risiedono per l’appunto nella ROM. Il processo di inizializzazione si svolge in tre fasi: • Fase di caricamento del BIOS, cioè delle istruzioni (drivers di primo livello), che permettono di identificare le periferiche annesse alla CPU, dalle memorie ai sistemi input/output; • Fase di esecuzione dell’autodiagnostico, cioè un programma che spinge la CPU a fare la diagnosi del funzionamento sia di sé stessa che di tutte le unità connesse; • Fase di Bootstrap, cioè della ricerca nella memoria del sistema operativo, con il seguente caricamento kernel e libreria. Al termine parte il sistema operativo e compare il desktop sul monitor.

4


Schema di un computer

Schema di una cpu

La Cpu ha il compito di decodificare, elaborare, trasmettere o inviare alle memorie i dati (codificati in sequenze binarie 0/1). Rappresenta il cervello ed il cuore del computer, in quanto unità possiamo dire “pensante” a cui fanno capo tutte le altre unità del sistema.

5


Le unità principali della CPU sono: •

• • • • • •

I bus: circuiti dalla funzione di trasportare i dati dalla CPU alle altre unità. Si dividono in Bus Dati, trasmette i segnali provenienti da istruzioni e registri; Bus Indirizzi, che trasmette i segnali d’indirizzamento proveniente dal Pointer; Bus di Controllo, se i segnali sono per l’appunto segnali di controllo; Accumulatori o Registri : hanno il compito di memorizzare temporaneamente i dati, che sono in elaborazione nella CPU; Interprete Istruzioni : circuiti preposti ad interpretare le istruzioni; Pointer (Contatore di programma): registri contatori che hanno il compito di memorizzare l’indirizzo di memoria dove sono memorizzati i dati; ALU (Arithmetic Logic Unit): circuiti che materialmente eseguono le operazioni aritmetiche e logiche; Circuiti di Controllo: sono circuiti che hanno il compito di comandare i tempi per l’immissione ed l’emissione dei dati; Cache L1 : memoria aggiuntiva interna alla CPU che permette di ridurne i tempi di attesa e quindi velocizzare i tempi di elaborazione dei dati.

Le caratteristiche principali della CPU: • •

Frequenza di clock : indica il numero delle operazioni elementari che vengono compiute in un secondo; Tipologie di CPU : le maggiori famiglie costruttrici sono la Intel con la famiglia dei Pentium e dei Celeron, e la AMD con la famiglia Athlon.

Clock e ciclo di clock Il clock è un oscillatore che genera un segnale di frequenza nota e stabile, dal quale si ricavano impulsi che si succedono ad intervalli noti e stabili, utilizzati per pilotare e sincronizzare le operazioni del sistema. Si definisce ciclo di clock l’intervallo di tempo che intercorre tra un impulso di clock ed un altro. Il ciclo di clock si suddivide in tre sottocicli: • • •

ciclo di fecth, dove il dato viene acquisito dalla memoria (RAM); ciclo di execute, dove il dato viene elaborato dalla CPU; ciclo di increase (incremento), ove il pointer si posiziona nell’indirizzo di memoria dove si trova il prossimo dato da prelevare.

Il fenomeno della memorizzazione dei dati Abbiamo detto che gli elettroni sono quelli che, circolando nel mezzo conduttore in modo ordinato, danno luogo agli impulsi elettrici. Al neutrone vengono convenzionalmente attribuite carice negative (e-). Le atre cariche, quelle positive, sono quelle del nucleo dell’atomo, per cui rimangono ferme nel reticolo dell’elemento conduttore. Dalla teoria sull’elettromagnetismo possiamo definite come effetto magnetico i seguenti fenomeni:

6


• •

la repulsione tra cariche dello stesso segno; l’attrazione tra cariche di segno opposto.

Detto questo, dovete sapere che ogni spostamento di elettroni produce un effetto magnetico definito campo, dovuto sempre all’ammassamento di elettroni ( generante poli negativi ) da un lato e la completa assenza ( generante poli positivi ). L’entità del campo dipende soprattutto dal voltaggio dell’impulso. Dunque collegando i concetti: • • •

ad ogni voltaggio (3,3 o 5 volt ) comporta un impulso ( e quindi un bit 0 o 1 ); ogni impulso è uno spostamento di elettroni; ogni spostamento di elettroni genera un “campo”;

Quindi: ad ogni voltaggio corrisponde un campo magnetico. Esistono materiali che hanno la capacità di magnetizzarsi (comportamento di una calamita) come i metalli. A seconda della loro capacità assumono comportamenti di tipo: • • •

ferromagnetico, si magnetizza e rimane magnetizzato anche finito l’effetto del campo magnetico prodotto dagli impulsi ( caso degli hard disk ); paramagnetico, si magnetizza e rimane magnetizzato fin quando è presente il campo, ovvero fin quando riceve impulsi elettrici, cioè quindi fin quando è alimentato ( caso della “volatilità” della RAM ); diamagnetici, che non si magnetizzano mai, e prendono il nome di isolanti.

A condizioni iniziali, le cariche positive e negative sono distribuite in modo uniforme, sostanzialmente in equilibrio. Per effetto del campo, il materiale è soggetto ad un flusso di elettroni ( rotazione dello spin ) tali a formare una “bipolarizzazione” con i due poli + e - ; le parti di materiale dove si verifica ciò vengono definiti domini di Weiss, e sono quelli dove l’alterazione della condizione iniziale produce una condizione che ha una permanenza dipendente dal tipo di materiale magnetico.

memorizzazione dei dati nelle memorie interne Nei supporti di memoria magnetici i bit vengono codificati con l’orientamento degli spin degli elettroni del reticolo cristallino dei domini di Weiss. In particolar modo, il numero degli elettroni orientati è proporzionale al campo magnetico prodotto dagli impulsi, ovvero proporzionale al voltaggio. Quindi gli elettroni sono più orientati in proporzione di un voltaggio di 5,5 volt, corrispondente al bit 1; mentre un minore numero di elettroni orientati in caso di un voltaggio di 3 volt, corrispondente al bit 0.

7


La memoria Rom ( read only memory ) La ROM è una memoria che permette in buona parte solo la lettura dei dati che vengono definiti durante la realizzazione in fabbrica. In parte in quanto al suo interno è presente una parte di essa, definita EEPROM, programmabile dall’utente in quanto regola alcune operazioni del BIOS. Essendo composto da materiali magnetici, il contenuto della memoria non va perduto quando manca l’alimentazione del computer.

La memoria Ram ( random access memory ) La RAM è la memoria di lavoro della CPU poiché contiene i dati e le istruzioni che devono essere elaborati nell’immediato, nonché tutte le istruzioni necessarie all’elaborazione dei programmi ed al funzionamento del computer. Si definisce come memoria ad accesso casuale in lettura ed in scrittura. In lettura poiché tale memoria non si cura della provenienza fisica dei dati che carica, ma è in grado di saperli ordinare in quanto è in grado di “leggere” la sequenzialità dei contenuti stessi; in scrittura, poiché i dati che va a scrivere sul supporto magnetico permanente ( in questo caso l’hard disk ) li va a porre in modo del tutto casuale, cioè in base alle prime celle di memoria libere che trova. Le caratteristiche principali della RAM sono: •

la velocità di lettura e scrittura dei dati;

la volatilità della memoria, ovvero la capacità di memorizzare dati solo se alimentata da corrente elettrica.

La RAM di punta oggi è la DDR ( Double Date Rate ) che ha soppiantato le SDRAM poiché sfrutta una nuova tecnologia di materiali che gli permette operazioni sia di lettura che di scrittura all’interno dello stesso ciclo di clock. Prima dell’avvento della DDR, le operazioni di scrittura ( flusso dati in entrata ) o le operazioni di lettura ( flusso dati in uscita ) avvenivano singolarmente ad ogni impulso di clock; con la DDR si sfruttano le fasi di ascesa e di discesa dell’impulso di clock. Infatti durante la fase di ascesa il dato viene prelevato, lasciando libera un’allocazione che nella seguente fase di discesa verrà occupata da un dato in scrittura. Così facendo la velocità di trattamento dei dati è così raddoppiata, dimezzando di fatto i tempi, rendendo la memoria più consona alle prestazioni di elaborazione della CPU.

Kernel Costituisce il nucleo di un software applicativo, ovvero il pacchetto dati necessario affinché il programma possa avviarsi e possa essere utilizzato dall’utente. Consiste sostanzialmente in quei files di primaria importanza per fornire la funzionalità dell’applicativo. A secondo dell’utilizzo, è possibile che successivamente la RAM possa caricarsi elementi secondari di supporto alle funzionalità del programma, quali le librerie.

8


Le memorie cache Storicamente, le CPU sono sempre state più veloci delle memorie. Quando la CPU invia una richiesta alla memoria, la parola che serve arriverà solo dopo molti cicli di CPU; più la memoria è lenta, più cicli dovrà aspettare la CPU. La tecnologia consente di costruire memorie veloci come la CPU, ma esiste un problema: per poter essere veloci come le CPU, queste memorie dovrebbero trovarsi sullo stesso chip della CPU (perché la connessione via bus alla memoria è lenta). Tale soluzione farebbe aumentare il volume del chip (CPU + memorie) e ne farebbe aumentare anche il costo. La soluzione per tale problema e’ un compromesso che prevede la presenza di una piccola memoria veloce nello stesso chip che contiene la CPU e una o più memorie lente all’esterno della CPU collegate tramite bus. La memoria cache (dal francese cacher che significa nascosto) è una memoria di appoggio ad alta velocità posta fra il processore e la RAM che velocizza gli accessi ai dati e alle istruzioni. La cache è caratterizzata da un tempo di accesso molto minore di quello della RAM ed è in grado di fornire informazioni al processore più velocemente (alcuni nanosecondi), le sue dimensioni sono però molto inferiori a causa del maggior costo di fabbricazione. Può rispondere alle richiesta di lettura oppure filtrare le richieste di scrittura verso la memoria centrale senza imporre stati di attesa al processore (uno stato di attesa e’ un ciclo di clock durante il quale il processore sospende l’elaborazione e attende il completamento di una richiesta di lettura o scrittura sulla memoria). Quando la CPU deve accedere ad un indirizzo di memoria, accede prima alla cache: nel caso in cui questo non sia presente nella cache si verifica un fallimento di accesso, allora lo preleva dalla memoria centrale e lo ricopia nella memoria cache insieme ad un prefissato numero di locazioni contigue. La memoria cache è organizzata in due distinti livelli: quella inglobata all’interno del microprocessore (128-256 KB) è detta cache di 1° livello (L1) o interna, è accessibile in modo quasi istantaneo e risulta quindi la più veloce: garantisce un flusso continuo all’interno del processore; l’altra, incorporata sulla scheda madre (512 KB- 2 MB) è detta cache di 2° livello (L2) o esterna, risulta essere circa 5 volte più lenta della cache L1, serve per superare la lentezza della memoria centrale.

9


Gli hard – disk Il principio di funzionamento degli hard-disk si è andato via via perfezionando, ma il principio base è rimasto sempre lo stesso. Una testina volante fissata ad un dispositivo molto aerodinamico simile ad un’ala effettua le operazioni di scrittura e lettura in modo molto simile a quello che fa un registratore audio (qui però la testina si muove...); l’hard-disk gira vorticosamente creando un microvortice in grado di far allontanare con lo spostamento d’aria la testina dal disco di qualche micron (1 micron= 1/1000 di millimetro!). Quando un programma lo richiede, l'hard disk lo trova e byte per byte lo invia alla CPU per la successiva eleaborazione. Le caratteristiche salienti del disco fisso in termini di prestazioni sono: Il ritmo di trasferimento dei dati (data rate): è la quantità di dati trasferibili in un secondo dal disco al controller; Il tempo medio di accesso: è il tempo necessario a posizionare la testina sull’apposita traccia (seek time, 5-15 ms, 1 ms per le tracce adiacenti) più il tempo che occorre perché l’apposito settore passi sotto la testina (latency time, dipende dalla velocità di rotazione, 5400-10800 rpm 2.7-5.4 ms). La capacità di immagazzinamento: è la massima quantità di dati che si possono memorizzare su disco dopo la formattazione; infatti il sistema operativo utilizza una parte del disco per immagazzinare le proprie informazioni e quindi lo spazio reale per la memorizzazione dei dati è inferiore dopo la formattazione. I meccanismi di un disco fisso sono piuttosto semplici, almeno da un punto di vista teorico. Se apriamo un hard-disk ci accorgiamo che è costituito da una pila di uno o più piatti (i veri e propri dischi) ricoperti da uno strato (supporto magnetico) simile ad una microscopica asfaltatura, su cui vengono registrati i dati. I piatti ruotano assieme su un perno, chiamato asse. Solitamente il perno si collega direttamente ad un motore assiale che li fa girare insieme. La maggior parte dei dischi fissi adopera motori assiali servo controllati, che verificano costantemente la velocità adoperando sensori ottici o magnetici che compensano automaticamente qualsiasi variazione. Solitamente i piatti compiono dalle 3000 alle 8000 rotazioni al minuto (rpm). I piatti sono suddivisi in zone chiamate tracce, queste a loro volta sono suddivise in settori. Ma ad essere più precisi, il disco fisso è suddiviso in cilindri, (o cluster) tracce (track) e settori (sector). Questo tipo si suddivisione è logica e non fisica e viene impostata una volta per tutte in fabbrica, quando appunto si esegue la formattazione a basso livello. Le tracce sono degli anelli (ideali) presenti su ogni piatto e sono identificati da un numero intero che parte da zero. Indipendentemente dal tipo di supporto magnetico, le testine di lettura e scrittura devono arrestare il proprio moto laterale sul disco ogni volta che leggono o scrivono dati. Mentre le testine sono ferme, i piatti del disco girano sotto di esse e, ogni volta che un piatto completa un giro, le testine descrivono una circonferenza completa sulla sua superficie. I settori sono parti delle tracce, (una traccia è divisa in settori) rappresentano la minima quantità di memorizzazione di dati che supporta il disco. Le testine vengono pilotate da un motorino che fa ruotare anche i dischi ad una velocità di rotazione sempre costante. Queste testine, sulla base delle indicazioni fornite

10


dall'elettronica di controllo, si muovono avanti e indietro fino a raggiungere la zona esatta nella quale devono essere lette o scritte le informazioni. Il numero di giri (rpm) che il disco effettua in un minuto è indicato con queste sigle: 5400 rpm, 7200 rpm, ecc.., cioè 5400 giri al minuto, 7200 giri al minuto e così via. Più alto è questo numero, maggiore sarà l'accesso ai dati di lettura e scrittura. Il transfer rate indica la velocità con la quale un disco fisso riesce a leggere i dati. Di solito quando acquistiamo un hard-disk viene riportata la velocità massima che può sviluppare, ma questa può essere raggiunta solo in particolari condizioni. Bisogna distinguere transfer rate in lettura e transfer rate in scrittura, quest’ultimo, di solito, è sempre più basso del primo. Il transfer rate dipende dalla densità di registrazione e dalla velocità di rotazione: un settore di 512 byte richiede fra 25 e 100 µsec (5-20 MB/sec).

Le memorie ottiche I CD-ROM (compact disk-read only memory) sono supporti ottici. Nel nome compare il termine compact disk perché il tipo di tecnologia utilizzato è lo stesso, per supporto e metodi di memorizzazione, di quello normalmente impiegato per la produzione dei cd musicali; read only memory, perché i CD-ROM sono di sola lettura, non è infatti (normalmente) possibile cancellare i dati presenti, né riscriverne di nuovi. L’impiego principale dei CD-ROM riguarda l’immagazzinamento e la distribuzione di grandi quantitativi di informazioni (enciclopedie, elenchi telefonici), vengono inoltre utilizzati per back-up e per memorizzare grafica, animazioni e suono per applicazioni multimediali. Il sistema di immagazzinamento dei dati sul CD è piuttosto semplice nelle sue caratteristiche essenziali. Il CD è un disco in policarbonato, ricoperto di un sottile strato di alluminio (riflettente) e da una pellicola protettiva, sulla quale viene poi applicata l'etichetta. Le informazioni sono pertanto contenute in piccole depressioni dette pits impresse sulla superficie metallica di uno strato riflettente. Gli spazi pianeggianti tra un pit e l'altro vengono detti lands. Ogni bordo di un pit rappresenta un 1 binario; le aree pianeggianti tra un pit e l'altro o all'interno di un pit rappresentano uno 0 binario. Per leggere i dati presenti sul disco si utilizza un raggio laser focalizzato, attraverso il policarbonato, sulla traccia; il raggio laser viene riflesso in un fotorilevatore, e il segnale rilevato varia a seconda che il raggio di luce sia stato riflesso da un foro o da una zona piatta. Il diodo laser e il fotorivelatore, assieme al sistema per la messa a fuoco, si trovano su una testina di lettura montata su un braccio mobile. La combinazione del moto rotatorio del disco attorno al proprio asse, effettuate grazie ad un motore e del moto del braccio permettono alla testina di scorrere l'intera traccia e di accedere quindi a tutti i dati memorizzati sul disco.

11


appunti di informatica