Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Fondamenti di Informatica: Introduzione ai Concetti Base e all'Algebra Booleana, Dispense di Elementi di Informatica

Un'introduzione ai concetti fondamentali dell'informatica, esplorando l'algebra booleana, la rappresentazione dei numeri in diverse basi e la struttura di un calcolatore. Esempi pratici e illustra i principi di base dell'informatica, rendendolo un'utile risorsa per studenti che si avvicinano a questa disciplina.

Tipologia: Dispense

Pre 2010

Caricato il 07/05/2010

man_gio
man_gio 🇮🇹

4.4

(40)

8 documenti

1 / 28

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
APPUNTI DEL CORSO
“FONDAMENTI DI
INFORMATICA”
A CURA DI TIANO FRANCESCO ANTONIO
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Anteprima parziale del testo

Scarica Fondamenti di Informatica: Introduzione ai Concetti Base e all'Algebra Booleana e più Dispense in PDF di Elementi di Informatica solo su Docsity!

APPUNTI DEL CORSO

“FONDAMENTI DI

INFORMATICA”

A CURA DI TIANO FRANCESCO ANTONIO

1. INFORMAZIONE

1.1. SIGNIFICATO DEL TERMINE INFORMAZIONE

L’informazione potrebbe essere definita come un messaggio, qualcosa che può essere comunicato da un ente che trasmette (sender) a un ente che riceve (receiver). In una comunicazione, che avviene attraverso un dato alfabeto di simboli. L’informazione viene associata a ciascun simbolo trasmesso, e viene definita come la riduzione di incertezza che si poteva avere a priori sul simbolo trasmesso. Se l’informazione viene vista semplicemente come un messaggio, allora non risulta necessario avere accuratezza. In realtà, dalla definizione formale di informazione che alla base della teoria dell’informa, si evince che il termine informazione non ha solo un significato tecnico ma essa è fornita anche da una misura.

1.2. DATI, INFORMAZIONE E CONOSCENZA

I dati sono consistono di fatti e di configurazioni. Essi diventano informazione se interpretati in un contesto utilizzando la conoscenza sul contesto stesso. La conoscenza, quindi, è un insieme di modelli costruiti per comprendere il mondo.

1.3. MISURA DELL’INFORMAZIONE

Dato un evento con probabilità di occorrenza ᡨ, l’informazione ad esso associata è: ᠵ = − log⡰ ᡨ

1.3.1. Unità di misura dell’informazione

La quantità di informazione che permette di distinguere uno di due eventi equiprobabili e mutuamente esclusivi è l’unità di misura dell’informazione, detta bit:

ᠵ = − log⡰

Il bit è l’unità elementare di informazione rappresentabile: valori 0 e 1. Con 1 bit si possono rappresentare due stati (0/1, on/off, ecc…), mentre combinando più bit si può codificare un numero maggiore di stati: con 2 bit si possono rappresentare 2 ⡰^ = 4 stati, con ᠷ bit si possono rappresentare 2 〒^ stati.

1.3.2. Unita derivate

Le unità derivate del bit sono le seguenti:  Byte = 8 bit  KiloByte (KB) = 2 ⡩⡨^ byte ≅ 10 ⡱^ byte  MegaByte (MB) = 2 ⡰⡨^ byte ≅ 10 ⡴^ byte  GigaByte (GB) = 2 ⡱⡨^ byte ≅ 10 ⡷^ byte  TeraByte (TB) = 2 ⡲⡨^ byte ≅ 10 ⡩⡰^ byte

 essere costituito da regole non ambigue, cioè interpretabili in modo univoco qualunque sia l’esecutore che le legge.

1.6. AUTOMA

L’automa è un sistema che imita il comportamento umano ed in grado di riceve informazioni dall’esterno (input), reagire alle stesse elaborandole (processing), e inviare informazioni di nuovo all’esterno (output).

Il calcolatore elettronico è un tipo di automa composto da componenti elettronici.

1.7. SISTEMI INFORMATICI

