.........
 
IL CALCOLATORE

 

IL CALCOLATORE MODERNO

 

I° generazione, fino al 1959: i calcolatori della prima generazione utilizzavano, come interruttori, delle valvole termoioniche. Questi calcolatori sono di grandi dimensioni , richiedono un alto consumo di energia ed offrono prestazioni logiche e di calcolo abbastanza limitate.

 

II° generazione, 1959-1964: l’elemento tecnologico fondamentale è il transistor, con esso i circuiti logici subiscono notevoli trasformazioni. I calcolatori di questa generazione sono rispetto ai precedenti, di dimensioni ridotte(ciò è dovuto ai transistor le cui dimensioni sono molto piccole rispetto a quelle delle valvole), il consumo di energia è più limitato e la velocità di elaborazione più elevata.

 

III° generazione, 1965-1970: l’elemento tecnologico dei calcolatori della terza generazione è il circuito integrato che è un modulo miniaturizzato contenente un grande numero di transistor.

 

IV° generazione, 1970: l’elemento tecnologico di questa generazione di computer è il circuito altamente integrato (LSI). Questa nuova tecnologia permette di concentrare l’unità centrale di elaborazione di un calcolatore su un unico chip che prende il nome di microprocessore.

 

La macchina di VON NEUMANN

 

MEMORIA

 

Unità                      Unità

di controllo          aritmetico-logica 

                                    

                          Accumulatore

                     (INPUT, OUTPUT)

Un computer è una macchina in grado di elaborare e memorizzare informazioni rappresentate in formato digitale o binario. Il computer è capace di fare ciò sulla base di istruzioni in esso memorizzate e un insieme di tali informazioni è detto programma.

Carattere fondamentale di un PC è la sua programmabilità cioè la possibilità di diversi programmi, i quali permettono diversi tipi di elaborazione dati della macchina.

Organizzazione tipica di un calcolatore “ BUS ORIENTED”.

 

            CPU

 

Unità di controllo

 

Unità artmetico-logica                                             _______Dispositivi di Input/ Output________

                                                    Memoria              Terminale             Unità disco          Stampante

Registri _________BUS____centrale____________________BUS___________________

 

Il processore elabora il programma presente in memoria centrale; il terminale serve per immettere o ricevere i dati, così come anche la stampate. Nell’unità disco possiamo memorizzare temporaneamente ciò che poi noi vogliamo memorizzare in memoria centrale.

Poichè una delle funzioni principali di un elaboratore consiste nella manipolazione dei dati presenti in memoria centrale, per comunicare con essa il microprocessore si serve del BUS. Esso è strutturalmente composto da una serie di linee che mettono in comunicazione la CPU con la memoria e le varie periferiche.

 

Elementi di una CPU

 

UNITA’ DI CONTROLLO: legge le istruzioni e le interpreta, cioè ne comprende il significato.

 

UNITA’ ARITMETICO-LOGICA: esegue le operazioni necessarie per eseguire le istruzioni.

 

REGISTRI: sono memorie interne alla CPU e sono perciò più veloci della memoria centrale.

Costituiscono quindi una memoria ad alta velocità usata per risultati temporanei ed il valore massimo di informazioni memorizzabili in un registro è determinato dalle dimensioni del registro misurate in BIT.

Esistono registri di uso generico e registri specifici:

·       Program counter (PC) : comprende qual è l’istruzione successiva;

·       Instruction register (IR) : per l’istruzione in corso di esecuzione.

La CPU esegue le istruzioni codificate in linguaggio macchina oppure attraverso l’interprete. La CPU opera in maniera sequenziale, eseguendo un’istruzione dopo l’altra, ripetendo per ogni istruzione un ciclo di operazioni : 1.Fetch-2.Decode-3.Execute.

L’algoritmo che esprime queste operazioni può essere così sintetizzato:

1.   prendi l’istruzione da mandare in esecuzione dalla memoria e mettila nel registro istruzioni (IR) (FETCH);

2.   incrementa il Program counter (PC) in modo che contenga l’indirizzo dell’istruzione successiva.

3.   determina il tipo di istruzione da eseguire (DECODE);

4.   se l’istruzione necessita di un dato in memoria, determina dove si trova e caricalo in un registro della CPU;

5.   esegui l’istruzione (EXECUTE);

6.   torna al punto 1 e opera sull’istruzione  successiva.

 

IL PROCESSORE

 

Ogni istruzione del linguaggio macchine viene eseguita da un microprocessore svolgendo una serie di passi, chiamati operazioni elementari.

Per portare ad esecuzione un’istruzione in linguaggio macchina, sono necessarie dalle 7 alle 10 operazioni elementari.

Parametro caratteristico di un microprocessore è la durata del ciclo di clock, che rappresenta il tempo richiesto dal microprocessore per compiere un’operazione elementare e si misura in Hertz (1 MHz = 1.000.000 di cicli al secondo).

 

