DALL’ABACO IN POI…

 

Non è degno di uomini d’ingegno perdere ore come schiavi nel lavoro di calcolo che potrebbe essere affidato tranquillamente a chiunque altro se si usassero le macchine.

Wilhelm Leibniz

 

Contare è una delle azioni più usuali della vita quotidiana, ed è una delle prime abilità che si imparano a scuola. L’istruzione elementare, si diceva una volta, doveva insegnare “a leggere, scrivere e far di conto”. E “il far di conto” è una operazione talmente meccanica che nessuno di noi, nell’effettuarla, si sofferma a ragionare sulle implicazioni concettuali di una così semplice azione, così come chiunque può fare una telefonata senza pensare all’elettronica utilizzata per rendere possibile un gesto così quotidiano.

Il punto di partenza è che per contare (o “numerare”) bisogna fare riferimento ad un sistema di numerazione, che possiamo definire nel modo seguente: 

un sistema di numerazione è un complesso di simboli (cifre) e di regole aventi lo scopo di produrre ulteriori simboli diversi fra di loro ed in corrispondenza biunivoca con le grandezze numeriche da rappresentare. 

In sostanza, per avere un sistema di numerazione bisogna disporre di un insieme di cifre da associare secondo determinate regole per rappresentare le grandezze numeriche, in modo non ambiguo.
Il concetto di sistema di numerazione non è certo stata una conquista semplice per la mente umana. L’uomo ha dovuto, prima di tutto, superare l’idea del singolo oggetto concreto e cominciare a ragionare per concetti astratti. È immediato dire “questa mela, quest’altra mela” eccetera, perché ogni mela è, di per sé, un oggetto distinto da ogni altra mela. Dire “due mele” o qualcosa del genere, implica un grande salto di qualità nel rapporto con la realtà, perché una tale espressione può essere pensata solo se si va oltre il singolo oggetto, con i suoi particolari connotati, e si comincia a ragionare per modelli: non più la singola mela, “quella” ben precisa mela, ma il concetto di mela, cioè l’idea della mela costruita nella nostra mente. Solo quando si è compiuto un salto logico di questo tipo diventa possibile rappresentare insiemi di oggetti tramite i numeri. Se dico che Marco, Luigi e Andrea sono tre uomini, implicitamente includo tutti e tre nel concetto di “uomo” che ho in mente, prescindendo dal fatto che ciascuno di essi ha le sue caratteristiche particolari, e quindi non importa che Marco sia biondo o che Luigi abbia i baffi o che Andrea ami la musica.
È molto probabile, infine, che il concetto di numero ed i sistemi di numerazione siano nati da esigenze di scambio e di commercio fra gli uomini, così come la geometria è nata dal bisogno di definire dimensioni e confini degli appezzamenti di terreno.

Quante dita hanno i marziani?
Numerare grandi quantità di oggetti o di persone è materialmente impossibile senza introdurre, come abbiamo detto prima, un sistema di numerazione basato anche su simboli scritti. Uno dei sistemi di numerazione più antichi fra quelli conosciuti è quello latino. Si trattava di un sistema basato su pochi simboli, esprimenti unità e raggruppamenti. I numeri si scrivevano semplicemente scrivendo uno dopo l’altro i vari simboli, che riportiamo di seguito: 

I =1     L =50  M=1000

X=10   C=100

V=5     D=500 

Le regole erano assai semplici:

 

  • non si potevano scrivere più di tre simboli uguali consecutivi: I = 1, II = 2, III = 3, XXX = 30;
  • un simbolo di valore inferiore si considerava sottratto a quello superiore se scritto a sinistra, sommato se scritto a destra: IV = 4 = (5 – 1), XI = 11 = (10 + 1).

Pertanto, per esempio, 1994 in latino si scriverebbe: MCMXCIV.
Come è facile immaginare, il sistema di numerazione latino oggi sarebbe del tutto inutilizzabile perché la quantità di simboli da usare per esprimere grandi numeri sarebbe davvero enorme.

La notazione posizionale
Il sistema in cui scriviamo i numeri è posizionale. Si tratta di una caratteristica importantissima che lo distingue da altri sistemi usati in passato e che storicamente si è imposto come il più pratico agevolando moltissimo la pratica del calcolo.
“Posizionale” significa che le cifre vengono interpretate a seconda della loro posizione all’interno del simbolo usato per rappresentare il numero. Così come viene insegnato fin dai primissimi anni di scuola, la scrittura 372 è un modo convenzionale per indicare il risultato del calcolo 3×100+7×10+2×1 cioè la quantità che otteniamo sommando 2 unità a 7 decine a 3 centinaia (leggendo da destra a sinistra). Utilizzando le potenze di 10 (e ricordando che qualunque numero positivo elevato alla potenza 0 dà come risultato 1) lo possiamo riscrivere come 3×102+7×101+2×100.
In maniera analoga, facendo ricorso a potenze di 10 successive e utilizzando unicamente le dieci cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, possiamo rappresentare qualunque numero intero. Il numero 10 viene per questo indicato come la base del sistema di numerazione.
I moderni sistemi di numerazione, a differenza di quello latino, sono sistemi posizionali, nel senso che una cifra assume un valore diverso a seconda del posto occupato all’interno del numero.
Possiamo a questo punto esprimere alcune considerazioni di carattere generale. 

  • Il numero di cifre usate in un sistema di numerazione prende nome di BASE.
  • Le potenze crescenti della base definiscono il PESO di ciascuna singola cifra.
  • Mediante una notazione di tipo posizionale è possibile ottenere, con diverse basi numeriche, rappresentazioni equivalenti dello stesso numero. 

Si può pertanto definire un sistema di numerazione, nel seguente modo: 

un sistema di numerazione è un complesso di simboli (cifre) e di regole aventi lo scopo di produrre ulteriori simboli diversi fra di loro ed in corrispondenza biunivoca con le grandezze numeriche da rappresentare. 

In sostanza, per avere un sistema di numerazione bisogna disporre di un insieme di cifre da associare secondo determinate regole per rappresentare le grandezze numeriche, in modo non ambiguo.
Il concetto di sistema di numerazione non è certo stata una conquista semplice per la mente umana. L’uomo ha dovuto, prima di tutto, superare l’idea del singolo oggetto concreto e cominciare a ragionare per concetti astratti. È immediato dire “questa mela, quest’altra mela” eccetera, perché ogni mela è, di per sé, un oggetto distinto da ogni altra mela. Dire “due mele” o qualcosa del genere, implica un grande salto di qualità nel rapporto con la realtà, perché una tale espressione può essere pensata solo se si va oltre il singolo oggetto, con i suoi particolari connotati, e si comincia a ragionare per modelli: non più la singola mela, “quella” ben precisa mela, ma il concetto di mela, cioè l’idea della mela costruita nella nostra mente. Solo quando si è compiuto un salto logico di questo tipo diventa possibile rappresentare insiemi di oggetti tramite i numeri. Se dico che Marco, Luigi e Andrea sono tre uomini, implicitamente includo tutti e tre nel concetto di “uomo” che ho in mente, prescindendo dal fatto che ciascuno di essi ha le sue caratteristiche particolari, e quindi non importa che Marco sia biondo o che Luigi abbia i baffi o che Andrea ami la musica.
È molto probabile, infine, che il concetto di numero ed i sistemi di numerazione siano nati da esigenze di scambio e di commercio fra gli uomini, così come la geometria è nata dal bisogno di definire dimensioni e confini degli appezzamenti di terreno.
I motivi della scelta del numero 10 sono storicamente molto discussi. Secondo un’osservazione che risale almeno ad Aristotele. Deriverebbe dal numero delle dita delle mani dell’uomo, cioè del primo “strumento” utilizzato per contare gli oggetti.
Sarebbe questo il motivo del successo di sistemi a base quinaria (in base 5) e decimale (in base 10), che sarebbero però di introduzione più recente rispetto a sistemi binari (in base 2), ternari (in base 3) e quaternari (in base 4).
Di questi ultimi particolarmente antichi, rimangono documentazioni incomplete e frammentarie, dato che le origini del concetto di numero e della pratica del contare affondano le loro radici nella preistoria, molto prima della nascita della civiltà e della scrittura (il reperto più noto, relativamente recente, è un osso rinvenuto in Europa centrale, risalente a circa 30.000 anni fa e recante incise 55 tacche raccolte in gruppi di cinque).
Molto più abbondanti i “fossili linguistici”. Come il termine indoeuropeo che indica il numero 8, probabilmente una forma duale di “quattro”, e il termine latino novem (“nove”) che sembra derivare da novus (“nuovo”), a indicare l’inizio di una nuova serie, in riferimento a un sistema in base 8. Più recenti, prima del prevalere definitivo del sistema decimale (documentato anche nei termini inglesi eleven 11 – e twelve – 12 – che significherebbero “uno in più” e “due in più”), sarebbero forme come il danese halvfirsindstyve, che significa “a metà strada tra 3 e 4 volte 20”, a indicare il numero 70, e il francese quatre-vingt, cioè “quattro volte 20”, che designa 80, a testimonianza di sistemi in base 20 (le dita delle mani più quelle dei piedi). Non stancano esempi di sistemi ancora più complessi e bizzarri, come quello sessagesimale (in base 60), in uso presso i babilonesi e di cui resta ancor oggi traccia nella suddivisione dei minuti in secondi, delle ore in minuti e nella misurazione degli angoli.
Non c’è un motivo teorico per privilegiare una base rispetto ad un’altra, ma solo pratico: indipendentemente dalle sue eventuali origini antropologiche, la base 10 si è imposta perché permette di rappresentare numeri relativamente grandi utili in maniera sintetica e utilizzando un numero ragionevole di cifre. Per altri usi, essa è decisamente poco pratica: “Dal punto di vista matematico è un peccato che l’uomo di Cro–Magnon e i suoi discendenti non avessero quattro o sei dita per ogni mano”, afferma lo storico della matematica Carl B. Boyer. 

Qualche esempio
In generale, se N è un numero positivo, possiamo sceglierlo come base e rappresentare i numeri interi tramite successioni di N simboli d1,d2, d3, …, (le cifre del sistema) che rappresentano i valori tra 0 e N – 1 (da cui deduciamo che N deve essere almeno 2). Se N>10, per i primi 10 si conservano di solito le familiari cifre da 0 a 9 e per i successivi si ricorre alle lettere dell’alfabeto latino. In base N=16, per esempio, le cifre utilizzate sono 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F dove A=10, B=11, C=12, D=13, E=14, F=15. Poiché nei sistemi posizionali le cifre indicano il numero di volte per cui contare la corrispondente potenza della base (a partire da destra, con la potenza 0–sima, cioè l’unità), possiamo affermare che in base 16 la scrittura 30DB rappresenta il valore 3×163+0×162+D×161+B×160 che in base 10 scriveremmo come 3×4096+0+13×16+1=11507.
Quando il contesto può dare adito a confusione o ambiguità, è buona regola specificare la base nella quale si sta onerando. Indicandola esplicitamente in piccolo, a fianco del numero. Così, la scrittura 30DB16 ci dice che il numero 30DB è da intendere in base 16 e non in qualche altra base superiore, in cui il simbolo 30DB sarebbe comunque definito ma avrebbe un valore diverso. Secondo il calcolo effettuato poco fa, possiamo scrivere 30DB16=1150710.
Più in generale con a, b, c.... zN indichiamo un numero rappresentato in base N dalle cifre a, b, c, …, z, scelte tra le N cifre del sistema d1, d2, d3, …, dN–1.
Così, 57 e 510 sono rappresentazioni in base 7 e 10, rispettivamente, del medesimo valore numerico; 357 rappresenta invece un numero diverso da 3510.
Infatti 357=3×71+5×70=21+5=2610≠3510.
Le regole per eseguire operazioni – e in generale tutta l’aritmetica in basi diverse da 10 – sono identiche a quelle tradizionali, semplicemente tutti i numeri sono espressi utilizzando le N cifre del sistema in base N del caso.
Se da un punto di vista teorico il cambiamento di base è poco più di una curiosità aritmetica, in alcune situazioni concrete esso può invece costituire la differenza tra calcoli elaborati e complessi piuttosto che semplici ed eleganti. Nel corso dei secoli lo hanno scoperto a proprie spese i progettisti di macchine calcolatrici, dalle tradizionali e ormai obsolete calcolatrici da tavolo meccaniche ai moderni computer.

Adesso siamo pronti per rispondere alla domanda del titolo. 

LE DITA DEI MARZIANI SONO...
Supponiamo che un marziano, chiacchierando con un terrestre che non abbia del tutto dimenticato l’algebra studiata a scuola, ci comunichi che l’equazione di secondo grado x2–16x+41=0 ammette due soluzioni, la cui differenza è 10.
Naturalmente il marziano intende i numeri 10, 16 e 41 nella propria base di numerazione (pari al numero delle sue dita) che a noi è ancora ignota e che chiameremo N. Cioè, più precisamente, il marziano sta parlando dei numeri 10N, 16N, 41N.
Osserviamo che N è almeno 7 (perché la cifra più alta che compare è il 6) e che tutte le cifre inferiori a N (quindi almeno da 0 a 6) hanno lo stesso significato sia per noi che per i marziani. La seguente tabella ci indica di quali numeri parla il marziano. 

Rappresentazione

Numero

10N

N

16N

N+6

41N

4N+1

 Il terrestre non del tutto a digiuno di algebra ricorderà a questo punto che per una equazione di secondo grado del tipo ax2+bx+c=0 la differenza tra le due soluzioni è data da: 

 

e quindi. sostituendo secondo le indicazioni del marziano i valori a=1, b=N+6, c=4N+1  

Risolvendo questa semplice equazione (come il terrestre non avrà problema a fare) otteniamo N=8, da cui risulta che i marziani hanno 8 dita (anche se non necessariamente quattro per mano).

I sistemi di numerazione in base diversa da dieci

Sistema ottale
Abbiamo visto che non è necessario che si utilizzino dieci simboli; possiamo allora pensare di utilizzarne otto e precisamente le cifre da 0 a 7; il sistema ottale fa pertanto uso dei seguenti simboli:

0, 1, 2, 3, 4, 5, 6, 7

Si chiamerà quindi sistema in base 8 ed i pesi delle singole cifre in una stringa numerica ottale saranno dati da potenze di 8.

Dovendo convertire in decimale il numero ottale: 

3758=3×82+7×81+5×80=3×64+7×8+5×1=25310

 Più complicato è il discorso per quanto riguarda la conversione inversa, cioè il passaggio da decimale in ottale. Il concetto basilare che bisogna acquisire è che ciò che in decimale viene espresso mediante l’uso di dieci simboli deve essere «distribuito» in 8 cifre. Ma distribuito vuol dire diviso, quindi l’idea di fondo è che si debba ricorrere per questo tipo di conversione ad una serie di operazioni di divisione.

Facciamo un esempio: vediamo come si può procedere alla conversione del numero decimale 25310 nel corrispondente numero ottale.

Il primo passo è dividere 253 per 8; tale divisione dà come risultato 31 con resto di 5.

Teniamo da parte il 5 e dividiamo nuovamente 31 per 8, vediamo che il risultato è 3 con resto di 7.

Teniamo da parte il 7 e dividiamo 3 per 8; ovviamente otteniamo come risultato 0 con resto di 3.

Avendo ottenuto quoziente nullo il procedimento si arresta.

A questo punto possiamo dire che il primo resto che abbiamo trovato è la cifra ottale meno significativa (quella di peso 80 per il nostro numero), mentre l’ultimo resto che abbiamo trovato è la cifra più significativa (quella di peso 82 per il nostro numero); possiamo vedere meglio il risultato ottenuto costruendo la seguente tabella: 

Operazione

Quoziente

Resto

253/8

31

5

31/8

3

7

3/8

0

3

Ragionando come indicato prima, la cifra più significativa del numero ottale è il 3, poi viene il 7 ed infine il 5, che è la cifra meno significativa; pertanto risulta:

25310 = 3758

Sistema esadecimale
Il sistema di numerazione esadecimale utilizza, come indica il nome stesso, sedici simboli e precisamente: 

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

dove le lettere A, B, C, D, E, F sono equivalenti ai numeri decimali da 10 a 15, secondo lo schema: A corrisponde a 10, B corrisponde ad 11, C corrisponde a 12, D corrisponde a 13, E corrisponde a 14, F corrisponde a 15.

Per il sistema esadecimale vale la notazione posizionale esattamente come è stata utilizzata in precedenza, ovvero si avrà un sistema con base 16 e i pesi di ogni singola cifra saranno indicati con potenza crescente della base 16, da 160 per la cifra meno significativa fino a 16k per la k–esima cifra.

La conversione dal sistema esadecimale al sistema decimale avviene esattamente come indicato per i numeri ottali ovvero, dato ad esempio il numero esadecimale F1416 la conversione si ottiene mediante il procedimento seguente: 

F1416 = F´162+1´161+4´160 = 15´162+1´161+4´160 =

= 15´162+1´161+4´160 = 15´256+1´16+4´1 = 386010

Per quanto riguarda la conversione inversa, ovvero da decimale in esadecimale, è necessario nuovamente «distribuire» su 16 cifre ciò che nel sistema decimale viene espresso mediante dieci simboli; il procedimento è analogo a quanto visto per il sistema ottale, ovvero si utilizza il metodo delle divisioni successive per 16 del numero che vogliamo convertire.

Esempio

Si voglia convertire in esadecimale il numero 3860.

Il primo passo consiste nel dividere 3860 per 16; tale divisione dà come risultato 241 con resto di 4.

Teniamo da parte il 4 e dividiamo 241 nuovamente per 16; otteniamo 15 con resto di 1.

Teniamo da parte 1 e dividiamo 15 per 16; otteniamo 0 con resto di 15.

Avendo ottenuto quoziente nullo il procedimento si arresta. A questo punto si procede esattamente come per i numeri ottali cioè il primo resto che abbiamo trovato è la cifra meno significativa (quella di peso 160), mentre l’ultimo resto che abbiamo trovato è la cifra più significativa (quella di resto 162); possiamo vedere meglio il risultato ottenuto costruendo la tabella:

 

Operazione

Quoziente

Resto

3860/16

241

4

241/16

15

1

15/16

0

15→F

 

Ovviamente, dato che la cifra più significativa è 15 e visto che nel sistema esadecimale viene indicata con F, otteniamo F come cifra più significativa e pertanto: 

386010 = F1416

Il sistema binario
Il minor numero di simboli utilizzabili per rendere possibile una notazione posizionale è 2, pertanto b = 2 è la base più piccola e comporta l’uso di due soli simboli, 0 ed 1. Da questo ragionamento si deduce che non possono esserci sistemi di numerazione posizionale in base 1 oppure in base 0, perché nel primo caso esisterebbe una sola cifra, lo 0, mentre nel secondo caso non avremmo alcuna cifra. Detto questo è da osservare che un sistema basato su due sole cifre permette di sfruttare al meglio la logica e le conclusioni dell’algebra booleana, e quindi ben si presta ad essere utilizzato in ambito elettronico ed informatico.
Un numero binario è rappresentato da una stringa di simboli contenente soltanto i numeri 0 ed 1; ad esempio 10011012 è un numero binario. Le singole cifre binarie (ovvero 1 e 0) sono chiamate BIT dalla contrazione delle parole inglesi binary digit il cui significato è proprio quello di cifra binaria; per questo d’ora in avanti verrà usato indifferentemente il nome BIT oppure la denominazione «cifra binaria». La conversione da binario in decimale avviene usando le solite regole della notazione posizionale, tenendo conto che in questo caso la base è 2 e quindi i pesi saranno espressi mediante potenze crescenti di 2. Ad esempio, il numero binario 10011012 viene convertito in decimale con il seguente procedimento:

10011012 = 1´20+0´21+1´22+1´23+0´24+0´25+1´26 =

= 1+0´2+1´4+1´8+0´16+0´32+1´64 = 7710

Per quanto riguarda la conversione da decimale in binario si procede come per gli altri sistemi numerici che adottano la notazione posizionale è cioè necessario «distribuire» su due simboli ciò che normalmente viene indicato con dieci simboli; il procedimento consiste perciò in una serie di divisioni successive per due.
Supponiamo ad esempio di voler convertire il numero decimale 7710, in binario, si procede nel modo seguente: 