I sistemi informatici sono degli strumenti programmabili progettati e realizzati per trattare informazione. Programmabile significa essere indipendente dall’ambiente in cui si opera e dagli agenti di calcolo che eseguono le operazioni. I computer non sono altro che particolari macchine in grado di eseguire algoritmi in particolari ambienti, purché gli algoritmi siano descritti in opportuni linguaggi chiamati linguaggi di programmazione. Alla luce di queste considerazione si può dedurre che: ᡂᡰᡧᡙᡰᡓᡥᡥᡓᡸᡡᡧᡦᡗ = ᡂᡰᡧᡖᡳᡸᡡᡧᡦᡗ ᡖᡡ ᠧᡤᡙᡧᡰᡡᡲᡥᡡ Se l’esecutore degli algoritmi è un sistema informatico allora tali algoritmi vengono detti programmi. Il programma risiede in memoria e viene eseguito, istruzione dopo istruzione, automaticamente dall’esecutore (CPU).

1.7.1. Compito del programmatore

Il compito di un programmatore consiste in:

 ideare un algoritmo efficace per la risoluzione di un problema dato;  tradurre questo algoritmo in istruzioni (operazioni) eseguibili da un computer tramite un linguaggio di programmazione.

2. INFORMAZIONE ANALOGICA E DIGITALE

2.1. INTRODUZIONE

L’esigenza di comunicare, memorizzare ed elaborare informazioni ha determinato lo sviluppo di tecniche di rappresentazione dell’informazione sia analogiche che digitali. La rappresentazione analogica di un’informazione si presenta sotto forma di un segnale che varia con continuità all’interno di un prefissato intervallo di valori (segnale analogico). La rappresentazione digitale ha forma di un segnale che assume un numero finito, molto limitato di valori significativi diversi (segnale digitale o discreto).

2.2. CONVERSIONE A/D

La conversione analogico/digitale, che trasforma un segnale analogico in una stringa di bit, si ottiene tramite due distinte operazioni:  il campionamento del segnale, in cui si preleva una successione di campioni a intervalli costanti di tempo. Se il campionamento avviene con una frequenza sufficientemente alta (almeno il doppio della massima frequenza contenuta nel segnale analogico), è possibile con un procedimento di conversione digitale-analogico, ricostruire la forma d’onda originaria (Teorema di Shannon);  la quantizzazione dei campioni, che consiste nel codificare ciascun campione con un numero finito di bit (profondità di bit) La conversione A/D è intrinsecamente affetta dall’errore di quantizzazione che è dovuto alla necessità di rappresentare ciascun numero reale con una stringa di bit di lunghezza finita.

2.3. COSA SIGNIFICA CODIFICARE

Codificare è il processo che porta ad assegnare una rappresentazione all’informazione. Scegliere una codifica appropriata è fondamentale, in quanto ha influenza sulle comunicazioni in termini di:  efficienza (numero di bit usato);  costo (complessità dei circuiti);  affidabilità;  sicurezza (crittografia). Gli schemi di codifica che puntano ad un’elevata efficienza comprimono i dati, eliminando ogni ridondanza. Viceversa, quelli che puntano ad un’elevata affidabilità incrementano la ridondanza, al fine di dotare il codice della capacità d’individuazione e correzione degli errori.

2.4. CODICI A LUNGHEZZA FISSA

Nel caso di scelte tutte equiprobabili si usa di norma un codice a lunghezza fissa in cui tutte le parole codice hanno lo stesso numero di bit (lunghezza). Per le 10 cifre decimali si halog⡰ 10 = 3.322 < 4, si può quindi usare un codice a lunghezza fissa di 4 bit (in realtà con 4 bit si possono codificare fino a 16 simboli). Per un alfabeto di 84 caratteri (lettere minuscole e maiuscole, le cifre, alcuni segni di punteggiatura, ecc…) si ha log⡰ 84 = 6.392 < 7, si può quindi usare un codice a lunghezza fissa di 7 bit (in realtà con 7 bit si possono codificare fino a 128 simboli).

3. LOGICA BOOLEANA

3.1. INTRODUZIONE