MEMORIA


E’ un dispositivo che permette di immagazzinare e conservare le informazioni, i programmi, i dati immediatamente disponibili, e dalla quale è possibile estrarli.

La memoria PRIMARIA o CENTRALE o INTERNA è quella da cui il processore preleva i programmi da mandare in esecuzione.

La memoria SECONDARIA o DI MASSA o AUSILIARIA, è quella su cui si conserva permanentemente l’informazione (archiviazione di dati e i programmi).

 

BIT (Binary Digit): è l’unità di informazione o informazione elementare e può assumere due valori, zero o uno (0,1).

Fisicamente il bit è realizzato con un dispositivo a due stati: valvole, transistor, anelli di materiale ferromagnetico, circuiti integrati.

INDIRIZZO: è una qualunque informazione rappresentata in memoria mediante sequenze o stringhe di bit. La memoria è organizzata come un insieme di celle o locazioni di lunghezza fissata per ogni macchina. Una locazione di memoria è generalmente costituita da 8 bit i quali compongono quindi una stringa chiamata BYTE. La memoria è quindi un insieme di byte e ad ogni locazione di memoria corrisponde un indirizzo espresso da un numero intero. Ad ogni cella corrisponde una coppia  (indirizzo, numero).

Byte= 10010111, se letto come un carattere di testo, indica la lettera “b”; se letto invece come numero in base dieci equivale al numero 151; se letto come un’istruzione in linguaggio macchina, fa eseguire all’elaboratore un’altra operazione.

Una caratteristica della memoria è la sua dimensione, data dal numero complessivo di byte memorizzabili: si misura in Kbyte= 1024  byte, Megabyte, Gigabyte.

Ma che cosa si può memorizzare in un byte? Una stringa di bit è immediatamente interpretabile come un numero binario. Con 8 bit sono possibili diverse combinazioni pari a 256 stringhe. Quindi con n bit per stringa si possono aver 2 alla n stringhe diverse con i numeri del sistema binario (0,1).

Il codice ASCII permette di rappresentare le nove cifre decimali, la lettere dell’alfabeto inglese, i simboli di punteggiatura.

 

LA MEMORIA CENTRALE  o INTERNA

R.A.M. : mantiene al proprio interno i dati e le istruzioni dei programmi da mandare in esecuzione; è una memoria temporanea e volatile, di accesso casuale, cioè con un qualsiasi indirizzo è possibile accedere ad una determinata locazione di memoria. Ha una tecnologia elettronica.

R.O.M.: non è una memoria volatile e vi si memorizza tutto ciò che serve per avviare il computer.

 

LA MEMORIA ESTERNA o SECONDARIA

 

La memoria esterna o secondaria o unità disco, è un dispositivo che possiede elementi meccanici ed elettronici per scrivere e leggere sulla superficie magnetica di opportuni dischi.

I programmi e i dati della memoria esterna devono essere prima caricati dalla memoria centrale (loading). La memoria secondaria è costituita da floppy-disk, cd-rom, nastri magnetici, disco rigido, ecc... .l’informazione può essere trasferita inoltre dalla memoria centrale a quella esterna, per cui si ha un’operazione di scrittura quando l’informazione è trasferita dalla memoria interna a quella esterna, mentre si ha un’operazione di lettura quando l’informazione è trasferita dall’esterno.

Le unità di memoria esterna sono ad accesso sequenziale o casuale. Il tempo di accesso ad un’unità periferica è dell’ordine del millisecondo. Comunque le unità di memoria ausiliaria sono più lente rispetto al processore.

 

I nastri magnetici riportano sulla loro superficie nove tracce parallele nel senso di scorrimento del nastro, sulle quali sono riportate le informazioni. Trasversalmente rispetto al senso di scorrimento del nastro, l’informazione è registrata su nove bit, i quali costituiscono quindi un byte più un bit di controllo per gli errori. Ogni traccia sul nastro ha larghezza sufficiente per registrare un bit.

L’informazione è spesso organizzata a blocchi di 512 bytes; inoltre i nastri magnetici sono ad accesso sequenziale; per cui quando occorre caricare un’informazione bisogna caricare un intero blocco da 512 bytes.

 

L’ hard disk (disco rigido), è costituito da uno o più piatti rigidi in lega di alluminio, solidali con un asse di rotazione. Ciascuna delle due superfici del piatto è magnetizzabile, e ciascuna superficie è dotata di una testina di scrittura ed una di lettura. Le tracce sui piatti sono circolari e concentriche ed ogni superficie ha circa cento tracce, ciascuna delle quali è suddivisa in blocchi o settori (512 byes per blocco).