Prendiamo 77, dividiamo per 2 ed otteniamo 38 con resto 1. Prendiamo 38, dividiamo per 2 ed otteniamo 19 con resto 0. Prendiamo 19, dividiamo per 2 ed otteniamo 9 con resto1. Prendiamo 9, dividiamo per 2 ed otteniamo 4 con resto1. Prendiamo 4, dividiamo per 2 ed otteniamo 2 con resto 0. Prendiamo 2, dividiamo per 2 ed otteniamo 1 con resto 0. Prendiamo 1, dividiamo per 2 ed otteniamo 0 con resto 1. Avendo ottenuto quoziente nullo il procedimento si arresta. <style="text-align: justify;">Il primo resto che abbiamo trovato rappresenta la cifra meno significativa (quella di peso 20), mentre l’ultimo resto che abbiamo trovato rappresenta la cifra più significativa (quella di peso 26 per il nostro esempio); il numero decimale 7710 sarà allora convertito in binario nel modo seguente:

7710 = 1001102

L’introduzione del sistema binario ci permette di costruire, con il semplice uso delle conversioni di base, alcune tabelle che permettono di comparare il sistema binario direttamente al sistema ottale ed al sistema esadecimale.
Nella tabella sono riportate le cifre decimali, le corrispondenti cifre ottali e le corrispondenti stringhe binarie. Viene messo chiaramente in evidenza quanto avevamo esposto all’inizio e cioè che nel sistema di notazione posizionale uno stesso concetto numerico può essere espresso in modi diversi.
Per costruire la tabella sono state effettuate le conversioni di ciascuna cifra decimale da 0 a 7 prima in ottale (ed in questo caso c’è perfetta corrispondenza) e poi in binario. 

Decimale

Ottale

Binario

0

0

000

1

1

001

2

2

010

3

3

011

4

4

100

5

5

101

6

6

110

7

7

111

 

Un’analoga tabella si può costruire per il sistema esadecimale.
Tali tabelle sono utili per la conversione diretta binario – ottale, ottale – binario, binario – esadecimale, esadecimale – binario. 

Decimale

Esadecimale

Binario

0

0

0000

1

1

0001

2

2

0010

3

3

0011

4

4

0100

5

5

0101

6

6

0110

7

7

0111

8

8

1000

9

9

1001

10

A

1010

11

B

1011

12

C

1100

13

D

1101

14

E

1110

15

F

1111

 

Conversione diretta binario – ottale
Consideriamo il numero binario 1001101112, per convertirlo direttamente in ottale si procede così:
si parte da destra (cifra meno significativa) e si separano gruppi di 3 bit:

100 / 110 / 111

 si osserva che ciascun gruppo corrisponde tramite la tabella precedente ad una cifra ottale e si riportano tali corrispondenze, sempre procedendo da destra verso sinistra:

111 = 7           110 = 6           100 = 4

 La cifra ottale corrispondente al gruppo più a destra è la cifra meno significativa, mentre la cifra ottale corrispondente al gruppo più a sinistra è la cifra più significativa, pertanto il numero cercato è:

4678

Conversione diretta ottale – binario
Consideriamo il numero ottale 4078. La conversione diretta in binario avviene nel modo seguente:
si considerano le singole cifre ottali partendo da destra ed andando verso sinistra; si legge sulla tabella a quale stringa di bit corrisponde ciascuna cifra e si riportano tali corrispondenze, sempre procedendo da destra verso sinistra:

7 = 111           0 = 000           4 = 100

la stringa corrispondente alla cifra più a destra è da mettere come meno significativa, quella corrispondente alla cifra più a sinistra è da prendere come più significativa: 

100 / 000 / 111

il numero binario richiesto allora sarà:

1000001112

Se per caso nello svolgere la conversione diretta binario-ottale ci accorgiamo che l’ultima stringa di bit contiene solo un bit oppure due, basterà aggiungere degli zeri a sinistra fino a che la stringa arriva a comprendere 3 bit; ad esempio, si voglia convertire direttamente in ottale il numero binario 10011012, suddividendo in gruppi da 3 bit si ottiene:

1 / 001 / 101

aggiungendo due zeri a sinistra non si modifica il numero (perché lo zero dà un contributo nullo), ma ci si riconduce a stringhe tutte da 3 bit:

001 / 001 / 101

ed il numero ottale cercato è allora 1158, infatti dalla tabella si ricava:

101 = 5           001 = 1           001 = 1

Conversione diretta binario – esadecimale
Si procede esattamente come nel caso della conversione diretta binario – ottale, solo che qui i gruppi saranno di 4 bit; ad esempio volendo convertire il numero 1011001101102 si procede così:
si suddivide il numero binario in gruppi di 4 bit:

1011 / 0011 / 0110

si converte ciascun gruppo, usando la tabella ed andando da destra verso sinistra:

0110 = 6         0011 = 3         1011 = 11→B

il numero cercato, mantenendo sempre l’ordine da destra verso sinistra è B3616.
Qualora l’ultimo gruppo avesse un numero di bit inferiore a 4, basterà aggiungere degli zeri a sinistra e procedere poi esattamente come nel caso dei numeri ottali.

Conversione diretta esadecimale – binario
Anche in questo caso basta procedere esattamente come nel caso della conversione diretta ottale – binario, solo che si utilizzerà la seconda tabella; ad esempio volendo convertire il numero A03516 si procede, sempre da destra verso sinistra, nel modo seguente:

5 = 0101         3 = 0011         0 = 0000         A = 1010

Pertanto il numero esadecimale assegnato corrisponde al binario: 10100000001101012.

Le operazioni con i numeri binari
Quando vogliamo comunicare dei dati a un calcolatore, non dobbiamo dimenticare che la sua logica è intrinsecamente binaria: acceso/spento, magnetizzato/smagnetizzato, sì/no, vero/falso, sono gli stati tipici (e i valori logici equivalenti) della maggior parte dei componenti del computer. La memoria centrale, in particolare, sia ai tempi dei vecchi nuclei magnetici che ai giorni nostri, con gli attuali chip in silicio, può essere schematizzata (e, di fatto, è materialmente costituita) da una successione di celle che in ciascun momento possono trovasi in uno soltanto di due stati fisicamente possibili. Se chiamiamo questi due stati “0” e “1”, ecco che qualunque configurazione della memoria e di sue porzioni diventa interpretabile come una sequenza di “0” e di “1”, cioè di numeri interi in base 2. Questo significa che quando quelli che vogliamo rappresentare sono proprio numeri interi, il gioco è fatto: senza dovere ricorrere a nessuna ulteriore codifica o interpretazione li ritroviamo direttamente in memoria. È in questo senso che la numerazione in base 2 è la più naturale per un computer: perché è possibile interpretare direttamente le successioni di stati di celle di memoria come numeri interi.

O “1” O “0”
Come già sappiamo in linea di principio non c’è nessuna differenza a eseguire operazioni aritmetiche in una base anziché un’altra. In teoria si sarebbe tentati di passare dalla base in cui si deve lavorare alla base 10, con cui abbiamo maggiore familiarità per poi riportare il risultato nella base di partenza.
Consideriamo il calcolo:

1112+1012

convertendo in base 10, avremmo:

1112 = 710        1012 = 510

poi, eseguendo il calcolo:

710+510 = 1210

Infine, tornando in base 2:

1210 = 11002

La verifica che ciascuna delle rappresentazioni in base due corrisponda al numero in questione è semplice e può essere effettuata direttamente, ricordando che in un sistema posizionale, a partire da destra le cifre rappresentano le potenze successive della base. Naturalmente, esiste un algoritmo generale per passare dalla rappresentazione di un numero in una data base a quella in un’altra ed è quindi possibile delegare queste operazioni – piuttosto tediose, in verità – a programmi per computer opportuni.
Per eseguire operazioni in una data base, come addizioni e moltiplicazioni è molto più pratico costruire le relative tabelline, del tutto analoghe a quelle che vengono insegnate a scuola per i numeri in base 10. È infatti sufficiente sapere sommare o moltiplicare tra di loro i numeri da 0 a 9, che e il caso a cui ci si riconduce sempre col sistema dei riporti.
In base 2, le tabelline di addizione e moltiplicazione sono particolarmente semplici: 

0+0 = 0           0+1 = 1+0 = 1             1+1 = 0 con riporto di 1

 

+

0

1

0

0

1

1

1

0

 

Le regole del prodotto sono:

 

0´0 = 0           1´0 = 0´1 = 0            1´1 = 1

´

0

1

0

0

0

1

0

1

 

Queste tabelline mostrano che per eseguire operazioni in base 2 si procede esattamente come per le consuete operazioni in base dieci, ricordando che quando il risultato di una addizione o di una moltiplicazione raggiunge il valore della base, (il che può capitare solo sommando due “1”), il risultato dell’operazione è “0” con riporto di una unità alla potenza (cioè alla posizione successiva). Più precisamente, 1+1=10. Ora siamo pronti a sommare direttamente in base due:

 

Addizione di numeri binari
Si vogliono sommare tra loro i numeri binari 101012 e 1112: per facilitare la comprensione del procedimento vediamo in parallelo lo svolgimento decimale e lo svolgimento binario:

 

BINARIO

DECIMALE

Riporti

011111

 

1° Addendo

10101+

21+

2° Addendo

111=

7=

Risultato

11100=

28=

 

Come si può osservare dall’esempio basta eseguire le somme in colonna applicando in modo automatico le regole enunciate e si ottiene il risultato corretto; bisogna prestare molta attenzione ai riporti, per questo motivo sarebbe utile segnalarli sempre perché è molto elevato il rischio di lasciarne qualcuno per strada. È consigliabile inoltre svolgere le operazioni in colonna proprio come indicato nell’esempio per evitare di impantanarsi in calcoli inutili.
Potrebbe capitare che, sommando due numeri, il risultato sia costituito da un numero di cifre binarie maggiore di quelle degli addendi originari, questo è normale anche nel sistema decimale, infatti se sommiamo 9 e 8 otteniamo:

 

 

BINARIO

DECIMALE

Riporti

1111111

10+

1° Addendo

1001+

9+

2° Addendo

1000=

8=

Risultato

11001=

17=

 

Sottrazione tra numeri binari
Anche per quanto riguarda la sottrazione tra numeri binari valgono le regole dell’aritmetica elementare e le operazioni vengono svolte in colonna secondo le seguenti regole:

 

0–0 = 0

1–1 = 0

1–0 = 1

0–1 = 1 con un prestito di 1 dalla cifra precedente

 

Quest’ultima regola è la più difficile da comprendere ed è bene chiarirla con un esempio:

 

 

BINARIO

DECIMALE

1° Addendo

1001011–

75–

2° Addendo

101=

5=

Risultato

1000110=

70=

 

Potrebbe capitare, svolgendo un’operazione di sottrazione binaria, che non sia possibile chiedere un prestito alla cifra immediatamente vicina perché essa è 0, in questo caso si chiede un prestito al primo 1 che si trova verso sinistra, e tutti gli 0 che «sorvoliamo» vengono trasformati in 1.

 

Un esempio chiarisce meglio il concetto:

 

 

BINARIO

DECIMALE

1° Addendo

1010001–

81–

2° Addendo

110=

6=

Risultato

100101=

75=

 

Moltiplicazione tra numeri binari
La moltiplicazione evidenzia la semplicità di operare in base 2. Infatti è possibile svolgere tale operazione in colonna, usando le regole aritmetiche. Vediamo solo un esempio di prodotto tra numeri binari:

 

10110×

101=

10110

00000–

10110–

1101110

 

Cioè 26+25+23+22+2=11010

Divisione tra numeri binari
È un’operazione ancor meno usuale della moltiplicazione, comunque anche per la divisione si opera come nel sistema decimale con le usuali regole aritmetiche. Supponiamo di voler effettuare la divisione 14:2, vediamo lo svolgimento sia in binario sia in decimale:

 

1110

100

1000

111

0110

 

0100

 

0010

 

000100

 

0000

 

 

14

2

14

7

0

 

 

La rappresentazione dei numeri relativi
L’operazione di sottrazione tra due numeri è solitamente data da minuendo meno sottraendo. Dal punto di vista algebrico può essere considerata equivalente alla somma tra il minuendo ed il sottraendo cambiato di segno, pertanto la differenza può essere ricondotta ad una somma se facciamo ricorso ai numeri negativi. Una rappresentazione particolarmente usata è quella detta in modulo e segno, con la quale si usa il bit più significativo per individuare il segno, secondo la convenzione seguente:

  • i numeri positivi hanno il bit più significativo pari a 0;
  • i numeri negativi hanno il bit più significativo pari ad 1.

I rimanenti bit rappresentano il modulo, ovvero il valore assoluto, del numero stesso; questo tipo di rappresentazione rende necessario aggiungere un bit oltre a quelli necessari per l’usuale rappresentazione del numero. Ad esempio con quattro bit possiamo rappresentare tutti i numeri compresi tra + 7 e – 7. Il difetto, come possiamo vedere dalla tabella, è che esistono due rappresentazioni dello 0 e precisamente 0000 (cioè + 0) e 1000 (cioè – 0).

 

 

Bit relativo al segno

Bit relativo al modulo

Numero corrispondente

0

111

+7

0

110

+6

0

101

+5

0

100

+4

0

011

+3

0

010

+2

0

001

+1

0

000

+0

1

000

–0

1

001

–1

1

010

–2

1

011

–3

1

100

–4

1

101

–5

1

110

–6

1

111

–7

 

La rappresentazione in complemento a due
Per rappresentare i numeri relativi è molto conveniente ricorrere a questo metodo, anche perché è decisamente più facile da implementare con circuiti elettronici. Per poter apprendere tale metodo è necessario acquisire il concetto di complemento alla base, valido per tutti i sistemi e non solo per il sistema binario.

Dato un sistema di numerazione in base b ed un numero N di n cifre, si definisce complemento del numero alla base e si indica con N(b) la differenza tra la potenza ennesima della base ed il numero dato: N(b)=bn–N .

Per esempio, calcoliamo i complementi alla base dei numeri in base 10: 1.392; 81; 43.290. 

104 – 1.392 = 8.608    102 – 81 = 19  105 – 43.290 = 56.710

Notare, come regola pratica, che la potenza cui è elevata la base è sempre uguale al numero delle cifre costituenti il numero da complementare. Nel primo caso, per esempio, la base 10 è elevata alla quarta potenza perché 8.608 è composto da 4 cifre.
Cerchiamo di comprendere adesso l’utilità del complemento alla base. Supponiamo di dover eseguire la sottrazione 491 – 312, o, in modo equivalente, la somma 491 + (– 312).
Calcoliamo prima il complemento alla base del numero 312:

102 – 312 = 688

Adesso sommiamo a 491 il complemento di 312:

491 + 688 = 1.179

Eliminando l’1 iniziale otteniamo 179 che è proprio il risultato cercato.

L’ utilità di questo metodo è evidente: la differenza fra due numeri si riconduce alla somma, e pertanto tutte e quattro le operazioni possono essere effettuate tramite somme (previo complementazioni). È quello che accade in realtà nei circuiti elettronici destinati alla elaborazione numerica.
L’estensione al caso del sistema binario è immediata. Vediamo qualche esempio, calcolando i complementi alla base dei numeri 101 e 1100.

23 – 101=1000 – 101=11

24 – 1101 = 10000 – 1100 = 100

È immediato obiettare che l’operazione di complementazione richiede in ogni caso che si esegua una differenza. Per questo motivo, specialmente in binario, si utilizza di preferenza il metodo del complemento ad uno, che è un caso particolare del metodo del complemento alla base 1.

Metodo del complemento ad 1
Accanto alla definizione di complemento a due è possibile inserire quella di complemento a uno.

Dato un numero N espresso da n cifre, si definisce complemento ad 1 del numero e si indica con N(1) la seguente espressione:

N(1) = (bn–1) – N

In generale il complemento alla base 1 non è altro che il complemento alla base al quale viene sottratta una unità. Per esempio, il complemento alla base 1 del numero (in base 10) 861 è semplicemente:

(103 – 1) – 861 = 138

 Ai fini pratici, il complemento alla base 1 si ottiene complementando alla base e sottraendo 1 al risultato.

Calcoliamo il complemento ad 1 del numero binario 1001:

 24 – 1 – 1001 = 10000 – 1 – 1001 = 1111 – 1001 = 0110

 Dove si è volutamente lasciato lo zero iniziale nel risultato, pur non essendo significativo, per mettere in risalto una regola pratica importantissima:

 Il complemento ad 1 di un numero binario si ottiene complementando ogni sua singola cifra (cioè scambiando 0 con 1 e viceversa).

Tramite il metodo del complemento ad 1 risulta superato il problema della esecuzione di una differenza per complementare un numero binario alla base.

Analogamente per quanto riguarda il complemento a due è possibile dare la seguente definizione:

Il complemento a 2 di un numero binario assegnato si ottiene dal numero di partenza, calcolando il complemento ad 1 di quest’ultimo e poi aggiungendo 1 ovvero:

N(2) = N(1)+1

Consideriamo, ad esempio, il calcolo del complemento alla base del numero binario N = 1011002 = 4410. Calcoliamo prima il complemento ad 1 che risulta essere pari a: 010011. Pertanto il complemento a 2 risulta 010011 +1 = 010100. Per maggiore sicurezza facciamo una verifica:

 

N(2) = 26 – 101100 = 1000000 – 10110001 = 010011  

Che corrisponde esattamente al nostro risultato, a parte lo zero iniziale non significativo.

Conclusioni
L’inconveniente principale della rappresentazione binaria è che richiede molte cifre per esprimere numeri piccoli. Per esempio, 8710 = 1010111.
Prima di trovare la sua applicazione principe nell’aritmetica dei calcolatori, il sistema binario è stato a lungo una curiosità per matematici, che consideravano particolarmente elegante la sua semplicità. Il filosofo matematico Gottifried Wilhelm Leibniz (1646 – 1716) ne era entusiasta, tanto da far scrivere a Laplace (1749 – 1827), altro eminente matematico: “Leibniz vide in questa aritmetica binaria l’immagine della creazione. Egli immaginò che l’Unità rappresentasse Dio e lo zero il vuoto; e che l’Ente Supremo avesse tratto tutti gli esseri dal vuoto, precisamente come l’unità e lo zero esprimono tutti i numeri in questo sistema di numerazione”.

 

Esercizi

  • Convertire in esadecimale ed ottale i seguenti numeri decimali: 236, 435, 8765, 65536, 64, 876.
  • Convertire in binario i seguenti numeri decimali: 32, 54, 16, 48, 254, 123, 445.
  • Convertire direttamente in binario i seguenti numeri ottali: 44, 75, 107, 447, 124 4.
  • Convertire direttamente in binario i seguenti numeri esadecimali: A034, A042, F117, 56B2
  • Convertire in decimale i seguenti numeri binari: 11001, 111111, 1001100, 11000111, 1100110.
  • Convertire direttamente prima in esadecimale e poi in ottale i seguenti numeri binari: 1000111100, 1110011, 1111111100, 110000011, 110010.

 

   Esercizi

  •  Eseguire le seguenti somme in binario: 10000111 + 111001; 100001111011 + 1011000101; 1000000 + 10000; 10001100101 + 100001.
  • Eseguire le seguenti sottrazioni in binario: 100001111 – 101100; 10000101 – 11101.
  • Scrivere in complemento ad 1 e poi in complemento a 2 i seguenti numeri binari: 1000111100, 1110011, 1111111100, 110000011, 110010.
  • Eseguire i seguenti prodotti tra numeri binari: 100011 10 ´ 101; 100011110 ´ 1001.

HARDWARE E SOFTWARE

Nel lontano 1945, il matematico americano di origine ungherese John Von Neumann definì l’architettura logica di un elaboratore.
Questa architettura doveva essere adottata per migliorare le operazioni di input e output delle informazioni da fornire o ricevere da un elaboratore e la loro esecuzione; fino a quel momento, era spesso necessario l’intervento dell’uomo per «preparare» la macchina all’esecuzione di un nuovo programma.
Von Neumann dimostrò che, adottando il suo modello, un elaboratore era in grado di eseguire qualsiasi calcolo (ovviamente risolvibile), senza la necessità di dover modificare fisicamente la macchina (cambiando dei collegamenti); era sufficiente modificare il programma che doveva essere eseguito dalla macchina stessa.
Fare calcoli è come cucinare.
Per cucinare, servono le seguenti cose:
– gli ingredienti che devono essere processati;
– gli strumenti per conservare gli ingredienti (es: il frigorifero);
– gli strumenti per processare gli ingredienti (es: il forno);
– le istruzioni da seguire: la ricetta.

Esploriamo questa analogia.
Per esplorare l’analogia,basta cambiare qualche termine:
per calcolare, servono le seguenti cose:
– i dati che devono essere processati;
– gli strumenti per conservare i dati: la memoria del calcolatore;
– gli strumenti per processare i dati: l’unità di calcolo (CPU);
– le istruzioni da seguire: il programma. 