Il matematico inglese George Boole (1815-64) fondò un campo della matematica e della filosofia chiamato logica simbolica. Il suo nome è rimasto legato ad un insieme di operatori che sono molto utili e molto presenti nel campo dell’informatica (sia hardware che software) e che si chiamano operatori booleani.

3.2. ALGEBRA BOOLEANA

Gli operatori booleani di base sono:  ᠧᡀᠰ ≡ ∧  ᡁᡄ ≡ ∨  ᡀᡁᡆ ≡ ¬ Essi vengono applicati a uno (nel caso del NOT) o due o più (nel caso di AND e OR) argomenti e ritornano dei valori di verità.

3.2.1. Definizione algebrica

Sia B un insieme formato da almeno 2 elementi, si dice algebra booleana, avente S come supporto, la struttura algebrica costituita da:  da S;  da due operazioni binarie su B, OR e AND;  da un’operazione unaria NOT su B;  da un elemento particolare di B che indichiamo con 0. L’algebra booleana gode delle seguenti proprietà, ∀ ᡓ, ᡔ ∈ ᠨ risulta:  a OR b = b OR a a AND b = b AND a  NOT (NOT (a)) = a  NOT (a OR b) = NOT (a) AND NOT (b)  a AND 0 = 0 a OR 0 = a Per ogni logica booleana si definisce l’elemento 1 come il complementare dello 0: 1 = NOT (0). Per esso si deducono le proprietà, ∀ ᡓ ∈ ᠨ risulta:  a OR 1 = 1 a AND 1 = a  0 AND 1 = 0 0 OR 1 = 1 Proprietà distributiva di uno verso l’altro:  a OR (b AND c) = (a OR b) AND (a OR c)  a AND (b OR c) = (a AND b) OR (a AND c) Leggi di De Morgan:  a AND b = NOT ((NOT a) OR (NOT b))  a OR b = NOT ((NOT a) AND (NOT b))

3.2.2. Espressioni booleani

Nello stilare delle espressioni bisogna rispettare le seguenti regole di precedenza:  NOT ha la massima precedenza;  poi segue AND;  infine OR. Per alterare queste precedenze bisogna usare le parentesi (a volte usate solo per maggiore chiarezza).

3.2.3. Tabelle di verità

Per valutare un espressione booleana si usa la tabella di verità:

4.2.2. Notazione posizionale

In una notazione posizionale le cifre vengono prodotte nell’ordine dalla meno significativa (LSB) alla più significativa (MSB). Il numero ᡴ in una notazione posizionale è una sequenza di cifre che si costruisce con la seguente espressione:

ᡴ = ᡖ⡨ + ᠨ ∗ ᡖ⡩ + ᠨ⡰^ ∗ ᡖ⡰ + ᠨ⡱^ ∗ ᡖ⡱ + ⋯ = ᡖ⡨ + ᠨ ∗ 䙲ᡖ⡩ + ᠨ ∗ 㐵ᡖ⡰ + ᠨ ∗ 䙦ᡖ⡱ + ⋯ )㐹䙳

Conseguentemente la cifra ᡖ⡨ si può ricavare come resto della divisione intera ᡴ 㐕ᠨ. Il quoziente di tale divisione è ᡩ = ᡖ⡩ + ᠨ ∗ 㐵ᡖ⡰ + ᠨ ∗ 䙦ᡖ⡱ + ⋯ )㐹, perciò le altre cifre si possono ottenere iterando il procedimento. Non a caso tale algoritmo di conversione è detto “algoritmo delle divisioni successive”. Algoritmo di conversione: metodo operativo Per convertire il numero ᡴ in una stringa di cifre che ne rappresentino il valore in base ᠨ si procede in questo modo:  si divide ᡴ per ᠨ − il resto costituisce la cifra meno significativa (LSB) − il quoziente serve ad iterare il procedimento  se tale quoziente è zero, l’algoritmo termina;  se non lo è, lo si assume come nuovo valore ᡴ′  si itera il procedimento con il valore ᡴ′ Esempio: Numero Base Calcolo valore Stringa Quindici 4 15 / 4 = 3 con resto 3 3 / 4 = 0 con resto 3 33