Caratteristiche del disco rigido: accesso diretto; il blocco può essere reperito direttamente mediante il posizionamento della testina sulla traccia che contiene il blocco; il tempo di accesso è dell’ordine dei 10-100 millisecondi.

 

I dischi flessibili (floppy-disk) hanno una superficie di plastica ricoperta da un materiale magnetico; sono suddivisi in tracce e settori; il gap è una zona neutra tra un settore e l’altro di una stessa traccia; un dischetto da 3,5 pollici ha una capacità di 1,44 Mbyte.

 

I dischi ottici (CD-Rom) sono costituiti da un piatto rigido sul quale viene proiettato un raggio laser ad alta potenza, il quale produce dei fori microscopici (pit), che alterano le proprietà di riflessione della superficie. Per la lettura invece una testina diffonde un raggio laser a bassa potenza sulla traccia costituita dai microfori e la luce riflessa dalla superficie del disco viene rilevata e decodificata da un rilevatore. Il vantaggio dei dischi ottici è la maggiore densità di informazioni memorizzabili ( 1 Gbyte) rispetto ai dischi magnetici.

 

La memoria di un elaboratore è distribuita su dispositivi hardware diversi, che nel loro insieme costituiscono il sistema di memoria dell’elaboratore, comunemente chiamato GERARCHIA DI MEMORIA.

I livelli di memoria generalmente presenti in un elaboratore sono: la memoria centrale, i dischi e la memoria cache, che è una memoria interposta tra la memoria centrale e la CPU, di capacità molto piccola ma relativamente veloce, il cui scopo è quello di velocizzare l’esecuzione dei programmi.

Una configurazione tipica di un PC prevede 32 registri, 256 kbyte di cache, 64-128 Mbyte di memoria centrale. I livelli di memoria più alti sono quelli più vicini al processore: registri, cache. Il livello intermedio è occupato dalla memoria centrale. I livelli più bassi sono quelli fisicamente più lontani e quindi le unità di memoria periferiche (dischi, cd-rom, nastri, ecc...).

 

Le unità di input/ output permettono la comunicazione del sistema con il mondo esterno e servono per fornire dati e programmi al computer.

UNITA’ DI INGRESSO: scanner, lettore di schede perforate e lettore di banda perforata (nei vecchi computer).

UNITA’ DI USCITA: stampante, perforatore di schede e perforatore di bande (nei vecchi computer):

UNITA’ INTERATTIVE: video terminale, tastiera, telescrivente (nei vecchi computer).

Il terminale consente all’utente di colloquiare interattivamente con l’elaboratore; può essere collocato molto lontano dall’elaboratore e connesso tramite linea telefonica; oppure può fare corpo unico con l’elaboratore come avviene nei Personal Computer: il terminale è composto da tastiera per l’input, video e stampante per l’output. La tastiera comprende tasti alfanumerici, tasti speciali (RETURN, ESC, DEL,), tasti funzione (F1, F2,...), tasti movimento cursore (freccette).

I dispositivi di input/output sono costituiti quindi da periferiche, ognuna delle quali è costituita da tre componenti: una componente visibile, detta device; una componente elettronica chiamata device controller; una componente software o device driver.

 

SOFTWARE

 

Il software è l’insieme di programmi che un elaboratore può eseguire. Distinguiamo due tipi di software: il SW di sistema o di base ed il SW applicativo.

Per sw di sistema si intendono tutti quei programmi che permettono l’utilizzazione del computer. I sw applicativi invece sono programmi che fanno svolgere al computer particolari problemi e tali applicazioni possono essere: video scrittura, visualizzazione grafica, navigazione in rete. Il sw applicativo è scritto da un programmatore che consce e risolve un determinato problema.

 

Il software di sistema è costituito da un insieme di programmi il cui scopo è

·       facilitare l’uso della macchina nascondendone l’architettura;

·       garantire l’uso onesto (mediante l’uso di password) della macchina da parte di più utenti;

·       fornire le funzionalità necessarie per la stesura di programmi applicativi, facilitando quindi il lavoro dei programmatori.

Appartengono al sw di sistema: il sistema operativo, i compilatori, i driver per i dispositivi di input/output; cioè i programmi che gestiscono i dispositivi di I/O.

 

FUNZIONI DE SISTEMA OPERATIVO

Il S.O. si occupa dell’esecuzione dei programmi, della gestione delle risorse (processore, memoria), dei dispositivi di I/O, inoltre facilita l’utilizzo dell’interfaccia utente.

Il S.O. permette il multitasking o multiprogrammzione, cioè l’esecuzione contemporanea di più programmi; permette inoltre la multiutenza, cioè più utenti possono utilizzare lo stesso sistema; e di conseguenza anche più protezione, cioè impedisce l’utilizzo del computer ad utenti non autorizzati.