Arriviamo al punto chiave.
In cucina:

Una ricetta è una cosa diversa da un ingrediente e quindi viene conservata in un posto diverso e trattata con strumenti diversi.
In un processo di calcolo:
Una istruzione è essa stessa un dato e quindi può essere conservata nello stesso posto di un dato e trattata con gli stessi strumenti. 

Il modello universale di calcolatore
Un ciclo che si ripete all’infinito:

Leggo dalla memoria la prossima istruzione.
L’istruzione specifica dove (ma sempre in memoria) sono contenuti i dati da elaborare.
e quale operazione deve essere eseguita;
e dove deve essere “scritto” il risultato del calcolo.

È altrettanto facile specificare una nuova operazione quanto modificare i dati da elaborare. 

 ciclo 

 

I dati che devono essere elaborati e il programma che contiene le istruzioni sono memorizzati in quella che viene chiamata memoria dell’elaboratore; l’unità di controllo (Control Unit) preleva dalla memoria le istruzioni e i dati ed esegue su questi le operazioni richieste dal programma (o meglio richiede all’unità aritmetico-logica di svolgere per lei queste operazioni).
L’architettura di Von Neumann è ancora alla base del funzionamento dei moderni calcolatori.
Vediamo allora quali sono i componenti di una macchina binaria, con un parallelismo tra i componenti ipotizzati da Von Neumann e quelli attualmente utilizzati:

l’unità aritmetica centrale, componente che si occupa dei calcoli e delle operazioni logiche (oggi questo componente viene definito ALU);
l’unità di controllo che gestisce un numero finito di istruzioni in memoria e di dati (oggi normalmente questo blocco viene definito Control Unit, CU);
la memoria che contiene dati e istruzioni (nei moderni calcolatori abbiamo registri e RAM: la memoria volatileRAM è una delle innovazioni introdotte dal modello di Von Neumann);
le unità di ingresso e di uscita (oggi monitor, tastiera e memorie di massa, ecc.). 

 architettura di von Neumann

 

L’elaborazione avviene attraverso un insieme organizzato di risorse diverse: le risorse hardware e le risorse software.
Con il termine hardware ci si riferisce alla struttura fisica di un elaboratore elettronico cioè a tutte le componenti fisiche (quelle che possiamo vedere) che si trovano al suo interno e quelle esterne a esso che lo collegano al mondo circostante. Fanno parte dell’hardware interno all’elaboratore l’unità centrale di elaborazione, la memoria centrale, il disco fisso ecc., mentre tastiera, mouse, video, stampante ecc. fanno parte dell’hardware esterno. 

 hardware

Con il termine software viene individuato tutto ciò che non è elemento fisico (non si vede, non ha peso) ma serve a far svolgere tutte le attività dell’hardware; si intendono cioè tutti i programmi che si utilizzano con l’elaboratore elettronico e consentono di farlo funzionare.
L’hardware senza il software si riduce a essere un insieme di apparecchiature che non producono nessun lavoro.
È il software che fa diventare un computer una macchina in grado di svolgere attività molto diverse tra loro quali scrivere una lettera, eseguire operazioni aritmetiche, disegnare, memorizzare dati.

Tipologie di computer
In base alle prestazioni i computer sono classificati in:


personal computerPersonal computer: di dimensioni ridotte e prezzi contenuti utilizzati nelle imprese, negli uffici pubblici, negli studi professionali e nelle famiglie.
mini computerMinicomputer: calcolatore in grado gestire la condivisione di dati e programmi fra più terminali. Questo tipo di sistema, utilizzato in aziende di una certa dimensione, oggi ha un valido concorrente nella rete di computer.

mainframeMainframe: elaboratori usati ove sono necessari l’elaborazione e il trasferimento di elevate quantità di dati come, per esempio, in una banca.

laptopLaptop: sono i computer portatili. Questi computer hanno un ingombro modesto e peso ridotto e quindi possono essere trasportati agevolmente. Le loro prestazioni sono simili a quelle dei personal computer, ma il loro prezzo è notevolmente superiore a parità di prestazioni.
palmarePalmare o PalmTop: È un Personal Computer di ridotte dimensioni, facilmente trasportabile, con proprio sistema operativo e software applicativi; ha scarse risorse hardware, ma sufficienti per utilizzarlo in alternativa ad un desktop e un notebook quando si è lontani dal posto di lavoro e i compiti da svolgere sono semplici; permette facile interfacciamento con altri Personal Computer per il trasferimento dati e la navigazione su Internet.

– Un computer che disponga dell’hardware e del software necessario per la connessione ad una rete si chiama Network Computer.
– Così come Workstation è un Personal Computer di elevate potenzialità simile a un desktop, ma con componenti hardware più performanti; viene di solito usato per applicativi dove sono richieste elevate capacità di calcolo, ad esempio in ambito grafico, audio e video.

Possiamo ancora classificare i computer sulla base del loro utilizzo; avremo allora:
Computer General purpose: adatti a risolvere problemi generici in diversi settori.
Computer Special purpose: progettati per scopi specifici.

 

Un terminale è un dispositivo composto essenzialmente da monitor e tastiera.
I terminali che possiedono CPU sono in grado di svolgere almeno qualche operazione di elaborazione in modo autonomo e sono detti terminali intelligenti, quelli che non possiedono CPU non sono in grado di compiere alcuna elaborazione autonomamente e sono detti terminali stupidi.
In genere i terminali vengono collegati a un minicomputer o a un mainframe condiviso da più utenti.

Componenti di base di un personal computer
Un personal computer è una macchina in grado di ricevere informazioni, di elaborarle seguendo le istruzioni di un programma e di fornire i risultati. 

 elaborazione

Le elaborazioni che un computer deve saper svolgere sono:

  • eseguire problemi di natura diversa (scrivere un testo, stampare una fattura, realizzare un grafico);
  • eseguire operazioni di calcolo e operazioni logiche (per esempio, confrontare due numeri, due date);
  • elaborare sia dati numerici sia dati non numerici (i dati non numerici sono quelli che non hanno significato numerico, quali nomi, descrizioni, codici);
  • eseguire una successione di operazioni codificate mediante un linguaggio di programmazione;
  • memorizzare le informazioni. 

Per poter eseguire queste operazioni un computer deve essere costituito essenzialmente da:

  • unità centrale di elaborazione: si può considerare come il cuore del computer, cioè quell’unità che governa l’elaborazione;
  • memoria centrale: è il supporto sul quale l’unità centrale legge e scrive i dati e le istruzioni dei programmi;
  • memorie di massa: servono per conservare in modo permanente programmi e dati elementari. Si distinguono in:
    – disco fisso (hard disk): supporto magnetico (solitamente non estraibile) di grandi capacità;
    – dischetto (floppy disk): disco estraibile di piccole dimensioni;
    – zip disk: disco estraibile di medie capacità;
    – CD-ROM: disco estraibile di grandi capacità;
  • dispositivi di input: servono per introdurre dati nel computer, per esempio, dalla tastiera o da un archivio contenuto in una memoria di massa;
  • dispositivi di output: servono per comunicare i dati elaborati dal computer. I risultati dell’elaborazione possono essere inviati allo schermo, alla stampante oppure memorizzati in un archivio contenuto in una memoria di massa.

La scheda madre serve per collegare elettronicamente i vari componenti di un computer. scheda madre

Essa contiene un supporto dove va inserita l’unità centrale di elaborazione e i supporti dove vanno inseriti i moduli di memoria RAM.
Gli altri dispositivi sono collegati alla scheda madre tramite connettori, come, per esempio, l’hard disk, il floppy disk, il CD-ROM, oppure delle sedi, chiamate slot, dove vanno inserite altre schede come, per esempio, la scheda grafica, la scheda sonora.

Microprocessore. È ovviamente il componente più importante presente sulla scheda madre; viene inserito in uno zoccolo ZIF (Zero Insertion Force) per facilitarne la rimozione.
Ogni famiglia di microprocessori è dotata di un certo numero di piedini (fino a 478).
I microprocessori più recenti, oltre alle alette di raffreddamento, hanno una ventola per facilitare la dissipazione del calore.
Al microprocessore (noto anche con il nome di CPU) sono demandate tutte le funzioni di controllo ed esecuzione delle istruzioni che costituiscono i programmi da eseguire. È ovvio quindi che le sue caratteristiche influenzano pesantemente le prestazioni di un PC (anche se in realtà queste ultime dipendono anche dal software utilizzato - Sistema Operativo, BIOS, programmi – e dagli altri componenti hardware presenti).
La maggior parte dei PC utilizza microprocessori in grado di eseguire programmi le cui istruzioni sono compatibili con i microprocessori Intel della serie 80x86; esistono inoltre i microprocessori RISC (Reducted Instruction Set Computer). 
 zif

La frequenza del clock costituisce un’importante indicazione sulle prestazioni della CPU che risulta tanto più efficace quanto più è elevata la frequenza del clock.
Si tenga presente che per ogni CPU esiste un limite di frequenza che non deve essere superata per non incorrere in problemi tecnici dovuti al surriscaldamento o a fenomeni elettromagnetici.
Alcune operazioni vengono eseguite in un ciclo di clock, altre ne richiedono più di uno, ne segue che il numero di operazioni è inferiore al numero di oscillazioni dell’orologio.
La velocità della CPU si misura in MIPS (Millions Instructions Per Second), milioni di istruzioni per secondo.

Controller o chip set. È un insieme di chip (normalmente due, il NorthBridge e il SouthBridge) di supporto al microprocessore che consentono l’interfaccia del microprocessore con gli altri circuiti delle diverse schede, con le memorie, con l’hard disk. Un esempio per tutti: Intel 850.
Memoria ROM. Memoria di sola lettura, normalmente di tipo EEPROM (o Flash Memory), che contiene il BIOS (Basic Input Output System), cioè le istruzioni eseguite all’accensione del PC che precedono il caricamento del sistema operativo e permettono al microprocessore di riconoscere, inizializzare e diagnosticare i dispositivi hardware presenti.