Undici 2

11 / 2 = 5 con resto 1 5 / 2 = 2 con resto 1 2 / 2 = 1 con resto 0 1 / 2 = 0 con resto 1

Sessantatre 10 63 / 10 = 6 con resto 3 6 / 10 = 0 con resto 6 63

Sessantatre 16 63 / 16 = 3 con resto 15 3 / 16 = 0 con resto 3 3F

4.3. RELAZIONE FRA BASI DIVERSE

Se una base ᠨ1 = ᠨ ∗ 2ぁ, ogni cifra nella rappresentazione ᡄ1 corrisponde a ᡦ cifre nella rappresentazione ᡄ2. Ne consegue che per passare dalla rappresentazione di un numero in basi ᠨ1 a quella in base ᠨ2 (o viceversa) non è necessario applicare l’algoritmo di conversione, ma si può agire direttamente sostituendo ordinatamente ogni cifra di ᡄ1 con gruppi di ᡦ cifre di ᡄ2.

4.4. OPERAZIONI ARITMETICHE

Tutte le notazioni posizionali utilizzano per le operazioni le stesse regole, indipendentemente dalla base di rappresentazione adottata. Quindi le regole già note per la familiare rappresentazione in base 10 restano valide.

4.4.1. Errori nelle operazioni

In un elaboratore l’esecuzione di operazioni può generare degli errori, perché è impossibile rappresentare tutti gli infiniti numeri. In particolare, con ᡦ bit, esiste un massimo numero rappresentabile: 2 ぁ^ − 1.

Come si evince dalla tabella, il risultato è completamente errato, perché è andato perso il contributo più significativo. La causa è che i registri dell’elaboratore hanno posto per ᡦ bit, e quindi il bit di riporto che si genera viene perduto, si è verificato l’overflow (straripamento). All’overflow non c’è rimedio, per evitarlo si può solo usare un maggior numero di bit.

4.5. NUMERI INTERI

I numeri interi sono un’estensione dei numeri naturali (1, 2, 3) che include lo zero e tutti i valori negativi della forma – ᡀ, essendo ᡀ un naturale. La rappresentazione dei numeri interi fa sorgere il problema, in un elaboratore, del come rappresentare il segno meno e del come rendere semplice l’esecuzione delle operazioni. Per risolvere tale problema sono possibili due tipi di rappresentazione:  rappresentazione in modulo e segno: semplice ed intuitiva ma inefficiente e complessa nella gestione delle operazioni;  rappresentazione in complemento a due: meno intuitiva, costruita ad hoc, però rende semplice la gestione delle operazioni.

4.5.1. Rappresentazione in modulo e segno

Questa rappresentazione usa un bit per rappresentare esplicitamente il segno (es: 0 = +, 1 = -) e usa poi gli altri bit disponibili per rappresentare il valore assoluto come binario puro. Esempio:  8 bit (MSB = segno, bit 6 … bit 0 = valore assoluto)  -2 → 1 0000010  +5 → 0 0000101 L’adozione di tale rappresentazione fa sorgere alcuni problemi:  segno completamente disgiunto dal valore assoluto;  il valore 0 ha due distinte rappresentazioni (1 0000000 = “-0” e 0 0000000 = “+0”);  non permette di usare direttamente gli algoritmi già noti per eseguire le operazioni;  con le usuali regole di calcolo non è vero che X + (-X) = 0:

4.6. NUMERI REALI

I numeri reali sono un sovra insieme dei numeri interi. La loro rappresentazione è detta rappresentazione in mantissa e resto.

4.6.1. Rappresentazione in mantissa e resto