Il BOOTSTRAP è un programmino che si trova sulla ROM che parte quando si accende il computer e il suo compito è di caricare il sistema operativo in memoria.

COMPONENTI DEL SISTEMA OPERATIVO:

·       Supervisore, residente in memoria;

·       interfaccia utente;

·       file system;

·       gestore delle periferiche;

·       system call;

·       scheduler.

 

Il file system la parte del S.O. che consente di gestire le informazioni (i file) registrate sul disco; fornisce le seguenti funzioni: memorizzare, modificare, cancellare un file.

Nel sistema operativo Windows ogni unità di memoria è contraddistinta da una lettera, seguita da due punti: A:, B:, C:, D:.

le informazioni sono organizzate sul disco in file o documenti. Il contenuto di un file è stabilito dal suo proprietario o utente che l’ha creato; inoltre è l’utente stesso che decide le modalità di accesso ad un file da lui creato.

Il formato di un file dipende dalla natura delle informazioni in esso contenute; le informazioni contenute in un file possono essere in due formati: il formato testo è costituito da sequenze di 8 bit, ciascuna delle quali codifica una lettera un simbolo di scrittura; i file in formato binario invece sono costituiti da sequenze di 32 bit, le quali vengono interpretate come istruzioni o numeri.

Ogni file è individuato mediante un nome, un punto ed il formato del file ( .doc, .xis,.txt,...).

Nella Tabella di Allocazione File (FAT), sono registrate tutte le informazioni relative alla localizzazione dei file sul disco. La tabella è creata dal programma che esegue la formattazione del disco. I file possono essere raccolti in cartelle o directory, alle quali si dà un nome. Una cartella può contenere altre cartelle, le quali a loro volta possono contenere altre cartelle e così via; si parla quindi di gerarchia di cartelle o struttura logica ad albero: il livello più alto della gerarchia è l’unità disco su cui risiedono tutte le cartelle ed è chiamata anche ROOT DIRECTORY. Il livello più basso è il singolo file. Per rendere possibile le ricerca di un file è necessario indicare al programma incaricato di farlo il cammino (detto path) che deve percorrere partendo dalla root directory. La descrizione di tale percorso prende il nome di pathname.

 

GESTORE DELLE PERIFERICHE

E’ una raccolte di driver per i vari tipi di periferiche (stampante, lettore cd;...) e inoltre contiene strumenti per l’aggiunta o rimozione di driver.

 

SCHEDULER: ogni istruzione viene mandata in esecuzione in maniera sequenziale, per cui è necessario trovare un metodo per mezzo del quale mandare in esecuzione più programmi contemporaneamente e questo è il compito svolto dallo scheduler, il quale permette l’utilizzo della CPU da parte di programmi eseguiti simultaneamente, in base alla loro priorità.

Il tempo della CPU è diviso quindi da più programmi, e questa funzione è detta TIME SHARING.

In pratica la CPU lavora più velocemente della lettura dei dati sul disco, per cui quando sta mandando in esecuzione un programma e i dati di lettura del disco per mandare avanti il programma non arrivano, si hanno dei tempi morti gestiti dallo scheduler.

 

Un programma può trovarsi in tre stati

·       RUNNING, in esecuzione;

·       READY, eseguibile, cioè attende i dati di I/O;

·       BLOCKED, bloccato, cioè in attesa del completamento di un’operazione.

 

GESTORE DELLA MEMORIA

E’ una raccolta di procedure che permettono la condivisione della memoria tra programmi eseguiti “simultaneamente”, infatti l’esecuzione contemporanea di più programmi non è realmente possibile in quanto vi è un solo processore che esegue le operazioni del programma.

 

MEMORIA VIRTUALE: parte dei programmi e dei dati risiede su disco e viene caricata in memoria centrale solo quando deve essere eseguita o utilizzata.

La paginazione della memoria virtuale è una tecnica di gestione della memoria che consente l’esecuzione di un programma quando solo una porzione di esso è residente in memoria. Quindi il programma e i dati sono partizionati in pagine registrate nella memoria di massa mentre la memoria centrale è similmente divisa in sezioni.

Lo SWAPPING è la tecnica utilizzata per trasferire la pagina richiesta dal supporto esterno (disco) alla memoria centrale.

 

SYSTEM CALL: sono funzioni che permettono di usufruire dei servizi del sistema operativo e quindi garantiscono l’accesso corretto alle risorse. Dipendono dal S.O. e dall’architettura dell’elaboratore.

 

Caratteristiche del sistema operativo di WINDOWS.

Permette di eseguire contemporaneamente più programmi; se i diversi programmi sono interattivi, l’utente può comunicare con ogni singolo programma per mezzo di finestre, con la quali si può anche passare da un’applicazione all’altra. Mediante la funzione Copia/Incolla, è possibile inoltre scambiare dati tra due applicazioni o tra due file.