Memoria Cache. Si trova all’interno del microprocessore (cache di primo livello o L1come banchi di memoria alloggiati in appositi zoccoli (cache di secondo livello o L2).
Attualmente la dimensione della memoria cache arriva a 512 kByte e si tende a integrarla all’interno del microprocessore. Ha tempi di accesso nell’ordine di 10 miliardesimi di secondo.

Memoria principale o di sistema. Costituisce la memoria fisica che il microprocessore è in grado di vedere; è costituita da moduli DIMM, SIMM, DDR o RAMBUS alloggiati in appositi slot (zoccoli di espansione di memoria).
Il sistema riconosce automaticamente all’avvio la quantità di memoria presente.
I moduli DIMM sono costituiti da circuiti stampati con diversi integrati di memoria.
Un modulo SIMM può avere una capacità da 8 a 32 M Byte, mentre i moduli DIMM arrivano a capacità superiori (per esempio 512 MByte).
I moduli DDR e le memorie RAM-BUS, anch’essi di grande capacità, lavorano con prestazioni superiori rispetto alle memorie DIMM.
Ogni scheda madre può essere equipaggiata con diversi moduli di memoria a seconda delle esigenze. Attualmente si richiedono almeno 4 GByte di RAM.
Un particolare circuito del chipset, il controller della memoria, permette di interfacciare il microprocessore ai circuiti di memoria (infatti lavorano a velocità diverse). Un altro circuito, il controller DMA (Direct Memory Access) consente l’accesso diretto alla memoria: quando si rende necessario trasferire pacchetti o blocchi contigui di dati tra diverse zone della memoria o tra dispositivi di I/O e memoria o viceversa, non viene coinvolto il microprocessore, che continua ad eseguire altri compiti, senza occuparsi di questo tipo di operazioni.

 ram

Memoria tampone. È un circuito che memorizza anche a PC spento informazioni relative alla configurazione hardware corrente del PC stesso, in modo che alla successiva accensione il microprocessore possa accedere velocemente a queste informazioni per rilevare nuovi componenti.
PIC: controllore programmabile delle interruzioni. Il PIC (Programmable Interrupt Controller) è un circuito che gestisce gli Interrupt: quando un dispositivo (tastiera, timer, ecc.) necessita di un intervento del microprocessore, questo deve interrompere il normale corso delle sue operazioni per gestire appunto queste interruzioni. Il PIC gestisce gli Interrupt, assegnando diversi livelli di priorità: ogni periferica ha un ingresso dedicato e un certo livello di priorità; gli ingressi sono chiamati IRQn: la porta parallela costituisce IRQ7 con priorità 0 (bassa), il timer – IRQ0, ha priorità 15, la più alta.

 

Orologio di sistema. Circuito che fornisce data e ora; ha una batteria che ne garantisce il funzionamento anche a PC spento.
Slot ISA. Sono connettori (ormai praticamente scomparsi) per schede di espansione conformi allo standard ISA: la comunicazione avviene tramite trasferimento in memoria a 8 o 16 bit, con velocità massima di trasferimento di 8 MHz; lo slot è diviso in due zone, una con 62 contatti per la comunicazione a 8 bit, l’altra con 18 contatti per la comunicazione a 16 bit. I segnali elettrici sono suddivisi in segnali dedicati all’indirizzamento, alla gestione degli Interrupt, al controllo DMA e all’alimentazione.
Slot PCI. Sono connettori più piccoli degli ISA, consentono l’alloggiamento di dispositivi conformi allo standard PCI, lavorano con trasferimento fino a 32 bit e sono sincroni (con un segnale di clock a 33 MHz) e consentono velocità massima di trasferimento di 133 MByte/s.
Slot AGP. Ha un numero maggiore di contatti rispetto al PCI e viene utilizzato per alloggiare singole schede di accelerazione grafica. Lavora con gruppi di 32 bit a 66 MHz, consente un trasferimento massimo fino a 532 MByte/s (necessita di opportuno controller).
Slot PCI Express (Peripheral Component Interconnect Express), ufficialmente abbreviato in PCIe, è uno standard di interfaccia d'espansione a bus seriale per computer, progettato per sostituire i vecchi standard PCI e AGP.
È basato su un trasferimento dei dati seriale, a differenza di quello parallelo del PCI, che semplifica il layout del circuito stampato delle schede madri ed è costituito da una serie di canali. Ciò consente una notevole modularità, in quanto possono essere aggregati più canali per aumentare la banda passante disponibile o per supportare particolari configurazioni, come ad esempio l’utilizzo di due o più schede video; inoltre la larghezza di banda di ciascun canale è indipendente da quella degli altri.
PCI Express è stato progettato per sostenere il sempre maggior fabbisogno energetico delle schede video di ultima generazione. Infatti, a differenza dello slot AGP, in grado di erogare un massimo di 50 Watt, la revisione 1.x di PCI-ex supporta carichi fino a 75 W, permettendo così di eliminare il connettore MOLEX dalle schede di fascia media e medio-bassa anche se è rimasto per tutte le altre.
Queste porte prodotte dalla Intel e che hanno debuttato nel 2004, presentano un’ampiezza di banda del Bus che raggiunge i 15,754 GB/s.

socket
Connettore per la tastiera. Consente la comunicazione seriale con la tastiera. Utilizza un apposito controller.
Controller tastiera. È il circuito che esegue un programma per identificare i tasti premuti sulla tastiera.
Connettori IEEE 1394 Firewire. Consentono collegamenti seriali ad alta velocità di dispositivi esterni; è uno standard recente.
Connettori per comandi e segnalazioni. Sono i connettori per i led di indicazione, per l’interruttore di accensione e il pulsante di reset presenti sul pannello frontale del case.
Connettori IDE primario e secondario. Consentono il collegamento con dispositivi di memoria di massa con standard ATA o ATAPI (hard disk o CD Rom IDE). Hanno 40/80 connessioni elettriche; consentono ciascuno il collegamento di 2 dispositivi (uno master e l’altro slave).
Se è presente un controller apposito che rispetta lo standard UltraDMA/33 si può arrivare ad una velocità di trasferimento fino a 66 MByte/s.
Un connettore a parte è riservato alla connessione con il lettore floppy.
Il controllo dei dispositivi connessi a questi connettori è demandato a circuiti interni al chipset piuttosto che a controller dedicati.
Connettori SCSI. Sono connettori a 50 piedini che consentono il collegamento di dispositivi di memoria di massa conformi a questo stan­dard. Si può arrivare a collegare fino a 7 di­spositivi grazie ad un apposito controller (più veloce rispetto al controller IDE). channel

Porte seriali e loro connettori. Le schede madri di recente costruzione incorporano i connettori per le porte seriali con opportuni controller per le funzioni di comunicazione seriali (standard UART: Universal Asinchronous Receiver Transmitter), che in pratica effettuano conversioni parallelo-seriale e viceversa; i connettori si interfacciano con l’esterno con prese DIN9 o DIN25; è possibile trovare delle schede con porte seriali sugli slot ISA.
Le porte seriali sono identificate con le sigle COM 1, COM2, ecc. e permettono il trasferimento di dati a una velocità massima di 115,2 kbaud; lo standard utilizzato per la comunicazione seriale è il RS232.
Porte parallele e loro connettori. Attraverso questa porta, la trasmissione dati avviene in forma parallela, senza loro conversone in forma seriale; viene utilizzato un circuito interno al chipset per la supervisione del trasferimento dati. Consentono il collegamento con dispositivi quali scanner e stampanti mediante porte DIN25 femmine; le porte parallele sono identificate con le sigle LPT1, LPT2, ecc.
Porta seriale USB. Sui connettori USB sono presenti, oltre ai segnali per la comunicazione seriale USB, segnali per fornire alimentazione alle periferiche collegate (casse, modem, mouse, ecc.). Consente di collegare dispositivi con interfaccia USB; su un unico cavo possono essere collegate più periferiche. Lo standard 
USB 1.1 consente velocità fino a 12 Mbit/s; lo standard USB 2.0 velocità 40 volte superiori allo standard precedente, cioè fino a 480 Mbit/s; lo standard USB 3.1 consente velocità fino a 10Gbit/s.
Connettore porta giochi. Consente il collegamento con il joystick.
Connettore alimentatore. Consente di collegare l’alimentazione alla scheda madre.
Scheda video - scheda audio integrate. Contengono tutti i chip che costituiscono la scheda video o la scheda audio.
Schede di espansione. Le schede di espansione sono circuiti stampati con un certo numero di circuiti integrati; su un Iato presentano un connettore che dovrà essere inserito in uno degli slot della mother board e su un altro lato possono avere delle prese per la connessione con dispositivi esterni. In generale le schede di espansione svolgono funzioni non implementate dalla scheda madre e permettono di estendere le potenzialità della stessa.
Tra le schede che implementano le funzioni standard abbiamo:

  • la scheda video, per l’interfacciamento tra mother board e monitor; può avere integrato un acceleratore grafico; oggi il sistema video più diffuso è il SuperVGA: lo schermo viene diviso in 1024 colonne per 768 righe per un totale di circa 800.000 pixel; inoltre un monitor può essere interlacciato e non interfacciato (nel primo caso per completare un’immagine bisogna fare due passaggi, mentre nel secondo basta una volta sola, evitando fenomeni di sfarfallio). Infine possiamo utilizzare un numero variabile di colori: a seconda dei bit usati per definire il colore di ogni pixel, potremo utilizzare dai 16 colori ai 16,8 milioni di colori;
  • le schede per le porte seriali e parallele, che permettono connessioni con dispositivi esterni (stampanti, scanner, modem, ecc.)

Tra le schede non standard abbiamo, ad esempio, schede per l’accelerazione grafica, schede per l’interfacciamento verso dispositivi industriali (motori, PLC...), schede per l’acquisizione video, modem interni.

Abbiamo ancora schede con funzionalità particolari:

– schede per l’elaborazione di segnali;
– schede per l’acquisizione dati;
– schede di rete, per la connessione del PC ad una rete di computer;
– e molte altre.

Le schede si possono classificare quindi a seconda della loro funzionalità, oppure possono essere di input, di output o di input/output; inoltre possiamo avere schede con connettore ISA, PCI o AGP.
Le schede PCI permettono trasferimento a velocità maggiori ma in generale hanno costi superiori rispetto alle schede ISA.

Hard disk
L’hard disk o disco fisso, è un dispositivo di memoria di massa. Viene utilizzato per memorizzare in modo permanente le informazioni (dati e programmi), che rimangono memorizzate anche dopo lo spegnimento del PC. È costituito da più dischi di alluminio ricoperti da materiali ferromagnetico, da un certo numero di testine per la lettura e la scrittura delle informazioni e da un dispositivo di controllo (controller); i dischi ruotano attorno al loro asse e le testine, traslando radialmente, si posizionano su una particolare «zona» della superficie magnetizzabile.
Gli hard disk si differenziano per la loro capacità di memorizzazione, espressa in multipli di Byte (oggi si hanno comunemente HD da 120 GByte e oltre), dalla velocità di accesso ai dati (in lettura e in scrittura) e dalla tipologia del connettore, che collega l’hard disk alla mother board (IDE o SCSI).

 

Parametri di un disco rigido
Capacità: quantità totale di dati memorizzabile (misurabile in GigsByte o in TeraByte).
Data rate: numero di byte trasferibili nell’unità di tempo (valori tipici sono nell’ordine dei 5-40 MB/s).
Tempo di accesso: tempo che intercorre fra la richiesta di un dato e la fornitura del primo byte (valori tipici vanno da 10 a 20 ms).

 Hard Disk

Struttura di un disco rigido
Uno o più dischi sono connessi fra loro da un perno rotante (mosso da un motore ad alta precisione – passo passo).
Ogni disco è registrabile su entrambe le facce. Per ogni superficie vi è una testina in grado di leggere/scrivere su di essa.
Tutte le testine sono connesse fra loro da un braccio mobile.

 

Le superfici dei dischi
Ogni superficie registrabile di un disco rigido è suddivisa in tracce, ovvero, in circonferenze concentriche:

traccia

Le tracce
Ogni traccia di una superficie registrabile di un disco rigido è ulteriormente suddivisa in porzioni chiamate settori.
Un settore (tipicamente della dimensione in grado di contenere 256-512 byte) è la porzione di superficie più piccola che una testina può leggere/scrivere con un’unica operazione.
La formattazione di un disco segna fisicamente l’inizio e la fine di ogni settore in modo che le testine li possano localizzare.
Cilindri di un disco rigido
Le tracce corrispondenti (ovvero, aventi la stessa distanza dal perno) sulle diverse superfici registrabili di un disco rigido costituiscono un cilindro.
Quindi per la specifica di un particolare settore, abbiamo bisogno di tre parametri:
cilindro su cui è posizionato il settore,
superficie del cilindro su cui è posizionato il settore,
settore all’interno della traccia.cilindro

Lettura/ scrittura su disco rigido
Ogni operazione di lettura/scrittura su disco rigido è composta dai seguenti passi:
spostamento delle testine sul cilindro corrispondente (il tempo impiegato è noto come seek time),
attivazione della testina della superficie corretta (quella su cui si trova il settore),
rotazione del disco finché il settore corretto non si trovi sotto la testina (il tempo impiegato è noto come latency time),
trasferimento dei dati dal disco (lettura) oppure verso il disco (scrittura).
Tempo di accesso = seek time + latency time.

Lettore CD Rom
È un dispositivo presente ormai in tutti i PC; permette la lettura dei CD Rom e dei normali CD audio. I CD hanno una capacità di memorizzazione elevata, molto maggiore di un semplice floppy disk; vista la dimensione dei programmi che vengono oggi comunemente utilizzati, i CD sono diventati il supporto standard per il trasporto delle informazioni.

Masterizzatori
Dispositivi che permettono la scrittura e/o la riscrittura di informazioni su CD. Si dividono in masterizzatori che permettono la semplice scrittura di informazioni e in masterizzatori che permettono anche la riscrittura delle stesse (utilizzando particolari supporti). Permettono di memorizzare fino a 700 MB di informazioni su un singolo disco. 

Lettori DVD Rom
Sono i lettori dei recenti dischi DVD, utilizzati per memorizzare grandi quantità di dati come ad esempio interi film.

Masterizzatori DVD
Dispositivi che permettono la scrittura di dischi DVD, che hanno una capacità di memorizzazione che può arrivare ad 8 GB su singolo supporto. 

Il CD è un disco dello spessore di 1,2 mm composto dai seguenti strati:

  • uno strato di policarbonato trasparente su cui, lungo una spirale che parte dal centro del disco, vi è una successione di zone piatte e di rientranze (bumpsincise con un procedimento di stampatura;
  • un foglio sottile di alluminio che riflette la luce, uno strato di materiale acrilico di protezione, l’etichetta. 

 cd 

CD: principio di funzionamento
Un raggio laser viene proiettato verso lo strato di policarbonato (dal lato opposto all’etichetta) seguendo la spirale.
Viene misurata la quantità di luce riflessa che varia a seconda se viene colpita una rientranza (interpretata come 0) oppure una zona piatta (interpretata come 1).
Spesso, per ragioni di affidabilità, un 1 viene codificato come il passaggio da una rientranza ad una zona piatta e lo 0 come la mancanza di tale passaggio.

 cd

 

CD-ROM
I Compact Disk realizzati con il procedimento di stampatura descritto vengono detti CD-ROM (Compact Disk – Read Only Memory).
Infatti essi, una volta usciti dalla fabbrica, non sono più modificabili e possono soltanto essere solamente letti.

CD-R
I CD-R (Compact Disk – Recordable) sono dei CD scrivibili tramite i cosiddetti “masterizzatori”, che sfruttano un procedimento chimico.
In un CD-R fra lo strato di alluminio e il policarbonato vi è uno strato composto da un materiale fotosensibile (dye).
Inizialmente lo strato di materiale fotosensibile è trasparente e quindi la luce del laser lo attraversa e viene riflessa dallo strato di alluminio.
Se un laser di una certa intensità e frequenza colpisce lo strato fotosensibile, la porzione colpita si annerisce permanentemente, divenendo opaca (burned) e non lasciando più passare la luce. In questo modo le zone annerite codificano degli 0 e le zone rimaste trasparenti degli 1.
I masterizzatori hanno due laser:
uno di bassa potenza per leggere (senza alterare lo strato fotosensibile),
uno di maggiore potenza per “bruciare” lo strato fotosensibile.
Il procedimento di masterizzazione è irreversibile: una volta annerita una zona non può tornare allo stato trasparente iniziale.

 cd

 

CD-RW
Un CD-RW (Compact Disk – ReWritable) consente di usare uno stesso disco per più di una masterizzazione.
Al posto dello strato di materiale fotosensibile dei CD-R, vi è uno strato di un composto a base di argento, antimonio, tellurio e indio, noto come PCC (Phase Change Compound).
Il PCC ha la caratteristica di essere trasparente allo stato solido e opaco allo stato liquido.
Per cristallizzare (rendere solida) o liquefare una zona dello strato di PCC, è sufficiente portarla alla temperatura di 200º C o 600º C rispettivamente per un certo tempo.
Nei masterizzatori ciò avviene tramite il laser.
Una volta cristallizzato o liquefatto, il PCC mantiene lo stato anche se viene meno la fonte di calore.
Dato che per cambiare lo stato di una zona dello strato di PCC ci vuole un certo tempo, il procedimento di scrittura di un CD-RW è più lento rispetto a quello di un normale CD-R.

 cd-rwDVD-ROM
Un DVD (Digital Versatile Disk) è costruito impiegando gli stessi materiali dei CD e seguendo lo stesso principio: l’informazione viene codificata mediante un alternarsi di rientranze e zone piatte.

Tuttavia la spirale in un DVD è più stretta (740 nm invece di 1.600 nm) ed è possibile avere più strati di policarbonato, separati da strati metallici riflettenti o parzialmente riflettenti.
Analogamente a CD-ROM, DVD-ROM significa DVD - Read Only Memory.

Tipologie di DVD-ROM
A seconda del numero di strati di policarbonato presenti si hanno i seguenti tipi di DVD-ROM:

  • single-sided, single layer: analogo ad un CD-ROM; tuttavia la spirale più stretta consente di memorizzare fino a 4,7 GB invece di 700 MB;
  • single-sided, double layer: 2 strati di policarbonato separati da uno strato di materiale dorato semitrasparente: sono misurabili 4 diverse intensità di luce riflessa (2 per le rientranze e zone piatte dello strato interno e 2 per le rientranze e zone piatte dello strato esterno); consente di memorizzare fino a 8,5 GB;
  • double-sided, double layer: 4 strati di policarbonato (2 per lato); questo tipo di DVD-ROM non ha quindi etichetta e consente di memorizzare fino a 17 GB.

 

Scheda audio
E una scheda, normalmente PCI, che converte segnali audio in forma digitale e byte in segnali audio.
Permette di acquisire dei segnali (ha dunque delle prese di input per microfono o audio mono/stereo) e la loro riproduzione (uscite per cuffie o uscite audio amplificate per altoparlanti).
Le schede audio, all’atto dell’acquisizione di un segnale, ne effettuano un campionamento ad una particolare frequenza che può essere impostata dall’utilizzatore; inoltre ciascun campione può avere una certa risoluzione. Hanno di solito un generatore di suoni MIDI che permette di generare brani musicali in modo autonomo.
Le schede madri recenti hanno normalmente la scheda audio integrata.

Scheda di acquisizione video
Permettono l’acquisizione di immagini, trasformando segnali analogici in segnali digitali.
Abbiamo schede PAL e NTSC, utilizzate per acquisire segnali generati da prese di videoregistratori o da videocamere amatoriali, schede per digitalizzare immagini da videocamere professionali e schede per il collegamento di telecamere analogiche o digitali su bus ISA o PCMCIA o porta parallela (ad esempio webcam per videoconferenze su Internet).

Schede di comunicazione
Sono utilizzate per il collegamento tra di loro di 2 o più PC, in modo che possano scambiarsi informazioni. I PC possono essere connessi utilizzando diversi supporti fisici (cavi coassiali, doppini telefonici, trasmissioni telefoniche, ecc.). La scheda di comunicazione permette il collegamento del PC al mezzo trasmissivo: abbiamo quindi schede di rete o schede modem (meglio note come modem interni).
Il compito della scheda di comunicazione è quello di gestire correttamente lo scambio dati tra le unità connesse (sincronizzazione, correzione degli errori); la comunicazione normalmente è di tipo seriale.

Connettori «esterni»
Sul retro del case abbiamo:

– presa per la tastiera (di tipo PS/2 o altri);
– presa per il mouse;
– presa per la porta parallela (stampante, ecc.);
– presa di alimentazione.

Dispositivi esterni
Tastiera
Dispositivo di input, presente in ogni PC, permette di interagire con la macchina mediante la pressione di tasti o di combinazioni di tasti.
Abbiamo tasti con funzioni di tipo «alfanumerico», che permettono di inviare un carattere al sistema e tasti con funzioni particolari di controllo (tasti Invio, Esc, Ctrl, Alt, ecc.).
La tastiera di solito è suddivisa in diverse sezioni:

– tastierino numerico, a destra;
– tasti per lo spostamento del cursore;
– tasti alfanumerici e speciali;
– tasti funzione.

La tastiera standard ha 102 tasti, che possono assumere funzioni differenti a seconda della nazione in cui la stiamo utilizzando.

Mouse
Il mouse è un dispositivo di puntamento standard, che permette una facile interazione con le risorse del computer: è infatti sufficiente spostarlo su un tappetino detto mouse pad, per muovere corrispondentemente un cursore sul monitor e premere uno dei tasti per impartire un comando al sistema. I mouse sono dispositivi seriali; possono avere 2 o 3 tasti (sinistro, centrale e destro), possono avere una rotella posta superiormente e altri tasti laterali, possono avere un meccanismo di movimento costituito da una sferetta che tocca dei microinterruttori e sposta conseguentemente il cursore oppure possono essere ottici, per cui la movimentazione del cursore avviene grazie alla posizione di alcuni sensori ottici, possono essere cordless e quindi non avere cavi di collegamento ma trasmettere informazioni a radiofrequenza.
I dispositivi di puntamento dei notebook sono costituiti dal trackball o dal touchpad; il trackball è una sfera posizionata immediatamente sotto alla tastiera che viene fatta ruotare e sposta il cursore e il touchpad è una zona rettangolare sensibile al tatto sulla quale lo scorrimento di un dito o di una punta di matita provoca lo spostamento del cursore sul video. Abbiamo poi due tasti che hanno le stesse funzioni dei pulsanti di un mouse tradizionale. 

 mousetrackballtouchpad

Altri dispositivi di input sono:

  • lo scanner, consente di acquisire immagini o di leggere testi scritti. Mediante software è possibile il riconoscimento ottico dei caratteri tipografici e trasformare, per esempio, una pagina di una rivista, in documento testo;
  • la penna ottica, serve per leggere il codice a barre formato da segmenti verticali e si usa, per esempio, nei centri commerciali per leggere i dati riguardanti i prodotti: descrizione del prodotto, prezzo, Iva ecc.
  • il joystick, consente di controllare oggetti in movimento sul video e viene usato nei videogiochi.

 

Dispositivi di output
I dispositivi di output sono tutti quei dispositivi che servono per comunicare all’esterno i risultati dell’elaborazione.
Il video è il dispositivo standard di uscita per la visualizzazione delle informazioni. Abbiamo monitor a CRT, cioè con tubo a raggi catodici e monitor LCD, cioè a cristalli liquidi. Il segnale elettrico fornito dalla scheda video viene convertito in una immagine; il funzionamento alla base dei monitor CRT è simile a quello dei normali televisori, sono ingombranti e di basso costo. I monitor LCD invece hanno dimensioni ridotte (spessore) ma costo elevato; sono i monitor utilizzati dai PC notebook.
Vediamo quali sono i parametri caratteristici di un monitor:

  • dimensione dello schermo, espressa in pollici; è la misura della diagonale dello schermo (15", 17", 19", e superiori);
  • risoluzioni supportate, cioè dimensioni orizzontale e verticale della schermata visualizzata espresse in pixel. Il pixel (picture element) è la minima unità indipendente dell’immagine riprodotta.
  • Esempi di risoluzione (orizzontale x verticale): 640 x 480, 1024 x 768, ecc.
  • Ad esempio, a parità di dimensione fisica di un monitor, una risoluzione di 1024 x 768 permette una migliore definizione dell’immagine rispetto ad una risoluzione inferiore, ad esempio 800 x 600;
  • frequenza massima di scansione orizzontale, espressa in kHz: è la velocità con cui vengono rinfrescati ed aggiornati i colori dei pixel di una riga;
  • frequenza massima di refresh verticale: indica il numero di volte che l’intera immagine viene rinfrescata in un secondo. Ad una frequenza superiore ai 60 Hz (per una risoluzione di 640 x 480), l’occhio umano viene ingannato, per cui vede un’immagine senza farfallamento. Normalmente questa frequenza è di almeno 75 Hz. Le schede video che pilotano il monitor devono comunque supportare le caratteristiche descritte;
  • la distanza tra due pixel (Dot Pitch) non dovrebbe superare i 0,28 mm.

 

La stampante è, dopo il video, il dispositivo di output più usato e consente di trasferire testi, immagini, grafici su un foglio di carta. Esistono molti tipi di stampanti che si distinguono una dall’altra per la tecnica con la quale riproducono i caratteri e per la velocità di stampa. Si possono distinguere principalmente in:

  • stampanti a impatto: il carattere viene stampato mediante la pressione di aghi su un nastro inchiostrato interposto fra questi e la carta in modo simile alla macchina per scrivere.
    Queste stampanti possono avere da 9 a 24 aghi disposti all’interno della testina di stampa e ognuno di essi, quando premuto contro il nastro inchiostrato, disegna un punto sul foglio sottostante. Un carattere si ottiene dalla pressione degli aghi che, tracciando dei punti vicini uno all’altro, lo disegnano e quindi la qualità della definizione dipende dal numero dei punti. Le stampanti ad aghi possono stampare su fogli singoli o su moduli continui; un modulo continuo è formato dall’unione di più fogli perforati lateralmente in modo da consentire il trascinamento all’interno della stampante. Queste stampanti sono piuttosto lente e rumorose, ma diventano necessarie quando è richiesta la stampa su moduli continui;
  • stampanti non a impatto: l’immagine viene stampata tramite impulsi di tipo elettrico, ottico o magnetico e quindi con un tratto continuo, ottenendo definizioni buone o molto buone e comunque superiori rispetto a una stampante ad aghi. I tipi più diffusi sono:
  • a getto di inchiostro: così chiamate perché la stampa avviene attraverso un getto di piccolissime gocce di inchiostro proiettate sulla carta. Queste stampanti sono a colori, silenziose e abbastanza veloci.
  • laser: mediante un raggio laser viene creata un’immagine della pagina da stampare e successivamente con un inchiostro in polvere (toner) viene stampata la pagina con un procedimento simile a quello usato con le fotocopiatrici. Queste stampanti sono silenziose, la loro definizione è molto buona, sono molto veloci e molto costose.
    Normalmente una stampante laser è utilizzata in una rete dove viene condivisa tra più computer. Le stampanti moderne possiedono una loro memoria interna che consente di memorizzare, a seconda della loro dimensione, un certo numero di pagine da stampare e disimpegnare così l’unità centrale di elaborazione.
  • Il plotter è una stampante molto grande che consente la stampa su fogli di grandi dimensioni, viene utilizzato nel settore della grafica per realizzare cartelloni pubblicitari e grafici.

 I parametri che caratterizzano una stampante sono:

  • massimo formato della carta (A3, A4);
  • risoluzione (misurata in DPI - Dots Per Inch, numero di punti stampabili per pollice lineare);
  • velocità di stampa (pagine/minuto o caratteri/secondo).

Software
Il termine software indica l’insieme dei programmi per computer, vale a dire le sequenze di istruzioni che guidano i circuiti di un elaboratore a compiere il lavoro cui è destinato. A seconda delle funzioni e delle applicazioni, si possono distinguere diverse categorie di software. Le tre categorie fondamentali sono:

  • i sistemi operativi;
  • i programmi applicativi, destinati a gestire le svariate applicazioni per cui esso può essere impiegato;
  • i linguaggi di programmazione o ambienti di sviluppo.

 

Sistemi operativi
Il sistema operativo è il software di base (quindi fondamentale, non accessorio per il funzionamento della macchina) che si pone tra l’utente e la macchina, permettendo al primo di accedere alle risorse della seconda e di interagire con essa.
Il sistema operativo è il software che viene caricato ed eseguito dalla macchina nella sua fase di accensione; individua le risorse hardware presenti e le predispone per un utilizzo possibilmente facile ed intuitivo da parte dell’utente. Inoltre fornisce un set di istruzioni per accedere alle risorse del PC e per manipolarle vicino al linguaggio umano e si occupa di tradurre queste istruzioni nel linguaggio macchina e viceversa, cioè rende facilmente comprensibili le risposte del sistema.
Le principali funzioni di un sistema operativo sono:

  • la gestione dell’unità centrale
  • la gestione della distribuzione della memoria centrale fra più programmi
  • la gestione delle unità di input/output
  • la gestione delle operazioni di lettura/scrittura dei dati sulle memorie di massa

Dagli anni ’80 i sistemi operativi si sono rapidamente evoluti e migliorati; ricordiamo alcune tappe fondamentali: per i PC IBM compatibili abbiamo inizialmente il sistema operativo MS-DOS, puramente testuale, per passare poi a Windows 3.1, Windows 95, Windows 98, Windows NT, Windows ME, Windows 2000, Windows XP, Windows 10 e a tutte le differenti distribuzioni di Linux.
È bene chiarire che, anche se su un computer possono essere presenti più sistemi operativi, uno solo può essere attivo, cioè non è possi­bile usarne due contemporaneamente perché la gestione diversa delle risorse provocherebbe dei conflitti. I primi sistemi operativi di personal computer erano in grado di eseguire un solo programma utente alla volta ed erano di tipo testuale come, per esempio, MS-DOS.
Si tenga presente che l’unicità è riferibile al programma utente.
Infatti, nella memoria centrale, sono presenti il programma utente e i programmi del sistema operativo che consentono la sua esecuzione.
Un sistema operativo è a interfaccia testuale quando l’utente deve digitare tramite la tastiera brevi nomi mnemonici, chiamati comandi, per attivare i programmi.
La necessità di dover conoscere la sintassi dei comandi ha ostacolato la diffusione di massa dell’utilizzo di personal computer.
Con lo scopo di rendere l’uso del calcolatore sempre più facile e, quindi, alla portata di un maggior numero di persone, sono stati realizzati sistemi operativi a interfaccia grafica, detta GUI (Graphic User Interface) che consentono all’utente di attivare i programmi e utilizzare le risorse in modo intuitivo mediante comandi predisposti in menu o in finestre o mediante icone.
I sistemi operativi per personal computer più recenti come, per esempio, Windows sono multitasking.

Questa caratteristica consente al sistema operativo di gestire più programmi utente contemporaneamente, offrendo così la possibilità all’utente di interrompere un lavoro, passare a un altro e da questo ritornare al precedente per continuare il lavoro interrotto e così via.
Si tenga presente che anche in questo caso l’unità centrale esegue un solo programma utente alla volta. 

Software applicativi
I software applicativi sono i software più diffusi e vengono solitamente suddivisi in diverse categorie, a seconda dell’utenza a cui sono rivolti o della funzione che svolgono.
Abbiamo software applicativi professionali, dedicati ad aziende e professionisti, in grado di gestire un determinato compito (ad esempio software di gestione di impianti industriali, di fatturazione, ecc.), software gestionali, software per l’office automation (che permettono l’automazione di tutte le funzioni svolte in un ufficio, dalla creazione di documenti, all’archiviazione dei dati, alla gestione dei fax), software per la grafica, per la manipolazione di audio e video.
Abbiamo poi software dedicati al mercato domestico: troviamo in questa categoria enciclopedie e software multimediali, pacchetti per la trattazione dei testi e per la gestione del budget domestico, giochi, prodotti per la grafica.
Infine abbiamo software applicativi generici, sostanzialmente d’appoggio alla normale manutenzione del PC, software per la gestione delle stampanti, per la manutenzione dei dischi, ecc. 

Linguaggi di programmazione
La terza categoria di software è costituita dai linguaggi di programmazione; si tratta di programmi (o meglio di veri e propri ambienti di sviluppo) che permettono la creazione di altri programmi, con un preciso compito da svolgere.
Tutti i programmi sono costituiti da più o meno lunghe sequenze di istruzioni: un linguaggio di programmazione permette appunto la scrittura di queste sequenze di istruzioni, che vengono poi tradotte in linguaggio macchina da appositi programmi e successivamente eseguiti.
Gli ambienti di sviluppo presentano oggi facili interfacce grafiche, che consentono la semplice creazione di software utilizzando componenti visuali già pronti.
Ricordiamo tra gli altri C/C+ +, Java, Visual Basic, Delphi, Kylix, ecc.
Anche nel campo dei linguaggi di programmazione si assiste ad una frenetica corsa alla semplificazione, al «pronto da utilizzare»; alcuni grossi nomi sono i padroni del mercato, ma anche qui la filosofia dell’open source, del software gratuito sta iniziando ad affermarsi.
La produzione del software avviene attraverso le seguenti fasi:

  • analisi
  • programmazione
  • implementazione
  • testing
  • manutenzione

L’analisi è forse la fase più importante perché dalla sua completezza di informazioni sul problema dipendono quelle successive. Questa fase serve per studiare il problema che si vuole informatizzare in modo da individuare le specifiche delle varie attività da svolgere che, insieme alle risorse che si rendono necessarie, consentano di conseguire i risultati richiesti da chi utilizzerà o farà utilizzare il software. L’analisi, una volta terminata, viene comunicata ai programmatori che, seguendo le informazioni in essa contenute, svolgono la programmazione, cioè producono il software mediante un linguaggio di programmazione. Successivamente il software prodotto va implementato, cioè installato e messo in esercizio, sul computer dell’utente e testato per verificare il corretto funzionamento in tutti i casi che, nella situazione reale, possono verificarsi.
Infine è necessario svolgere quasi sempre un’attività di manutenzione: infatti la maggior parte dei programmi deve essere aggiornata periodicamente sia per migliorare una versione precedente o per correggere eventuali errori sia per soddisfare nuove esigenze richieste dall’utente.

  Click to listen highlighted text! Nel lontano 1945, il matematico americano di origine ungherese John Von Neumann definì l’architettura logica di un elaboratore.Questa architettura doveva essere adottata per migliorare le operazioni di input e output delle informazioni da fornire o ricevere da un elaboratore e la loro esecuzione; fino a quel momento, era spesso necessario l’intervento dell’uomo per «preparare» la macchina all’esecuzione di un nuovo programma.Von Neumann dimostrò che, adottando il suo modello, un elaboratore era in grado di eseguire qualsiasi calcolo (ovviamente risolvibile), senza la necessità di dover modificare fisicamente la macchina (cambiando dei collegamenti); era sufficiente modificare il programma che doveva essere eseguito dalla macchina stessa.Fare calcoli è come cucinare.Per cucinare, servono le seguenti cose:– gli ingredienti che devono essere processati;– gli strumenti per conservare gli ingredienti (es: il frigorifero);– gli strumenti per processare gli ingredienti (es: il forno);– le istruzioni da seguire: la ricetta. Esploriamo questa analogia.Per esplorare l’analogia,basta cambiare qualche termine:per calcolare, servono le seguenti cose:– i dati che devono essere processati;– gli strumenti per conservare i dati: la memoria del calcolatore;– gli strumenti per processare i dati: l’unità di calcolo (CPU);– le istruzioni da seguire: il programma.  Arriviamo al punto chiave. In cucina:Una ricetta è una cosa diversa da un ingrediente e quindi viene conservata in un posto diverso e trattata con strumenti diversi.In un processo di calcolo:Una istruzione è essa stessa un dato e quindi può essere conservata nello stesso posto di un dato e trattata con gli stessi strumenti.  Il modello universale di calcolatoreUn ciclo che si ripete all’infinito: – Leggo dalla memoria la prossima istruzione.– L’istruzione specifica dove (ma sempre in memoria) sono contenuti i dati da elaborare.– e quale operazione deve essere eseguita;– e dove deve essere “scritto” il risultato del calcolo. È altrettanto facile specificare una nuova operazione quanto modificare i dati da elaborare.       I dati che devono essere elaborati e il programma che contiene le istruzioni sono memorizzati in quella che viene chiamata memoria dell’elaboratore; l’unità di controllo (Control Unit) preleva dalla memoria le istruzioni e i dati ed esegue su questi le operazioni richieste dal programma (o meglio richiede all’unità aritmetico-logica di svolgere per lei queste operazioni).L’architettura di Von Neumann è ancora alla base del funzionamento dei moderni calcolatori.Vediamo allora quali sono i componenti di una macchina binaria, con un parallelismo tra i componenti ipotizzati da Von Neumann e quelli attualmente utilizzati: – l’unità aritmetica centrale, componente che si occupa dei calcoli e delle operazioni logiche (oggi questo componente viene definito ALU);– l’unità di controllo che gestisce un numero finito di istruzioni in memoria e di dati (oggi normalmente questo blocco viene definito Control Unit, CU);– la memoria che contiene dati e istruzioni (nei moderni calcolatori abbiamo registri e RAM: la memoria volatile – RAM è una delle innovazioni introdotte dal modello di Von Neumann);– le unità di ingresso e di uscita (oggi monitor, tastiera e memorie di massa, ecc.).      L’elaborazione avviene attraverso un insieme organizzato di risorse diverse: le risorse hardware e le risorse software.Con il termine hardware ci si riferisce alla struttura fisica di un elaboratore elettronico cioè a tutte le componenti fisiche (quelle che possiamo vedere) che si trovano al suo interno e quelle esterne a esso che lo collegano al mondo circostante. Fanno parte dell’hardware interno all’elaboratore l’unità centrale di elaborazione, la memoria centrale, il disco fisso ecc., mentre tastiera, mouse, video, stampante ecc. fanno parte dell’hardware esterno.    Con il termine software viene individuato tutto ciò che non è elemento fisico (non si vede, non ha peso) ma serve a far svolgere tutte le attività dell’hardware; si intendono cioè tutti i programmi che si utilizzano con l’elaboratore elettronico e consentono di farlo funzionare.L’hardware senza il software si riduce a essere un insieme di apparecchiature che non producono nessun lavoro.È il software che fa diventare un computer una macchina in grado di svolgere attività molto diverse tra loro quali scrivere una lettera, eseguire operazioni aritmetiche, disegnare, memorizzare dati. Tipologie di computerIn base alle prestazioni i computer sono classificati in: – Personal computer: di dimensioni ridotte e prezzi contenuti utilizzati nelle imprese, negli uffici pubblici, negli studi professionali e nelle famiglie.– Minicomputer: calcolatore in grado gestire la condivisione di dati e programmi fra più terminali. Questo tipo di sistema, utilizzato in aziende di una certa dimensione, oggi ha un valido concorrente nella rete di computer.– Mainframe: elaboratori usati ove sono necessari l’elaborazione e il trasferimento di elevate quantità di dati come, per esempio, in una banca. – Laptop: sono i computer portatili. Questi computer hanno un ingombro modesto e peso ridotto e quindi possono essere trasportati agevolmente. Le loro prestazioni sono simili a quelle dei personal computer, ma il loro prezzo è notevolmente superiore a parità di prestazioni.– Palmare o PalmTop: È un Personal Computer di ridotte dimensioni, facilmente trasportabile, con proprio sistema operativo e software applicativi; ha scarse risorse hardware, ma sufficienti per utilizzarlo in alternativa ad un desktop e un notebook quando si è lontani dal posto di lavoro e i compiti da svolgere sono semplici; permette facile interfacciamento con altri Personal Computer per il trasferimento dati e la navigazione su Internet. – Un computer che disponga dell’hardware e del software necessario per la connessione ad una rete si chiama Network Computer.– Così come Workstation è un Personal Computer di elevate potenzialità simile a un desktop, ma con componenti hardware più performanti; viene di solito usato per applicativi dove sono richieste elevate capacità di calcolo, ad esempio in ambito grafico, audio e video. Possiamo ancora classificare i computer sulla base del loro utilizzo; avremo allora:– Computer General purpose: adatti a risolvere problemi generici in diversi settori.– Computer Special purpose: progettati per scopi specifici.   Un terminale è un dispositivo composto essenzialmente da monitor e tastiera.I terminali che possiedono CPU sono in grado di svolgere almeno qualche operazione di elaborazione in modo autonomo e sono detti terminali intelligenti, quelli che non possiedono CPU non sono in grado di compiere alcuna elaborazione autonomamente e sono detti terminali stupidi.In genere i terminali vengono collegati a un minicomputer o a un mainframe condiviso da più utenti. Componenti di base di un personal computerUn personal computer è una macchina in grado di ricevere informazioni, di elaborarle seguendo le istruzioni di un programma e di fornire i risultati.    Le elaborazioni che un computer deve saper svolgere sono: eseguire problemi di natura diversa (scrivere un testo, stampare una fattura, realizzare un grafico); eseguire operazioni di calcolo e operazioni logiche (per esempio, confrontare due numeri, due date); elaborare sia dati numerici sia dati non numerici (i dati non numerici sono quelli che non hanno significato numerico, quali nomi, descrizioni, codici); eseguire una successione di operazioni codificate mediante un linguaggio di programmazione; memorizzare le informazioni.  Per poter eseguire queste operazioni un computer deve essere costituito essenzialmente da: unità centrale di elaborazione: si può considerare come il cuore del computer, cioè quell’unità che governa l’elaborazione; memoria centrale: è il supporto sul quale l’unità centrale legge e scrive i dati e le istruzioni dei programmi; memorie di massa: servono per conservare in modo permanente programmi e dati elementari. Si distinguono in:– disco fisso (hard disk): supporto magnetico (solitamente non estraibile) di grandi capacità;– dischetto (floppy disk): disco estraibile di piccole dimensioni;– zip disk: disco estraibile di medie capacità;– CD-ROM: disco estraibile di grandi capacità; dispositivi di input: servono per introdurre dati nel computer, per esempio, dalla tastiera o da un archivio contenuto in una memoria di massa; dispositivi di output: servono per comunicare i dati elaborati dal computer. I risultati dell’elaborazione possono essere inviati allo schermo, alla stampante oppure memorizzati in un archivio contenuto in una memoria di massa. La scheda madre serve per collegare elettronicamente i vari componenti di un computer.  Essa contiene un supporto dove va inserita l’unità centrale di elaborazione e i supporti dove vanno inseriti i moduli di memoria RAM.Gli altri dispositivi sono collegati alla scheda madre tramite connettori, come, per esempio, l’hard disk, il floppy disk, il CD-ROM, oppure delle sedi, chiamate slot, dove vanno inserite altre schede come, per esempio, la scheda grafica, la scheda sonora. Microprocessore. È ovviamente il componente più importante presente sulla scheda madre; viene inserito in uno zoccolo ZIF (Zero Insertion Force) per facilitarne la rimozione.Ogni famiglia di microprocessori è dotata di un certo numero di piedini (fino a 478).I microprocessori più recenti, oltre alle alette di raffreddamento, hanno una ventola per facilitare la dissipazione del calore.Al microprocessore (noto anche con il nome di CPU) sono demandate tutte le funzioni di controllo ed esecuzione delle istruzioni che costituiscono i programmi da eseguire. È ovvio quindi che le sue caratteristiche influenzano pesantemente le prestazioni di un PC (anche se in realtà queste ultime dipendono anche dal software utilizzato - Sistema Operativo, BIOS, programmi – e dagli altri componenti hardware presenti).La maggior parte dei PC utilizza microprocessori in grado di eseguire programmi le cui istruzioni sono compatibili con i microprocessori Intel della serie 80x86; esistono inoltre i microprocessori RISC (Reducted Instruction Set Computer).   La frequenza del clock costituisce un’importante indicazione sulle prestazioni della CPU che risulta tanto più efficace quanto più è elevata la frequenza del clock.Si tenga presente che per ogni CPU esiste un limite di frequenza che non deve essere superata per non incorrere in problemi tecnici dovuti al surriscaldamento o a fenomeni elettromagnetici.Alcune operazioni vengono eseguite in un ciclo di clock, altre ne richiedono più di uno, ne segue che il numero di operazioni è inferiore al numero di oscillazioni dell’orologio.La velocità della CPU si misura in MIPS (Millions Instructions Per Second), milioni di istruzioni per secondo. Controller o chip set. È un insieme di chip (normalmente due, il NorthBridge e il SouthBridge) di supporto al microprocessore che consentono l’interfaccia del microprocessore con gli altri circuiti delle diverse schede, con le memorie, con l’hard disk. Un esempio per tutti: Intel 850.Memoria ROM. Memoria di sola lettura, normalmente di tipo EEPROM (o Flash Memory), che contiene il BIOS (Basic Input Output System), cioè le istruzioni eseguite all’accensione del PC che precedono il caricamento del sistema operativo e permettono al microprocessore di riconoscere, inizializzare e diagnosticare i dispositivi hardware presenti. Memoria Cache. Si trova all’interno del microprocessore (cache di primo livello o L1) come banchi di memoria alloggiati in appositi zoccoli (cache di secondo livello o L2).Attualmente la dimensione della memoria cache arriva a 512 kByte e si tende a integrarla all’interno del microprocessore. Ha tempi di accesso nell’ordine di 10 miliardesimi di secondo. Memoria principale o di sistema. Costituisce la memoria fisica che il microprocessore è in grado di vedere; è costituita da moduli DIMM, SIMM, DDR o RAMBUS alloggiati in appositi slot (zoccoli di espansione di memoria).Il sistema riconosce automaticamente all’avvio la quantità di memoria presente.I moduli DIMM sono costituiti da circuiti stampati con diversi integrati di memoria.Un modulo SIMM può avere una capacità da 8 a 32 M Byte, mentre i moduli DIMM arrivano a capacità superiori (per esempio 512 MByte).I moduli DDR e le memorie RAM-BUS, anch’essi di grande capacità, lavorano con prestazioni superiori rispetto alle memorie DIMM.Ogni scheda madre può essere equipaggiata con diversi moduli di memoria a seconda delle esigenze. Attualmente si richiedono almeno 4 GByte di RAM.Un particolare circuito del chipset, il controller della memoria, permette di interfacciare il microprocessore ai circuiti di memoria (infatti lavorano a velocità diverse). Un altro circuito, il controller DMA (Direct Memory Access) consente l’accesso diretto alla memoria: quando si rende necessario trasferire pacchetti o blocchi contigui di dati tra diverse zone della memoria o tra dispositivi di I/O e memoria o viceversa, non viene coinvolto il microprocessore, che continua ad eseguire altri compiti, senza occuparsi di questo tipo di operazioni.   Memoria tampone. È un circuito che memorizza anche a PC spento informazioni relative alla configurazione hardware corrente del PC stesso, in modo che alla successiva accensione il microprocessore possa accedere velocemente a queste informazioni per rilevare nuovi componenti.PIC: controllore programmabile delle interruzioni. Il PIC (Programmable Interrupt Controller) è un circuito che gestisce gli Interrupt: quando un dispositivo (tastiera, timer, ecc.) necessita di un intervento del microprocessore, questo deve interrompere il normale corso delle sue operazioni per gestire appunto queste interruzioni. Il PIC gestisce gli Interrupt, assegnando diversi livelli di priorità: ogni periferica ha un ingresso dedicato e un certo livello di priorità; gli ingressi sono chiamati IRQn: la porta parallela costituisce IRQ7 con priorità 0 (bassa), il timer – IRQ0, ha priorità 15, la più alta.   Orologio di sistema. Circuito che fornisce data e ora; ha una batteria che ne garantisce il funzionamento anche a PC spento.Slot ISA. Sono connettori (ormai praticamente scomparsi) per schede di espansione conformi allo standard ISA: la comunicazione avviene tramite trasferimento in memoria a 8 o 16 bit, con velocità massima di trasferimento di 8 MHz; lo slot è diviso in due zone, una con 62 contatti per la comunicazione a 8 bit, l’altra con 18 contatti per la comunicazione a 16 bit. I segnali elettrici sono suddivisi in segnali dedicati all’indirizzamento, alla gestione degli Interrupt, al controllo DMA e all’alimentazione.Slot PCI. Sono connettori più piccoli degli ISA, consentono l’alloggiamento di dispositivi conformi allo standard PCI, lavorano con trasferimento fino a 32 bit e sono sincroni (con un segnale di clock a 33 MHz) e consentono velocità massima di trasferimento di 133 MByte/s.Slot AGP. Ha un numero maggiore di contatti rispetto al PCI e viene utilizzato per alloggiare singole schede di accelerazione grafica. Lavora con gruppi di 32 bit a 66 MHz, consente un trasferimento massimo fino a 532 MByte/s (necessita di opportuno controller).Slot PCI Express (Peripheral Component Interconnect Express), ufficialmente abbreviato in PCIe, è uno standard di interfaccia despansione a bus seriale per computer, progettato per sostituire i vecchi standard PCI e AGP.È basato su un trasferimento dei dati seriale, a differenza di quello parallelo del PCI, che semplifica il layout del circuito stampato delle schede madri ed è costituito da una serie di canali. Ciò consente una notevole modularità, in quanto possono essere aggregati più canali per aumentare la banda passante disponibile o per supportare particolari configurazioni, come ad esempio l’utilizzo di due o più schede video; inoltre la larghezza di banda di ciascun canale è indipendente da quella degli altri.PCI Express è stato progettato per sostenere il sempre maggior fabbisogno energetico delle schede video di ultima generazione. Infatti, a differenza dello slot AGP, in grado di erogare un massimo di 50 Watt, la revisione 1.x di PCI-ex supporta carichi fino a 75 W, permettendo così di eliminare il connettore MOLEX dalle schede di fascia media e medio-bassa anche se è rimasto per tutte le altre.Queste porte prodotte dalla Intel e che hanno debuttato nel 2004, presentano un’ampiezza di banda del Bus che raggiunge i 15,754 GB/s. Connettore per la tastiera. Consente la comunicazione seriale con la tastiera. Utilizza un apposito controller.Controller tastiera. È il circuito che esegue un programma per identificare i tasti premuti sulla tastiera.Connettori IEEE 1394 Firewire. Consentono collegamenti seriali ad alta velocità di dispositivi esterni; è uno standard recente.Connettori per comandi e segnalazioni. Sono i connettori per i led di indicazione, per l’interruttore di accensione e il pulsante di reset presenti sul pannello frontale del case.Connettori IDE primario e secondario. Consentono il collegamento con dispositivi di memoria di massa con standard ATA o ATAPI (hard disk o CD Rom IDE). Hanno 40/80 connessioni elettriche; consentono ciascuno il collegamento di 2 dispositivi (uno master e l’altro slave).Se è presente un controller apposito che rispetta lo standard UltraDMA/33 si può arrivare ad una velocità di trasferimento fino a 66 MByte/s.Un connettore a parte è riservato alla connessione con il lettore floppy.Il controllo dei dispositivi connessi a questi connettori è demandato a circuiti interni al chipset piuttosto che a controller dedicati.Connettori SCSI. Sono connettori a 50 piedini che consentono il collegamento di dispositivi di memoria di massa conformi a questo stan­dard. Si può arrivare a collegare fino a 7 di­spositivi grazie ad un apposito controller (più veloce rispetto al controller IDE).  Porte seriali e loro connettori. Le schede madri di recente costruzione incorporano i connettori per le porte seriali con opportuni controller per le funzioni di comunicazione seriali (standard UART: Universal Asinchronous Receiver Transmitter), che in pratica effettuano conversioni parallelo-seriale e viceversa; i connettori si interfacciano con l’esterno con prese DIN9 o DIN25; è possibile trovare delle schede con porte seriali sugli slot ISA.Le porte seriali sono identificate con le sigle COM 1, COM2, ecc. e permettono il trasferimento di dati a una velocità massima di 115,2 kbaud; lo standard utilizzato per la comunicazione seriale è il RS232.Porte parallele e loro connettori. Attraverso questa porta, la trasmissione dati avviene in forma parallela, senza loro conversone in forma seriale; viene utilizzato un circuito interno al chipset per la supervisione del trasferimento dati. Consentono il collegamento con dispositivi quali scanner e stampanti mediante porte DIN25 femmine; le porte parallele sono identificate con le sigle LPT1, LPT2, ecc.Porta seriale USB. Sui connettori USB sono presenti, oltre ai segnali per la comunicazione seriale USB, segnali per fornire alimentazione alle periferiche collegate (casse, modem, mouse, ecc.). Consente di collegare dispositivi con interfaccia USB; su un unico cavo possono essere collegate più periferiche. Lo standard USB 1.1 consente velocità fino a 12 Mbit/s; lo standard USB 2.0 velocità 40 volte superiori allo standard precedente, cioè fino a 480 Mbit/s; lo standard USB 3.1 consente velocità fino a 10Gbit/s.Connettore porta giochi. Consente il collegamento con il joystick.Connettore alimentatore. Consente di collegare l’alimentazione alla scheda madre.Scheda video - scheda audio integrate. Contengono tutti i chip che costituiscono la scheda video o la scheda audio.Schede di espansione. Le schede di espansione sono circuiti stampati con un certo numero di circuiti integrati; su un Iato presentano un connettore che dovrà essere inserito in uno degli slot della mother board e su un altro lato possono avere delle prese per la connessione con dispositivi esterni. In generale le schede di espansione svolgono funzioni non implementate dalla scheda madre e permettono di estendere le potenzialità della stessa.Tra le schede che implementano le funzioni standard abbiamo: la scheda video, per l’interfacciamento tra mother board e monitor; può avere integrato un acceleratore grafico; oggi il sistema video più diffuso è il SuperVGA: lo schermo viene diviso in 1024 colonne per 768 righe per un totale di circa 800.000 pixel; inoltre un monitor può essere interlacciato e non interfacciato (nel primo caso per completare un’immagine bisogna fare due passaggi, mentre nel secondo basta una volta sola, evitando fenomeni di sfarfallio). Infine possiamo utilizzare un numero variabile di colori: a seconda dei bit usati per definire il colore di ogni pixel, potremo utilizzare dai 16 colori ai 16,8 milioni di colori; le schede per le porte seriali e parallele, che permettono connessioni con dispositivi esterni (stampanti, scanner, modem, ecc.) Tra le schede non standard abbiamo, ad esempio, schede per l’accelerazione grafica, schede per l’interfacciamento verso dispositivi industriali (motori, PLC...), schede per l’acquisizione video, modem interni. Abbiamo ancora schede con funzionalità particolari: – schede per l’elaborazione di segnali;– schede per l’acquisizione dati;– schede di rete, per la connessione del PC ad una rete di computer;– e molte altre. Le schede si possono classificare quindi a seconda della loro funzionalità, oppure possono essere di input, di output o di input/output; inoltre possiamo avere schede con connettore ISA, PCI o AGP.Le schede PCI permettono trasferimento a velocità maggiori ma in generale hanno costi superiori rispetto alle schede ISA. Hard diskL’hard disk o disco fisso, è un dispositivo di memoria di massa. Viene utilizzato per memorizzare in modo permanente le informazioni (dati e programmi), che rimangono memorizzate anche dopo lo spegnimento del PC. È costituito da più dischi di alluminio ricoperti da materiali ferromagnetico, da un certo numero di testine per la lettura e la scrittura delle informazioni e da un dispositivo di controllo (controller); i dischi ruotano attorno al loro asse e le testine, traslando radialmente, si posizionano su una particolare «zona» della superficie magnetizzabile.Gli hard disk si differenziano per la loro capacità di memorizzazione, espressa in multipli di Byte (oggi si hanno comunemente HD da 120 GByte e oltre), dalla velocità di accesso ai dati (in lettura e in scrittura) e dalla tipologia del connettore, che collega l’hard disk alla mother board (IDE o SCSI).   Parametri di un disco rigidoCapacità: quantità totale di dati memorizzabile (misurabile in GigsByte o in TeraByte).Data rate: numero di byte trasferibili nell’unità di tempo (valori tipici sono nell’ordine dei 5-40 MB/s).Tempo di accesso: tempo che intercorre fra la richiesta di un dato e la fornitura del primo byte (valori tipici vanno da 10 a 20 ms).   Struttura di un disco rigidoUno o più dischi sono connessi fra loro da un perno rotante (mosso da un motore ad alta precisione – passo passo).Ogni disco è registrabile su entrambe le facce. Per ogni superficie vi è una testina in grado di leggere/scrivere su di essa.Tutte le testine sono connesse fra loro da un braccio mobile.   Le superfici dei dischiOgni superficie registrabile di un disco rigido è suddivisa in tracce, ovvero, in circonferenze concentriche: Le tracceOgni traccia di una superficie registrabile di un disco rigido è ulteriormente suddivisa in porzioni chiamate settori.Un settore (tipicamente della dimensione in grado di contenere 256-512 byte) è la porzione di superficie più piccola che una testina può leggere/scrivere con un’unica operazione.La formattazione di un disco segna fisicamente l’inizio e la fine di ogni settore in modo che le testine li possano localizzare.Cilindri di un disco rigidoLe tracce corrispondenti (ovvero, aventi la stessa distanza dal perno) sulle diverse superfici registrabili di un disco rigido costituiscono un cilindro.Quindi per la specifica di un particolare settore, abbiamo bisogno di tre parametri:cilindro su cui è posizionato il settore,superficie del cilindro su cui è posizionato il settore,settore all’interno della traccia. Lettura/ scrittura su disco rigidoOgni operazione di lettura/scrittura su disco rigido è composta dai seguenti passi:spostamento delle testine sul cilindro corrispondente (il tempo impiegato è noto come seek time),attivazione della testina della superficie corretta (quella su cui si trova il settore),rotazione del disco finché il settore corretto non si trovi sotto la testina (il tempo impiegato è noto come latency time),trasferimento dei dati dal disco (lettura) oppure verso il disco (scrittura).Tempo di accesso = seek time + latency time. Lettore CD RomÈ un dispositivo presente ormai in tutti i PC; permette la lettura dei CD Rom e dei normali CD audio. I CD hanno una capacità di memorizzazione elevata, molto maggiore di un semplice floppy disk; vista la dimensione dei programmi che vengono oggi comunemente utilizzati, i CD sono diventati il supporto standard per il trasporto delle informazioni. MasterizzatoriDispositivi che permettono la scrittura e/o la riscrittura di informazioni su CD. Si dividono in masterizzatori che permettono la semplice scrittura di informazioni e in masterizzatori che permettono anche la riscrittura delle stesse (utilizzando particolari supporti). Permettono di memorizzare fino a 700 MB di informazioni su un singolo disco.  Lettori DVD RomSono i lettori dei recenti dischi DVD, utilizzati per memorizzare grandi quantità di dati come ad esempio interi film. Masterizzatori DVDDispositivi che permettono la scrittura di dischi DVD, che hanno una capacità di memorizzazione che può arrivare ad 8 GB su singolo supporto.  Il CD è un disco dello spessore di 1,2 mm composto dai seguenti strati: uno strato di policarbonato trasparente su cui, lungo una spirale che parte dal centro del disco, vi è una successione di zone piatte e di rientranze (bumps) incise con un procedimento di stampatura; un foglio sottile di alluminio che riflette la luce, uno strato di materiale acrilico di protezione, l’etichetta.     CD: principio di funzionamentoUn raggio laser viene proiettato verso lo strato di policarbonato (dal lato opposto all’etichetta) seguendo la spirale.Viene misurata la quantità di luce riflessa che varia a seconda se viene colpita una rientranza (interpretata come 0) oppure una zona piatta (interpretata come 1).Spesso, per ragioni di affidabilità, un 1 viene codificato come il passaggio da una rientranza ad una zona piatta e lo 0 come la mancanza di tale passaggio.     CD-ROMI Compact Disk realizzati con il procedimento di stampatura descritto vengono detti CD-ROM (Compact Disk – Read Only Memory).Infatti essi, una volta usciti dalla fabbrica, non sono più modificabili e possono soltanto essere solamente letti. CD-RI CD-R (Compact Disk – Recordable) sono dei CD scrivibili tramite i cosiddetti “masterizzatori”, che sfruttano un procedimento chimico.In un CD-R fra lo strato di alluminio e il policarbonato vi è uno strato composto da un materiale fotosensibile (dye).Inizialmente lo strato di materiale fotosensibile è trasparente e quindi la luce del laser lo attraversa e viene riflessa dallo strato di alluminio.Se un laser di una certa intensità e frequenza colpisce lo strato fotosensibile, la porzione colpita si annerisce permanentemente, divenendo opaca (burned) e non lasciando più passare la luce. In questo modo le zone annerite codificano degli 0 e le zone rimaste trasparenti degli 1.I masterizzatori hanno due laser:uno di bassa potenza per leggere (senza alterare lo strato fotosensibile),uno di maggiore potenza per “bruciare” lo strato fotosensibile.Il procedimento di masterizzazione è irreversibile: una volta annerita una zona non può tornare allo stato trasparente iniziale.     CD-RWUn CD-RW (Compact Disk – ReWritable) consente di usare uno stesso disco per più di una masterizzazione.Al posto dello strato di materiale fotosensibile dei CD-R, vi è uno strato di un composto a base di argento, antimonio, tellurio e indio, noto come PCC (Phase Change Compound).Il PCC ha la caratteristica di essere trasparente allo stato solido e opaco allo stato liquido.Per cristallizzare (rendere solida) o liquefare una zona dello strato di PCC, è sufficiente portarla alla temperatura di 200º C o 600º C rispettivamente per un certo tempo.Nei masterizzatori ciò avviene tramite il laser.Una volta cristallizzato o liquefatto, il PCC mantiene lo stato anche se viene meno la fonte di calore.Dato che per cambiare lo stato di una zona dello strato di PCC ci vuole un certo tempo, il procedimento di scrittura di un CD-RW è più lento rispetto a quello di un normale CD-R.  DVD-ROMUn DVD (Digital Versatile Disk) è costruito impiegando gli stessi materiali dei CD e seguendo lo stesso principio: l’informazione viene codificata mediante un alternarsi di rientranze e zone piatte.Tuttavia la spirale in un DVD è più stretta (740 nm invece di 1.600 nm) ed è possibile avere più strati di policarbonato, separati da strati metallici riflettenti o parzialmente riflettenti.Analogamente a CD-ROM, DVD-ROM significa DVD - Read Only Memory. Tipologie di DVD-ROMA seconda del numero di strati di policarbonato presenti si hanno i seguenti tipi di DVD-ROM: single-sided, single layer: analogo ad un CD-ROM; tuttavia la spirale più stretta consente di memorizzare fino a 4,7 GB invece di 700 MB; single-sided, double layer: 2 strati di policarbonato separati da uno strato di materiale dorato semitrasparente: sono misurabili 4 diverse intensità di luce riflessa (2 per le rientranze e zone piatte dello strato interno e 2 per le rientranze e zone piatte dello strato esterno); consente di memorizzare fino a 8,5 GB; double-sided, double layer: 4 strati di policarbonato (2 per lato); questo tipo di DVD-ROM non ha quindi etichetta e consente di memorizzare fino a 17 GB.   Scheda audioE una scheda, normalmente PCI, che converte segnali audio in forma digitale e byte in segnali audio.Permette di acquisire dei segnali (ha dunque delle prese di input per microfono o audio mono/stereo) e la loro riproduzione (uscite per cuffie o uscite audio amplificate per altoparlanti).Le schede audio, all’atto dell’acquisizione di un segnale, ne effettuano un campionamento ad una particolare frequenza che può essere impostata dall’utilizzatore; inoltre ciascun campione può avere una certa risoluzione. Hanno di solito un generatore di suoni MIDI che permette di generare brani musicali in modo autonomo.Le schede madri recenti hanno normalmente la scheda audio integrata. Scheda di acquisizione videoPermettono l’acquisizione di immagini, trasformando segnali analogici in segnali digitali.Abbiamo schede PAL e NTSC, utilizzate per acquisire segnali generati da prese di videoregistratori o da videocamere amatoriali, schede per digitalizzare immagini da videocamere professionali e schede per il collegamento di telecamere analogiche o digitali su bus ISA o PCMCIA o porta parallela (ad esempio webcam per videoconferenze su Internet). Schede di comunicazioneSono utilizzate per il collegamento tra di loro di 2 o più PC, in modo che possano scambiarsi informazioni. I PC possono essere connessi utilizzando diversi supporti fisici (cavi coassiali, doppini telefonici, trasmissioni telefoniche, ecc.). La scheda di comunicazione permette il collegamento del PC al mezzo trasmissivo: abbiamo quindi schede di rete o schede modem (meglio note come modem interni).Il compito della scheda di comunicazione è quello di gestire correttamente lo scambio dati tra le unità connesse (sincronizzazione, correzione degli errori); la comunicazione normalmente è di tipo seriale. Connettori «esterni»Sul retro del case abbiamo: – presa per la tastiera (di tipo PS/2 o altri);– presa per il mouse;– presa per la porta parallela (stampante, ecc.);– presa di alimentazione. Dispositivi esterni TastieraDispositivo di input, presente in ogni PC, permette di interagire con la macchina mediante la pressione di tasti o di combinazioni di tasti.Abbiamo tasti con funzioni di tipo «alfanumerico», che permettono di inviare un carattere al sistema e tasti con funzioni particolari di controllo (tasti Invio, Esc, Ctrl, Alt, ecc.).La tastiera di solito è suddivisa in diverse sezioni: – tastierino numerico, a destra;– tasti per lo spostamento del cursore;– tasti alfanumerici e speciali;– tasti funzione. La tastiera standard ha 102 tasti, che possono assumere funzioni differenti a seconda della nazione in cui la stiamo utilizzando. MouseIl mouse è un dispositivo di puntamento standard, che permette una facile interazione con le risorse del computer: è infatti sufficiente spostarlo su un tappetino detto mouse pad, per muovere corrispondentemente un cursore sul monitor e premere uno dei tasti per impartire un comando al sistema. I mouse sono dispositivi seriali; possono avere 2 o 3 tasti (sinistro, centrale e destro), possono avere una rotella posta superiormente e altri tasti laterali, possono avere un meccanismo di movimento costituito da una sferetta che tocca dei microinterruttori e sposta conseguentemente il cursore oppure possono essere ottici, per cui la movimentazione del cursore avviene grazie alla posizione di alcuni sensori ottici, possono essere cordless e quindi non avere cavi di collegamento ma trasmettere informazioni a radiofrequenza.I dispositivi di puntamento dei notebook sono costituiti dal trackball o dal touchpad; il trackball è una sfera posizionata immediatamente sotto alla tastiera che viene fatta ruotare e sposta il cursore e il touchpad è una zona rettangolare sensibile al tatto sulla quale lo scorrimento di un dito o di una punta di matita provoca lo spostamento del cursore sul video. Abbiamo poi due tasti che hanno le stesse funzioni dei pulsanti di un mouse tradizionale.    Altri dispositivi di input sono: lo scanner, consente di acquisire immagini o di leggere testi scritti. Mediante software è possibile il riconoscimento ottico dei caratteri tipografici e trasformare, per esempio, una pagina di una rivista, in documento testo; la penna ottica, serve per leggere il codice a barre formato da segmenti verticali e si usa, per esempio, nei centri commerciali per leggere i dati riguardanti i prodotti: descrizione del prodotto, prezzo, Iva ecc. il joystick, consente di controllare oggetti in movimento sul video e viene usato nei videogiochi.   Dispositivi di outputI dispositivi di output sono tutti quei dispositivi che servono per comunicare all’esterno i risultati dell’elaborazione.Il video è il dispositivo standard di uscita per la visualizzazione delle informazioni. Abbiamo monitor a CRT, cioè con tubo a raggi catodici e monitor LCD, cioè a cristalli liquidi. Il segnale elettrico fornito dalla scheda video viene convertito in una immagine; il funzionamento alla base dei monitor CRT è simile a quello dei normali televisori, sono ingombranti e di basso costo. I monitor LCD invece hanno dimensioni ridotte (spessore) ma costo elevato; sono i monitor utilizzati dai PC notebook.Vediamo quali sono i parametri caratteristici di un monitor: dimensione dello schermo, espressa in pollici; è la misura della diagonale dello schermo (15, 17, 19, e superiori); risoluzioni supportate, cioè dimensioni orizzontale e verticale della schermata visualizzata espresse in pixel. Il pixel (picture element) è la minima unità indipendente dell’immagine riprodotta. Esempi di risoluzione (orizzontale x verticale): 640 x 480, 1024 x 768, ecc. Ad esempio, a parità di dimensione fisica di un monitor, una risoluzione di 1024 x 768 permette una migliore definizione dell’immagine rispetto ad una risoluzione inferiore, ad esempio 800 x 600; frequenza massima di scansione orizzontale, espressa in kHz: è la velocità con cui vengono rinfrescati ed aggiornati i colori dei pixel di una riga; frequenza massima di refresh verticale: indica il numero di volte che l’intera immagine viene rinfrescata in un secondo. Ad una frequenza superiore ai 60 Hz (per una risoluzione di 640 x 480), l’occhio umano viene ingannato, per cui vede un’immagine senza farfallamento. Normalmente questa frequenza è di almeno 75 Hz. Le schede video che pilotano il monitor devono comunque supportare le caratteristiche descritte; la distanza tra due pixel (Dot Pitch) non dovrebbe superare i 0,28 mm.   La stampante è, dopo il video, il dispositivo di output più usato e consente di trasferire testi, immagini, grafici su un foglio di carta. Esistono molti tipi di stampanti che si distinguono una dall’altra per la tecnica con la quale riproducono i caratteri e per la velocità di stampa. Si possono distinguere principalmente in: stampanti a impatto: il carattere viene stampato mediante la pressione di aghi su un nastro inchiostrato interposto fra questi e la carta in modo simile alla macchina per scrivere.Queste stampanti possono avere da 9 a 24 aghi disposti all’interno della testina di stampa e ognuno di essi, quando premuto contro il nastro inchiostrato, disegna un punto sul foglio sottostante. Un carattere si ottiene dalla pressione degli aghi che, tracciando dei punti vicini uno all’altro, lo disegnano e quindi la qualità della definizione dipende dal numero dei punti. Le stampanti ad aghi possono stampare su fogli singoli o su moduli continui; un modulo continuo è formato dall’unione di più fogli perforati lateralmente in modo da consentire il trascinamento all’interno della stampante. Queste stampanti sono piuttosto lente e rumorose, ma diventano necessarie quando è richiesta la stampa su moduli continui; stampanti non a impatto: l’immagine viene stampata tramite impulsi di tipo elettrico, ottico o magnetico e quindi con un tratto continuo, ottenendo definizioni buone o molto buone e comunque superiori rispetto a una stampante ad aghi. I tipi più diffusi sono: a getto di inchiostro: così chiamate perché la stampa avviene attraverso un getto di piccolissime gocce di inchiostro proiettate sulla carta. Queste stampanti sono a colori, silenziose e abbastanza veloci. laser: mediante un raggio laser viene creata un’immagine della pagina da stampare e successivamente con un inchiostro in polvere (toner) viene stampata la pagina con un procedimento simile a quello usato con le fotocopiatrici. Queste stampanti sono silenziose, la loro definizione è molto buona, sono molto veloci e molto costose.Normalmente una stampante laser è utilizzata in una rete dove viene condivisa tra più computer. Le stampanti moderne possiedono una loro memoria interna che consente di memorizzare, a seconda della loro dimensione, un certo numero di pagine da stampare e disimpegnare così l’unità centrale di elaborazione. Il plotter è una stampante molto grande che consente la stampa su fogli di grandi dimensioni, viene utilizzato nel settore della grafica per realizzare cartelloni pubblicitari e grafici.  I parametri che caratterizzano una stampante sono: massimo formato della carta (A3, A4); risoluzione (misurata in DPI - Dots Per Inch, numero di punti stampabili per pollice lineare); velocità di stampa (pagine/minuto o caratteri/secondo). SoftwareIl termine software indica l’insieme dei programmi per computer, vale a dire le sequenze di istruzioni che guidano i circuiti di un elaboratore a compiere il lavoro cui è destinato. A seconda delle funzioni e delle applicazioni, si possono distinguere diverse categorie di software. Le tre categorie fondamentali sono: i sistemi operativi; i programmi applicativi, destinati a gestire le svariate applicazioni per cui esso può essere impiegato; i linguaggi di programmazione o ambienti di sviluppo.   Sistemi operativiIl sistema operativo è il software di base (quindi fondamentale, non accessorio per il funzionamento della macchina) che si pone tra l’utente e la macchina, permettendo al primo di accedere alle risorse della seconda e di interagire con essa.Il sistema operativo è il software che viene caricato ed eseguito dalla macchina nella sua fase di accensione; individua le risorse hardware presenti e le predispone per un utilizzo possibilmente facile ed intuitivo da parte dell’utente. Inoltre fornisce un set di istruzioni per accedere alle risorse del PC e per manipolarle vicino al linguaggio umano e si occupa di tradurre queste istruzioni nel linguaggio macchina e viceversa, cioè rende facilmente comprensibili le risposte del sistema.Le principali funzioni di un sistema operativo sono: la gestione dell’unità centrale la gestione della distribuzione della memoria centrale fra più programmi la gestione delle unità di input/output la gestione delle operazioni di lettura/scrittura dei dati sulle memorie di massa Dagli anni ’80 i sistemi operativi si sono rapidamente evoluti e migliorati; ricordiamo alcune tappe fondamentali: per i PC IBM compatibili abbiamo inizialmente il sistema operativo MS-DOS, puramente testuale, per passare poi a Windows 3.1, Windows 95, Windows 98, Windows NT, Windows ME, Windows 2000, Windows XP, Windows 10 e a tutte le differenti distribuzioni di Linux.È bene chiarire che, anche se su un computer possono essere presenti più sistemi operativi, uno solo può essere attivo, cioè non è possi­bile usarne due contemporaneamente perché la gestione diversa delle risorse provocherebbe dei conflitti. I primi sistemi operativi di personal computer erano in grado di eseguire un solo programma utente alla volta ed erano di tipo testuale come, per esempio, MS-DOS.Si tenga presente che l’unicità è riferibile al programma utente.Infatti, nella memoria centrale, sono presenti il programma utente e i programmi del sistema operativo che consentono la sua esecuzione.Un sistema operativo è a interfaccia testuale quando l’utente deve digitare tramite la tastiera brevi nomi mnemonici, chiamati comandi, per attivare i programmi.La necessità di dover conoscere la sintassi dei comandi ha ostacolato la diffusione di massa dell’utilizzo di personal computer.Con lo scopo di rendere l’uso del calcolatore sempre più facile e, quindi, alla portata di un maggior numero di persone, sono stati realizzati sistemi operativi a interfaccia grafica, detta GUI (Graphic User Interface) che consentono all’utente di attivare i programmi e utilizzare le risorse in modo intuitivo mediante comandi predisposti in menu o in finestre o mediante icone.I sistemi operativi per personal computer più recenti come, per esempio, Windows sono multitasking.Questa caratteristica consente al sistema operativo di gestire più programmi utente contemporaneamente, offrendo così la possibilità all’utente di interrompere un lavoro, passare a un altro e da questo ritornare al precedente per continuare il lavoro interrotto e così via.Si tenga presente che anche in questo caso l’unità centrale esegue un solo programma utente alla volta.  Software applicativiI software applicativi sono i software più diffusi e vengono solitamente suddivisi in diverse categorie, a seconda dell’utenza a cui sono rivolti o della funzione che svolgono.Abbiamo software applicativi professionali, dedicati ad aziende e professionisti, in grado di gestire un determinato compito (ad esempio software di gestione di impianti industriali, di fatturazione, ecc.), software gestionali, software per l’office automation (che permettono l’automazione di tutte le funzioni svolte in un ufficio, dalla creazione di documenti, all’archiviazione dei dati, alla gestione dei fax), software per la grafica, per la manipolazione di audio e video.Abbiamo poi software dedicati al mercato domestico: troviamo in questa categoria enciclopedie e software multimediali, pacchetti per la trattazione dei testi e per la gestione del budget domestico, giochi, prodotti per la grafica.Infine abbiamo software applicativi generici, sostanzialmente d’appoggio alla normale manutenzione del PC, software per la gestione delle stampanti, per la manutenzione dei dischi, ecc.  Linguaggi di programmazioneLa terza categoria di software è costituita dai linguaggi di programmazione; si tratta di programmi (o meglio di veri e propri ambienti di sviluppo) che permettono la creazione di altri programmi, con un preciso compito da svolgere.Tutti i programmi sono costituiti da più o meno lunghe sequenze di istruzioni: un linguaggio di programmazione permette appunto la scrittura di queste sequenze di istruzioni, che vengono poi tradotte in linguaggio macchina da appositi programmi e successivamente eseguiti.Gli ambienti di sviluppo presentano oggi facili interfacce grafiche, che consentono la semplice creazione di software utilizzando componenti visuali già pronti.Ricordiamo tra gli altri C/C+ +, Java, Visual Basic, Delphi, Kylix, ecc.Anche nel campo dei linguaggi di programmazione si assiste ad una frenetica corsa alla semplificazione, al «pronto da utilizzare»; alcuni grossi nomi sono i padroni del mercato, ma anche qui la filosofia dell’open source, del software gratuito sta iniziando ad affermarsi.La produzione del software avviene attraverso le seguenti fasi: analisi programmazione implementazione testing manutenzione L’analisi è forse la fase più importante perché dalla sua completezza di informazioni sul problema dipendono quelle successive. Questa fase serve per studiare il problema che si vuole informatizzare in modo da individuare le specifiche delle varie attività da svolgere che, insieme alle risorse che si rendono necessarie, consentano di conseguire i risultati richiesti da chi utilizzerà o farà utilizzare il software. L’analisi, una volta terminata, viene comunicata ai programmatori che, seguendo le informazioni in essa contenute, svolgono la programmazione, cioè producono il software mediante un linguaggio di programmazione. Successivamente il software prodotto va implementato, cioè installato e messo in esercizio, sul computer dell’utente e testato per verificare il corretto funzionamento in tutti i casi che, nella situazione reale, possono verificarsi.Infine è necessario svolgere quasi sempre un’attività di manutenzione: infatti la maggior parte dei programmi deve essere aggiornata periodicamente sia per migliorare una versione precedente o per correggere eventuali errori sia per soddisfare nuove esigenze richieste dall’utente. Powered By GSpeech

Evoluzione delle macchine da calcolo

L’Informatica, significa elaborazione automatica delle informazioni, si occupa della progettazione e dell’uso di macchine in grado di trattare grandi quantità di dati in tempi brevi e in modo automatico, cioè senza l’intervento dell’uomo, capaci di trasmettere informazioni rendendo ininfluenti le distanze geografiche.Si parla quindi di ICT (Information and Communication Technology, Tecnologie della Comunicazione e dell’Informazione), un insieme di tecnologie in grado di reperire, elaborare, memorizzare e trasferire dati: l’Information Technology.Oggi una macchina informatica non è più vista come uno strumento capace di risolvere un compito particolare, ma come un elemento in grado di comunicare con altre risorse di vario tipo al fine di svolgere attività di elaborazione e trasmissione.
Nel 1943, Thomas Watson, un dirigente IBM affermava: «Credo che il mercato mondiale possa aver bisogno al massimo di 5 computer». Nel 1977, Ken Olsen, presidente della DEC diceva: «Non c’è nessun motivo per cui una persona debba avere un computer a casa». Secondo alcuni storici, l’evoluzione delle macchine da calcolo ha avuto inizio quasi 4000 anni fa, in Cina, quando fu inventato l’abaco. Altri ritengono, invece, che l’abaco abbia avuto origine presso i Babilonesi; in ogni caso sono pervenuti fino ai nostri giorni esemplari di questa «macchina» che risalgono a Egiziani, Romani, Maya. Nella versione moderna l’abaco, noto anche come pallottoliere, è composto da una struttura in legno con palline disposte su fili paralleli, e da barre perpendicolari ai fili, che suddividono le palline in più gruppi. Ogni colonna rappresenta una posizione nel sistema di numerazione decimale; in altre parole, la colonna posta all’estrema destra corrisponde alle unità; quella posta alla sua sinistra corrisponde alle decine e così via. In ogni colonna, sotto la barra trasversale, sono poste cinque palline (ognuna delle quali rappresenta un’unità) e, sopra la barra, due palline che corrispondono ciascuna a cinque unità. Ad esempio, nella colonna delle decine, le palline del gruppo da cinque valgono 10 mentre quelle del gruppo da due valgono 50. Le palline da conteggiare nella formazione del numero sono sistemate contro la barra trasversale.
 

abaco

La macchina di Anticitera è il più antico calcolatore meccanico di cui la storia abbia memoria. Si tratta di un complesso planetario, mosso da ruote dentate, che serviva per calcolare il sorgere del sole, le fasi lunari, i movimenti dei 5 pianeti allora conosciuti, gli equinozi, i mesi e i giorni della settimana. Prende nome dal luogo del ritrovamento e risale all’87 a.C. Solo nel 1951 i dubbi sul misterioso meccanismo cominciarono ad essere svelati. Quell’anno infatti il professor Derek Price cominciò a studiare il congegno, esaminando minuziosamente ogni ruota ed ogni pezzo e riuscendo, dopo circa vent’anni di ricerca, a scoprirne il funzionamento originario. Il meccanismo risultò essere un antichissimo calcolatore per il calendario solare e lunare, le cui ruote dentate potevano riprodurre il rapporto di 254:19 necessario a ricostruire il moto della Luna in rapporto al Sole (la Luna compie 254 rivoluzioni siderali ogni 19 anni solari). L’estrema complessità del congegno era inoltre dovuta al fatto che tale rapporto veniva riprodotto tramite l’utilizzo di una ventina di ruote dentate e di un differenziale, un meccanismo che permetteva di ottenere una rotazione di velocità pari alla somma o alla differenza di due rotazioni date. Il suo scopo era quello di mostrare, oltre ai mesi lunari siderali, anche le lunazioni, ottenute dalla sottrazione del moto solare al moto lunare siderale. 

La macchina di Anticitera

 

Nel 1600 Nepero inventa uno strumento per effettuare moltiplicazioni e divisioni e per calcolare e costruire le tavole dei logaritmi; questa macchina era costituita da bastoncini (o regoli) che permettevano di moltiplicare o dividere un numero qualunque per un numero di una sola cifra, senza ricorrere alla Tavola Pitagorica. I regoli erano 11, uno fisso e gli altri mobili.Nel 1650 il matematico inglese E. Gunter inventò il regolo calcolatore, per calcolare potenze, radici quadrate e cubiche, utilizzato fino a pochi decenni fa. Fino a questo punto, però, le nostre macchine non sono ancora in grado di effettuare operazioni, ma solo di rappresentarle in un certo modo. Nel XVII secolo arrivano invece i primi sistemi meccanici che consentono l’esecuzione automatica delle operazioni. La prima macchina in grado di eseguire in modo automatico delle addizioni è stata la Pascalina, ideata dal filosofo e matematico francese Blaise Pascal nel 1642 .Questa macchina era costituita da una serie di ruote dentate (rappresentanti unità, decine e centinaia) collegate mediante opportuni ingranaggi meccanici; la rotazione di queste ruote consentiva di effettuare addizioni e sottrazioni, tenendo conto dei riporti e dei prestiti.

 pascalina

Nel 1671, il matematico tedesco Gottfried Leibniz ideò una macchina in grado di effettuare in modo automatico le quattro operazioni, macchina che, però, difettava in precisione. Lo stesso Leibniz ideò il sistema binario, cioè un sistema per rappresentare i numeri utilizzando solo le cifre 0 e 1 e intuì che tale sistema poteva essere utilizzato dalle macchine di calcolo automatiche.
All’inizio del 1800 Joseph Marie Jacquard inventò e diffuse un telaio di tessitura automatizzato, in grado di leggere le«istruzioni» per la tessitura con opportune«schede perforate», che erano delle schede di cartone con dei fori. La prima macchina per il calcolo prodotta serie (1500 esemplari) fu l’«aritmometro» (1820).

aritmometro

Nel 1822, il matematico inglese Charles Babbage progettò la sua macchina differenziale, capace di effettuare le operazioni matematiche di base. Successivamente si applicò allo sviluppo della«macchina analitica» (1833), in grado di leggere le istruzioni da schede perforate e di propagare i riporti in modo automatico (in pratica i risultati delle operazioni potevano essere utilizzati come operandi per le istruzioni successive).macchina analitica

Nel 1823 Berzelius, chimico svedese, isolò il silicio: questo elemento rivoluzionerà il mondo degli ela­boratori. Nel 1847 Charles Boole elaborò i concetti di Leibniz sulla logica binaria; la sua teoria è ancora oggi alla base del funzionamento dei moderni calcolatori. Nel 1880, l’americano Herman Hollerith ideò la «macchina tabulatrice», utilizzata dal governo americano per leggere da schede perforate i dati del censimento: visto il successo ottenuto (diminuzione drastica dei tempi di acquisizione ed elaborazione dei dati con maggiore precisione) questa macchina sancì l’inizio della produzione industriale e della diffusione delle macchine di calcolo automatiche. Le schede perforate di Hollerith avevano le dimensioni delle banconote da un dollaro, formato che consentiva di utilizzare 80 colonne di fori e vennero utilizzate fino a pochi decenni fa.macchina Tabulatrice

Nei primi anni del 1900 si passò da macchine puramente meccaniche a macchine elettromeccaniche: queste utilizzavano come elemento base il relè.Queste nuove macchine, dette «elettromeccaniche» o«meccanografiche» permettevano l’esecuzione delle operazioni fondamentali e anche una rappresentazione dei risultati non solo in forma numerica, ma anche alfanumerica.Nel 1924 nasce la International Business Machines (IBM), sulla scia della Hollerith’s Tahulating Machines Company.Negli anni successivi si assiste alla vera e propria commercializzazione delle macchine a schede perforate e ad un enorme sforzo da parte degli scienziati per aumentarne l’efficienza, soprattutto in termini di velocità di calcolo.

I calcolatori elettromeccanici
Siamo ormai vicini ad uno dei periodi più bui del secolo passato (la Seconda Guerra Mondiale) e proprio grazie a necessità belliche, il settore delle macchine da calcolo subisce repentini ed incisivi cambiamenti. Nel 1938 un ingegnere tedesco, Konrad Zuse, realizza il primo calcolatore elettromeccanico, lo Z1, seguito subito dallo Z2 (2600 relè) e dallo Z3 (che era in grado di eseguire le 4 operazioni e le radici quadrate), utilizzato dai nazisti fino al termine del conflitto. Parallelamente a queste invenzioni europee, negli Stati Uniti viene realizzato, nel 1944, Mark I, il primo calcolatore elettromeccanico americano; il suo ideatore fu un ricercatore dell’Università di Harvard, Howard Aiken.Mark I, oltre alle funzionalità di Z3, era in grado di eseguire calcoli trigonometrici, esponenziali e logaritmici. Mark I poteva leggere i dati e le istruzioni per manipolarli sia da schede perforate sia da serie di interruttori e forniva i risultati ancora sotto forma di fori su schede o di tabulati stampati da dispositivi simili a macchine da scrivere. Mark I era costituito da più di 3.000 relè collegati da 800 km di fili elettrici; le sue dimensioni erano quelle di una grande stanza, il suo peso era di 5 tonnellate ed era in grado di sommare due numeri di 23 cifre in 3 decimi di secondo e moltiplicarli in 6 secondi; il suo costo ammontava a circa 400.000 dollari.

La prima generazione degli elaboratori elettronici
Due anni più tardi, nel 1946, presso l’Università della Pensylvania, viene realizzato l’ENIAC (Electric Numerical Integrator And Computer), il primo calcolatore a valvole, che segna l’inizio di una nuova era per il calcolo automatico. John P. Eckert e John Mauchly, i realizzatori di ENIAC, utilizzarono, per memorizzare le informazioni, al posto dei relè, dei tubi a vuoto o valvole elettroniche. Con l’utilizzo delle valvole elettroniche vengono eliminati tutti gli organi meccanici, consentendo così velocità superiori: ENIAC è in grado di effettuare 300 moltiplicazioni al secondo. Le dimensioni di ENIAC sono titaniche: occupa una superficie di 180 metri quadri, pesa 13 tonnellate, utilizza 18.000 valvole con frequenza di 100.000 Hz. Esso è 10.000 volte più lento di un moderno personal computer.

Eniac

Uno scienziato matematico ungherese, John Von Neumann, elaborò nell’immediato dopoguerra la teoria che ancora oggi è alla base dei moderni calcolatori.
Con Von Neumann, il calcolatore diventa «elaboratore», cioè sulla base dei risultati delle operazioni intermedie può saltare direttamente ad una determinata istruzione: in questo modo l’elaboratore con il suo «programma» è in grado di risolvere diversi problemi, cioè non esegue solamente operazioni aritmetiche, ma anche logiche, sulla base delle quali prende decisioni (basandosi comunque su un programma scritto dall’uomo). In altre parole, se prima era richiesto l’intervento umano per collegare in modo particolare i circuiti dei calcolatori per risolvere determinati problemi, ora tutto ciò viene eseguito automaticamente dalla macchina, sulla base di confronti tra dati: grazie a questa fondamentale innovazione, la velocità degli elaboratori ha subito un eccezionale incremento.
Gli elaboratori della prima generazione (ma anche quelli dei giorni nostri), in definitiva, sono in grado di ricevere delle informazioni, di elaborarle e di produrre dei risultati. I dati e le istruzioni che operano su di essi sono letti da schede perforate e trasferiti nella memoria centrale dell’elaboratore. I dati vengono poi processati dall’Unità Aritmetico Logica (ALU), che esegue le operazioni indicate dalle istruzioni (quindi dal programma); i risultati sono restituiti mediante stampati o schede perforate.
Tutte queste operazioni sono guidate dall’Unità di Controllo che legge le istruzioni, le interpreta, coordina la loro esecuzione e il flusso dei dati in modo automatico (precedentemente, negli elaboratori meccanici, queste fasi erano eseguite manualmente dagli operatori). Come già detto, le informazioni elaborate e memorizzate da queste macchine, venivano (e vengono) rappresentate mediante il sistema di numerazione binario, sistema che utilizza due sole cifre (lo zero e l’uno) per codificare le informazioni. I componenti fondamentali degli elaboratori vengono fatti lavorare in due loro stati, cui vengono associate le 2 cifre del sistema binario; le informazioni manipolate dagli elaboratori sono perciò segnali elettrici, con due soli valori, cui corrispondono i due stati dei dispositivi elettrici (acceso e spento). I vantaggi dell’utilizzare segnali binari sono tutti nella semplicità con cui i componenti distinguono i due livelli (anziché 10 se utilizzassimo il sistema decimale) ed eseguono le operazioni elementari.Le cifre del sistema binario vengono dette BIT (da BInary digiT, cifra binaria, in inglese). Le regole con le quali i bit vengono elaborati sono essenzialmente le leggi dell’algebra di Boole, elaborate dal matematico inglese Boole nel 1800; le operazioni elementari (somma, sottrazione, moltiplicazione e divisione) alla fine vengono tutte ricondotte a particolari operazioni di somma, per cui ai componenti che costituiscono i circuiti di calcolo di un elaboratore viene richiesto di effettuare nient’altro che somme tra bit. Gli elaboratori della prima generazione memorizzavano le informazioni su particolari dispositivi magnetici — tamburi rotanti ad alta velocità: diverse testine magnetiche «scrivono» e «leggono» dati e istruzioni sulla superficie dei tamburi, suddivisa in tanti punti magnetizzati, impiegando per queste operazioni alcuni millisecondi. Verso la metà degli anni ’50 si iniziano ad utilizzare le memorie a nuclei di ferrite, di dimensioni e tempi di lettura/scrittura inferiori rispetto ai tamburi magnetici. I nuclei di ferrite sono anelli di materiale magnetico, di pochi decimi di millimetro di diametro, attraversati da due conduttori elettrici disposti perpendicolarmente tra di loro. In base ai segnali elettrici fatti passare nei conduttori, ogni anello può venire magnetizzato in due modi differenti e memorizzare così un uno oppure uno zero. La presenza di un terzo conduttore che attraversa gli anelli permette la lettura dei dati memorizzati, con tempi di accesso di pochi millisecondi.

Nucleo di ferriteIl componente fondamentale dei circuiti preposti all’elaborazione delle informazioni (l’Unità Centrale) è il tubo a vuoto o valvola elettronica. I dispositivi di output sono ancora costituiti da perforatori di schede o da dispositivi di stampa, che convertono i bit in forma facilmente intelligibile dagli operatori umani. Sempre in questi anni fanno la loro comparsa dispositivi ausiliari di memoria, cioè dispositivi esterni all’elaboratore, in grado di memorizzare grandi quantità di dati. Questi dispositivi sono nastri e dischi magnetici. I primi sono dispositivi ad accesso sequenziale: per reperire una particolare informazione è necessario scorrere tutto il nastro fino al punto cercato; i dischi invece sono dispositivi ad accesso diretto, che consentono di reperire istantaneamente le informazioni cercate.

nastro

Il fatto che le istruzioni venissero registrate in un’apposita memoria liberava il computer dalle limitazioni di velocità dovute alla lettura del nastro perforato durante l’esecuzione dei programmi, permettendogli di eseguire compiti diversi senza alcun intervento sui collegamenti. Si riesce così a costruire l’elaboratore elettronico come l’aveva concepito Von Neumann.Evoluzione delle macchine da calcoloNei primi anni ’50 si assiste ad una crescita esponenziale della richiesta e della produzione di elaboratori elettronici:

  • nel 1953 si hanno circa 100 elaboratori in funzione nel mondo;
  • nel 1958 il numero di calcolatori negli Stati Uniti è di 2500.

In Italia le cose procedono più lentamente:

  • nel 1954 viene installato presso il Politecnico di Milano il primo elaboratore;
  • nel 1957 si ha il primo utilizzo di una elaboratore in azienda;
  • nel 1958 abbiamo circa 10 elaboratori.

Nati come strumenti puramente scientifici, gli elaboratori elettronici negli anni ’50 si sono via via diffusi anche nelle aziende e sono ormai diventati un insostituibile strumento per l’elaborazione delle informazioni.

La seconda generazione degli elaboratori elettronici
Verso la fine degli anni ’50 le valvole vengono sostituite dal transistor e gli elaboratori vengono detti di «seconda generazione». Grazie all’introduzione del transistor, gli elaboratori diventano più veloci, più piccoli e si diffondono rapidamente in tutto il mondo, estendendo i loro campi di impiego in tutti i settori aziendali e non solo.

transistor

Nel 1955 la Bell realizzò il primo elaboratore a transistor, il TRADIC. Nel 1957 la Siemens commercializzò il modello 2002.Tra il 1960 e il 1964, l’IBM costruì il modello 1401 (più di centomila esemplari) e Olivetti sviluppò ELEA (poco più di 100 esemplari) che rappresentò il primo tentativo italiano di affacciarsi al mercato degli elaboratori elettronici. L’introduzione del transistor ha evidentemente migliorato le prestazioni della CPU: i transistor, più durevoli e meno costosi in termini di potenza, permisero la messa a punto di elaboratori più evoluti, compatti, veloci ed economici. Parallelamente a questi progressi anche le memorie di massa e i dispositivi di input e di output hanno subito forti innovazioni. Le memorie di massa a dischi sono ormai largamente diffuse e consentono velocità di lettura/scrittura elevate e capacità di memorizzazione di qualche milione di caratteri; inoltre è possibile collegare assieme più unità a disco in modo da arrivare a capacità di memorizzazione ancora superiori. Oltre alle unità di memoria di massa «fisse», cioè interne agli elaboratori, si diffondono memorie «mobili» a dischi, che possono essere sostituite con altre in breve tempo, consentendo così di elaborare enormi quantità di dati. Gli elaboratori della seconda generazione sono inoltre in grado di svolgere operazioni aritmetiche e operazioni logiche contemporaneamente, di leggere e scrivere schede perforate e leggere e scrivere dati su supporti magnetici. In questi anni, inoltre, si assiste alla nascita e diffusione delle unità terminali (o semplicemente «terminali»), connessi ad un calcolatore centrale: i terminali hanno solo il compito di trasmettere dati all’elaboratore centrale, che invece li manipola e li memorizza. Con la diffusione degli elaboratori, nasce anche la necessità di scrivere programmi adatti a svolgere determinati compiti. Nascono e si sviluppano allora i primi linguaggi di programmazione.

La terza generazione degli elaboratori elettronici
Verso la metà degli anni ’60 venne sviluppato un nuovo componente, destinato a rivoluzionare ancora una volta il mondo degli elaboratori elettronici: si tratta del circuito integrato, che grazie allo sforzo congiunto di tecnici elettronici, di fisici e di chimici, consente elevatissime velocità, ingombri ridottissimi ed ottima affidabilità. I primi elaboratori ad adottare circuiti integrati sono state le macchine della serie 360 IBM (oltre 30.000 esemplari nel mondo), il G115 della Honeywell (1.000 esemplari) e la serie 9.000 della Univac (2.500 esemplari).Queste macchine sono in grado di eseguire un’operazione in pochi nanosecondi, mille volte più veloci degli elaboratori a transistor.
Le memorie di massa, ancora costituite da nuclei di ferrite, erano però dispositivi troppo lenti per affiancare l’elevata velocità di elaborazione delle nuove CPU: per questo motivo vennero introdotti nuovi tipi di memorie, più veloci, da inserire tra memorie di massa e unità centrale; in queste memorie, dette di transito, i dati potevano essere letti/scritti velocemente dall’unità centrale e successivamente essere trasmessi alle memorie di massa.
Le nuove macchine possono essere «aggiornate» nel tempo, utilizzando appositi moduli che ne sostituiscono altri diventati obsoleti (lenti, di capacità insufficiente, ecc.); inoltre i programmi sviluppati possono funzionare su macchine differenti (si parla di compatibilità del software), e questo ha portato ad un incremento del mercato mondiale del software. In altre parole gli elaboratori non sono più progettati e costruiti per svolgere un determinato compito, ma si adattano a svolgere diversi programmi, nei settori più disparati.
In questi anni nasce un programma particolare, il sistema operativo, il cui compito è quello di porsi come interfaccia tra l’hardware e l’utente, coordinando le operazioni svolte dalla macchina e facilitandone l’utilizzo anche da parte di utenti poco esperti. Gli elaboratori non sono più quindi un prodotto riservato a pochi (scienziati, tecnici, ecc.) ma si stanno diffondendo anche tra i non addetti. In questo periodo, grazie alla velocità di elaborazione, i calcolatori possono eseguire contemporaneamente più compiti: si parla allora di multi-programmazione e di time-sharing. Più utenti possono far eseguire i loro programmi da un unico calcolatore, che riserva ad ogni processo una frazione del suo tempo. Si afferma quindi sempre più la tecnica di utilizzare un elaboratore centrale cui sono collegati diversi terminali dai quali gli utenti possono eseguire programmi anche diversi. Infine, parallelamente all’evoluzione della CPU anche i dispositivi di input e output diventano sempre più veloci e il modo con cui gli utilizzatori inseriscono dati o leggono risultati è sempre più «user friendly», cioè vicino all’uomo. Si riescono ormai a leggere mille e più schede perforate al minuto e le stampanti riescono a produrre oltre 2.000 righe di output al minuto: la capacità dei dischi arriva ora a molti miliardi di caratteri (forse è più facile dire molti GByte - GIGA Byte).
Facendo un confronto fra le tre generazioni di calcolatori, si osserva un miglioramento delle prestazioni incredibile:

  • elaboratore a valvole (prima generazione) - circa 2.000 moltiplicazioni al secondo;
  • elaboratore a transistor (seconda generazione) - circa 35.000 moltiplicazioni al secondo;
  • elaboratore a circuiti integrati (terza generazione)- circa 2 milioni di moltiplicazioni al secondo.

Le memorie a nuclei di ferrite sono troppo lente per i nuovi circuiti di elaborazione: nascono allora le memorie a circuiti integrati, che utilizzano la stessa tecnologia delle CPU e garantiscono tempi di lettura e scrittura rapidissimi. Rimane ancora un limite per quanto riguarda la capacità di queste memorie, ridotta rispetto alla capacità delle memorie di massa su disco e spesso insufficiente a contenere l’intero programma che si deve eseguire. Per ovviare a questo inconveniente, viene utilizzata una parte di memoria di massa come se fosse una grande memoria principale (viene chiamata «memoria virtuale») e i programmi vengono suddivisi in «pagine»; solo una parte del programma si trova in memoria principale, la rimanente parte rimane nella memoria virtuale e la CPU deciderà di caricarne in memoria un’altra parte quando le servirà. Il primo elaboratore ad utilizzare la tecnica della memoria virtuale fu l’IBM Sistema 370, che aveva una memoria centrale di oltre 3 MByte. Inizia anche a modificarsi il modo con cui le informazioni vengono inserite negli elaboratori: dalle schede perforate si passa a dispositivi a tastiera e soprattutto a supporti magnetici (dischi) sui quali le informazioni possono essere facilmente memorizzate e lette.

I microprocessori e la quarta generazione degli elaboratori elettronici
Il microprocessore è un particolare circuito integrato che racchiude al suo interno tutte le funzionalità dell’Unità di Controllo e dell’Unità Aritmetico Logica, oltre a particolari circuiti (registri) per memorizzare dati e istruzioni.La potenzialità di un microprocessore viene data dalla velocità con cui vengono eseguite le operazioni e dal numero di bit che possono essere elaborati contemporaneamente: si parla allora di clock e di bus dati. Il clock indica il numero di operazioni al secondo che possono essere eseguite, il bus dati indica invece il numero di bit che costituiscono i dati elaborati. Il microprocessore ha un bus interno e un bus esterno.
 

cpu

Il microprocessore fece la sua comparsa alla metà degli anni Settanta, quando furono prodotti circuiti a grande scala di integrazione (Large Scale Integration, LSI) e poi a grandissima scala di integrazione (Very Large Scale Integration, VLSI), contenenti milioni di transistor interconnessi, realizzati su un’unica piastrina di silicio. Nel 1971 l’ingegnere italiano F. Faggin e gli americani T. Hoff e S. Mazer producono il primo microprocessore della INTEL, il 4004, microprocessore a 4 bit (cioè capace di elaborare informazioni a gruppi di 4 bit), utilizzato in una calcolatrice da tavolo; le potenzialità del 4004 erano molto ridotte, tanto da spingere la INTEL stessa a realizzare a breve il 8008, microprocessore a 8 bit. Dopo altri microprocessori a 8 bit (l’8085 e l’8048), INTEL passò alla tecnologia a 16 bit, producendo l’8088 e l’8086: questi hanno inizialmente un clock di 4,77 MHz e passano successivamente a 10 MHz.
Nel 1972 nasce in California l’era dei Videogiochi, con Pong: una pallina che rimbalza sullo schermo e viene rilanciata da due sbarrette che si muovono con due potenziometri. Con Space Invaders (1978) e Pacman (1980) i progressi di­ventano strabilianti.

pong

Nel 1973 IBM lancia il primo Hard Disk e successivamente il Winchester, Hard Disk da 70 MB. Nel 1976, Steve Jobs e Stephan Wozniak realizzarono in modo pionieristico il primo Personal Computer: Apple I; visto l’inaspettato successo, dopo la vendita di alcuni esemplari di Apple I (in scatola di montaggio), fondarono la Apple Computer Company.
Nel 1977 venne rilasciato Apple II, il vero primo Personal Computer. Apple II aveva dimensioni e costi ridotti rispetto ai precedenti elaboratori, era dotato di una tastiera per l’immissione dei dati e utilizzava come dispositivo di output un normale televisore: si tratta quindi di tecnologia alla portata di tutti e proprio questo sancisce la rapida diffusione del personal computer in tutto il mondo. Apple II poteva essere programmato utilizzando il linguaggio Basic e utilizzava una memoria di massa costituita da un disco (floppy disk) da 5’/4 pollici, e anche questo rappresenta una causa del suo successo.

apple ii

Nel 1978 la HAYES lancia sul mercato il primo modem (modulatore-demodulatore), che trasforma i segnali digitali dei computer in segnali analogici, trasmessi e ricevuti at­traverso il telefono. L’utente si può così collegare con qualsiasi altro computer al mondo. Nel 1979 l’IBM produce la prima stampante laser. Nel 1980 anche l’IBM entra nel mercato del personal computer (altre ditte, come Tandy, si erano già aggiunte precedentemente); il primo PC IBM, il 5150, venne presentato nel 1981, utilizzava un microprocessore 8088 con bus interno a 16 bit e soprattutto era molto più potente di tutti i suoi predecessori. Parallelamente si svilupparono aziende per la produzione di dispositivi ausiliari compatibili con la tecnologia IBM. Altre ditte puntarono ad abbassare i costi dei loro prodotti: ecco allora la Sinclair con lo Spectrum, la Commodore con il VIC20 e il Commodore 64 e la Texas Instrument. Nel 1982 il chip Intel 80286 possiede 134 mila transistor.commodore 64Nel 1983 lo studente americano F. Cohen realizza il primo virus per computer, che consisteva in un insieme di istruzioni capaci di penetrare in un computer via modem o floppy disk, provocando la distruzione di file e cancellando il contenuto della memoria.
Il sistema operativo con cui operavano le macchine IBM era il CP/M (Control Program for Microcomputers) ideato nel 1974 da G. Kindall, a cui presto succedette l’MS-DOS (MicroSoft Disk-Operating System), sviluppato per microprocessori a 16 bit dalla MicroSoft di Paul Allen, Steve Ballmer e Bill Gates, fondata sempre in USA nel 1977.
Nel 1985 il chip 80386 possiede 275 mila transistor. Nel 1989 il chip 80486 possiede 1,2 milioni di transistor. Nel 1993 nasce il Pentium: contiene 3,2 milioni di transistor, 15.000 per millimetro quadrato (i transistor utilizzati sono cento milioni di volte più piccoli del loro primo predecessore). Nel 1991 fanno la loro comparsa i primi microprocessori AMD; nel 1992 nascono i Cyrix. Nel 1994 abbiamo AMD 486DX2 a 80 MHz e Pentium a 100 MHz; negli anni successivi arrivano Pentium Pro, Pentium II, Pentium MMX, Pentium III (siamo nel 1999) e Pentium IV e AMD Duron e Athlon.
In questi ultimi anni (siamo arrivati al terzo millennio) si assiste ad un vertiginoso incremento della velocità a cui operano i mi­croprocessori — siamo ormai oltre i 2 GHz— e si parla ormai di tecnologia a 64 bit.

Breve storia dei linguaggi di programmazione, dei sistemi operativi e del software applicativo
Poiché la CPU lavora con 0 e 1, un programma sarà costituito da lunghe sequenze di 0 e 1 che istruiscono la macchina sulle operazioni da svolgere. Appare evidente che scrivere programmi le cui istruzioni sono costituite da lunghe sequenze di bit (linguaggio macchina) è un compito assolutamente non banale. Un programma quindi è una sequenza di istruzioni che la macchina deve eseguire; il programma viene caricato nella memoria dell’elaboratore e da lì eseguito, istruzione per istruzione, dalla CPU. Vista la necessità di scrivere direttamente in linguaggio macchina, nasce nel 1957 un linguaggio simbolico, il FORTRAN (FORmula TRANslator), sviluppato da John Backus, IBM. Il linguaggio simbolico sostituisce le sequenze di 0 e 1 con delle sequenze più brevi di lettere e numeri, con significati ben precisi e facilmente intelligibili dall’uomo. Il programmatore scriverà il programma utilizzando questi simboli (con un minor rischio di commettere errori) e la macchina dovrà tradurre il programma scritto con il linguaggio simbolico in linguaggio macchina. Nel 1958 il linguaggio Lisp venne sviluppato da John McCarthy al MIT, usato soprattutto per manipolare liste di dati. Nei primi anni ’60 nascono altri linguaggi di programmazione simbolici: accanto al Fortran, principalmente utilizzato per problemi scientifici e tecnici, abbiamo il COBOL (COmmon Business Oriented Language), principalmente utilizzato per problemi di tipo economico e finanziario in cui si manipolano molte informazioni con operazioni poco complesse (i simboli che costituiscono questo linguaggio sono parole normalmente utilizzate nel mondo del commercio), l’ALGOL (ALGOrithmic Language), che ha contribuito allo sviluppo del FORTRAN e del PASCAL, nato nel 1968 grazie a Niklaus Wirth e Kathleen Jensen.
Nasce pure in questo periodo il termine bug per indicare un errore di programmazione. Bug in inglese significa cimice o, genericamente, insetto (e non baco, come usualmente tradotto) e la cosa nacque da un errore del Mark II che fece impazzire i tecnici, fino a quando scoprirono che un relè non funzionava in modo corretto proprio perché una farfalla notturna vi era rimasta incastrata.

bug

Nascono in questi anni anche i programmi applicativi, cioè programmi scritti e messi in commercio da software house adatti a svolgere un ben determinato compito, eventualmente grazie a piccole modifiche o personalizzazioni; nasce quindi un nuovo settore chiamato software, che si sviluppa in modo parallelo al settore hardware.
Nascono altri linguaggi di programmazione: l’APL (A Programming Language). di Ken Iverson dell’Università di Harvard (1962), il PL/1 (Programming Language 1), adatto a problemi scientifici e commerciali, il BASIC (Beginners All-purpouse Sytnholic Instruction Code), di facile utilizzo anche da utenti non esperti (Tom Kurtz e John Kemeny, Dartmouth College).

  • Nel 1963 abbiamo la nascita del primo software Computer-Aided Design (CAD).
  • Nel 1969 Ken Thompson elaborò la prima versione del Sistema operativo Unix (all’AT&T’s Beli Laboratories).
  • Nel 1970 venne sviluppato da Charles Moore il linguaggio FORTH.
  • Nel 1974 Brian Kernighan e Dennis Ritchie svilupparono il linguaggio di programmazione C.
  • Nel 1975 Bill Gates e Paul Allen svilupparono un nuovo BASIC, l’MSBASIC. utilizzato da Atari.
  • Nel 1979 uscirono i primi word processor (Apple Writer e Wordstar); il primo foglio elettronico (VisiCalc per Apple II), Vulcan database program (dbase II), il linguaggio ADA, il Modula I (di Wirth); Apple Computer rilasciò il DOS 3.2 (Disk Operating System) sviluppato dall’Applesoft.
  • Nel 1980 abbiamo il sistema operativo Unix BSD 4.1 e Logo Computer Systems (Canada) commercializzò il suo linguaggio: il LOGO.
  • Nel 1981 MicroSoft rilasciò MS-DOS 1.0 (su un prototipo IBM 5150, noto come IBM PC).
  • Nel 1982 abbiamo il Fortran per sistemi MS-DOS, MBA (pacchetto con word processor, foglio elettronico, grafica, ecc.), il foglio elettronico Lotus 123, il GW Basic e l’MS Cobol di MicroSoft. L’anno successivo vedono la luce i word processor MicroSoft Word e Word-Perfect (della Satellite Software), il C+ + (evoluzione del C), il Turbo Pascal della Borland, un prototipo di Windows, OS/2 e Netware di Novell (per quanto riguarda i sistemi operativi).
  • Il 1985 diede i natali a MSDOS 3.0 e X Windows per sistemi Unix e il 1986 a MS Windows 1.0 e a QBasic 1.0 (sempre MicroSoft): nel 1987 abbiamo Windows 2.0. nel 1988 MS Office 1.0 (suite di programmi per l’ufficio), nel 1990 Windows 3.0, nel 1991 MS Word ed Excel 3.0, Linux, Windows NT.
  • Nel 1992 arrivano Windows 3.2, IBM OS/2 2.0, MS DOS 6.0. MS Access 1.0; nel 1993 Mosaic (il primo browser). Nel 1994 Apple Quick Time 2.0, Netscape Navigator, le Norton Utilities 3.0. MS Word 6 per Mac; nel 1995 Borland Delphi. Windows 95, MS Internet Explorer: nel 1996 Windows NT 4, nel 1998 Windows 98, nel 2000 Windows 2000 e ME; nel 2001, Windows XP, nel 2007 Windows Vista, nel 2009 Windows 7, nel 2012 Windows 8, nel 2013 Windows 8.1, nel 2015 Windows 10.