Dati un numero reale ᡈ, una base ᠨ e un naturale ᡦ, è sempre possibile rappresentare il valore reale ᡈ come somma di due contributi, di cui il primo costituito da esattamente ᡦ cifre: ᡈ = ᡥ ∗ ᠨ〲うぃ^ + ᡰ ∗ ᠨ〲うぃ⡹ぁ dove ᡥ è la mantissa, ᡰ è il resto e ᡗᡱᡨ è un esponente (intero). Esistono infinite triple (ᡥ, ᡰ, ᡗᡱᡨ) in grado di rappresentare, a parità di ᡦ, lo stesso valore reale ᡈ. Si è scelto, convenzionalmente, di normalizzare la mantissa la quale:

 deve appartenere all’intervallo 1 㐕ᠨ ≤ ᡥ < 1;  deve avere la prima cifra diversa da zero. Ad esempio, se ᡈ = 31.4357, ᠨ = 10 e ᡦ = 4 si avrà: Scomposizione m r esp , 3143 ∗ 10 ⡰^ + , 57 ∗ 10 ⡰⡹⡲^ m^ =^.^3134 r^ =^.^57 esp^ =^2 La scelta di normalizzare la mantissa è una scelta efficiente perché sfrutta tutte le ᡦ cifre disponibili per la mantissa senza sprecarle per zeri iniziali che non portano vera informazione.

4.6.2. Numeri reali in un elaboratore

In un elaboratore, la rappresentazione dei numeri reali deve necessariamente essere finita, ma rappresentare esattamente in forma finita una generico valore reale è impossibile: la rappresentazione dei valori reali è generalmente approssimata. La scelta è quella di assumere come rappresentazione di ᡈ il solo contributo ᡥ ∗ ᠨ〲うぃ^ trascurando il secondo contributo ᡰ ∗ ᠨ〲うぃ⡹ぁ^ che rappresenterà la frazione troncata.

5. IL MODELLO DI VON NEUMANN

5.1. HARDWARE E SOFTWARE

Il calcolatore elettronico o “computer” è una strumento per la rappresentazione, l’elaborazione e la memorizzazione delle informazioni. Il computer lavora partendo da informazioni in ingresso (input), la elabora in base ad una serie di regole (un programma), e restituisce informazione in uscita (output). La quasi totalità dei computer oggi utilizzati è digitale, lavora cioè con informazioni rappresentate in forma numerica. La prima decomposizione di un calcolatore intenso nella sua globalità è relativa alle seguenti macro- componenti:  Hardware: la struttura fisica del calcolatore, costituita da componenti elettronici ed elettromeccanici;  Software: l’insieme dei programmi che consentono all’hardware di svolgere i vari compiti.

5.1.1. Macchine reali e macchine virtuali

L’hardware è l’unica macchina reale, mentre i vari strati software corrispondono a macchine virtuali. Le operazioni (istruzioni) che l’hardware sa eseguire direttamente costituiscono il linguaggio macchina del calcolatore. Il software ha lo scopo di mostrare ai suoi utenti il calcolatore come una macchina virtuale, più semplice da usare rispetto all’hardware sottostante.

5.1.2. Codifica delle informazioni

Per eseguire un programma in un calcolatore è necessario rappresentare sia i dati sia le istruzioni in un formato tale che l’esecutore automatico sia in grado di memorizzare e manipolare istruzioni e dati. Le informazioni gestite dai sistemi di elaborazione devono essere quindi codificate in un qualche modo per poter essere memorizzate, elaborate, scambiate, ecc…

5.2. HARDWARE (IL MODELLO DI VON NEUMANN)

L’elaboratore elettronico, inventato in realtà da Atanasoff, è basato sul modello che va sotto il nome di “Macchina di Von Neumann” definito verso la fine degli anni ’40 all’Instituto di studi avanzati di Princeton da John Von Neumann. Le sue caratteristiche sono:  elettronica;  digitale;  a programma memorizzato. L’idea di base è di memorizzare nella macchina non solo i dati, ma anche le istruzioni, e di trattare dati ed istruzioni in forma numeri e di esprimere questi in forma binaria. La macchina ideata da Von Neumann è in sostanza un elaboratore che lavora in maniera sequenziale, interpretando cioè una alla volta le istruzioni contenute in un programma ed applicandole ai dati forniti dall’operatore o che la macchina va prendere nella propria memoria. Questo rende la macchina automatica e soprattutto generale (all-purpose) nel senso che l’elaborazione da eseguire non è predeterminata, ma dipende dalle istruzioni che inseriremo ed utilizzeremo.

 il registro dei dati di memoria (Memory Data Register, MDR), che contiene il dato dalla locazione di memoria selezionata o il dato che si vuole memorizzare nella locazione di memoria selezionata;  il contatore di programma (Program Counter, PC);  il registro della istruzione corrente (Instruction Register, IR), che contiene l’istruzione da decodificare ed eseguire;  il registro di stato (Program Status Register, PSR), che contiene informazioni sullo stato di funzionamento della macchina.

5.3.2. Controllo ed elaborazione

Le istruzioni del linguaggio macchina corrispondono ad operazioni elementari di elaborazione. Un calcolatore sa svolgere, in modo molto efficiente, poche tipologie di operazioni elementari, tale elaborazione dei dati viene svolta dall’unità aritmetico-logica (A.L.U.) che è un componente della CPU. Il coordinamento tra le varie parti del calcolatore è svolto dall’unità di controllo (CU). Il controllo consiste nel coordinamento dell’esecuzione temporale delle operazioni sia internamente all’unità di elaborazione sia negli altri elementi funzionali. Esso avviene in modo sincrono rispetto alla scansione temporale imposta dall’orologio del sistema (clock).

L’unità di controllo del microprocessore esegue una istruzione svolgendo le seguenti tre operazioni di base:  fetch (lettura);  decode (decodifica);  execute (esecuzione).

Un programma viene eseguito reiterando il ciclo fetch-decode-execute, detto ciclo macchina, per svolgere ordinatamente le sue istruzioni. Ad ogni impulso di clock si esegue un ciclo macchina, ne consegue che la velocità di un microprocessore dipende dalla frequenza del suo clock, ma non solo poiché l’esecuzione di un’istruzione può richiedere più cicli.

5.4. LA MEMORIA

La memoria è quell’insieme di dispositivi aventi la funzione di memorizzare (mantenere nel tempo) programmi e dati. Per eseguire in modo efficiente i programmi, la memoria dovrebbe essere:  molto veloce;  molto capiente;  permanente. In un sistema di elaborazione ci sono sempre due tipi di memoria:  la memoria centrale, interna al calcolatore, direttamente accessibile dalla CPU;  la memoria secondaria o di massa, esterna al calcolatore.

5.4.1. La memoria centrale

La memoria centrale è la memoria interna al calcolatore, direttamente accessibile dalla CPU e contiene di dati e i programmi per l’elaborazione dei dati. Essa è un insieme finito di locazioni (celle o registri) di uguali dimensioni, ogni locazione di memoria consta di ᡦ bit ed è caratterizzata da un indirizzo e dal contenuto. L’indirizzo di una locazione è la posizione che questa occupa nella memoria rispetto alla prima locazione che ha indirizzo 0. Il contenuto di una locazione, invece, è l’informazione in essa registrata. La memoria centrale è caratterizzata dalla lunghezza di una parola di memoria e dalla capacità, ovvero dal numero totale di locazioni di memoria. Alla memoria centrale si accede per effettuare operazioni di lettura o scrittura. Ciascuna locazione di memoria può essere selezionata specificando il suo indirizzo nel registro degli indirizzi (MAR, Memory Address Registrer). La memoria centrale a cui ci siamo riferiti fino ad ora viene anche detta RAM (Random Access Memory). La RAM è volatile ovvero in assenza di alimentazione elettrica perde il suo contenuto. Una porzione di memoria centrale, identificata con il termine ROM (Read Only Memory) è riservata solo per operazioni di lettura. La ROM è realizzata con diversa tecnologia e viene usata dai costruttori per memorizzare in modo permanente informazioni necessarie per l’avviamento del sistema (firmware).

5.4.2. Memoria ROM (Read Only Memory)

Le ROM si distinguono a seconda della tecnologia usata per memorizzare le informazioni iniziali in:  EROM (Erasable ROM), che sono ROM cancellabili;  PROM (Programmable ROM), che sono ROM programmabili;  EPROM (Erasable and Programmable ROM), che sono ROM cancellabili e programmabili. Il software contenuto nelle ROM, per distinguerlo da quello contenuto nella RAM, viene chiamato firmware. Fa parte del firmware, ad esempio, il BIOS, cioè quel gruppo di istruzioni che consente ai diversi processori di attivarsi all’accensione del computer, di effettuare un auto-test di funzionamento e di caricare nella RAM il sistema operativo, presente sul disco rigido, a cui viene ceduto il controllo del sistema.

6. TECNOLOGIA DEL PERSONAL COMPUTER

6.1. TIPI DI COMPUTER

Non tutti i computer sono uguali, ne esistono di diverse categorie a seconda della loro potenza o del loro utilizzo:  i personal computer sono sistemi monoutente, i computer che abbiamo generalmente sulla scrivania e in casa;  le workstation possono essere utilizzati contemporaneamente da diversi utenti attraverso i terminali;  i server sono computer che servono ovvero che forniscono dei servizi generalmente fruibili attraverso altri computer ad essi collegati.

6.2. IL BUS

Come sappiamo, il bus è il canale fisico che mette in comunicazione le varie componenti del calcolatore. Periferiche diverse possono usare tipi di bus diversi, a seconda della velocità di trasmissione di dati richiesta:  la memoria centrale ha bisogno di un canale più veloce rispetto alle periferiche;  oltre al bus di sistema, i PC di oggi sono forniti anche di un insieme di bus locali che collegano le periferiche alla CPU.

È possibile identificare una gerarchia di bus:  bus per la memoria e dispositivi performanti (PCI, AGP);  bus con periferiche a basse prestazioni (USB, FireWire, IDE/ATA). I bus sono interconnessi tramite device dedicati detti chipset:  SouthBridge collega bus ad alte prestazioni con gli altri BUS;  NorthBridge collega CPU e RAM al PCI (controllore del sistema).

6.2.1. Interfacce e Porte di comunicazione

Un’interfaccia è quella parte hardware volta a collegare fra loro i componenti di un sistema informatico, mentre la porta di comunicazione è un interfaccia tra il PC e il mondo esterno. Le interfacce sono moltissime, di svariati usi, con prestazioni diverse:  ISA (Industry Standard Architecture Bus);  PCI (Peripheral Component Interconnect Bus);  AGP (Accelerated Graphic Port);  PCI-X;  PCI Express;  IDE (Integrated Drive Electronics);  SCSI (Small Computer System Interface);  Serial ATA (SATA);  USB (Universal Serial Port);  FireWire (IEEE 1394).

6.3. PERIFERICHE

Ogni periferica è costituita da 3 componenti:  device, il dispositivo fisico;  controller, la componente elettronica di controllo (chip) che riceve i comandi dal processore e li impartisce al dispositivo fisico;  device driver, il componente software in dotazione col dispositivo che deve essere installato in memoria (diventa a tutti gli effetti parte del sistema operativo) al fine di consentire il corretto funzionamento del dispositivo. Le periferiche sono connesse all’elaboratore attraverso le porte di comunicazione.

6.4. MEMORIA

Come già sappiamo, la memoria è quell’insieme di dispositivi aventi la funzione di memorizzare (mantenere nel tempo) programmi e dati. I tipi di memoria sono due: la memoria RAM (Random Access Memory) e la memoria ROM (Read Only Memory).

6.4.1. Tipi di memoria RAM

La memoria RAM è di varie tipologie:  DRAM (Dynamic RAM): è chiamata dinamica in quanto le celle di memoria mantengono i dati solo per brevissimo tempo;  SRAM (Static RAM): sono in grado, con una minima tensione elettrica, di far permanere i dati all’interno della loro cella;  SDRAM (Syncrhronous DRAM): sono in grado di sincronizzarsi con il clock della CPU risultando molto più veloci delle DRAM;  SDRAM DDR (Double Data Rate): si tratta di un tipo particolare di SDRAM, che utilizzano entrambi i fronti di clock, ascendente e discendente.