Sei sulla pagina 1di 105

RIASSUNTI DI INFORMATICA

INFORMATICA = INFORmazioneautoMATICA
L’informatica è la scienza che si occupa della creazione,
raccolta, rappresentazione, elaborazione e immagazzinamento
dell’informazione mediante un insieme di processi e tecnologie
che rendono possibile compiere tali operazioni attraverso metodi
automatici.
Il computer ha modificato profondamente la nostra vita, sotto
molti punti di vista (sociale, lavorativo…). Sono sorti nuovi
settori industriali; alcuni lavori, una volta necessari, sono
improvvisamente o gradualmente mutati nella modalità di
svolgimento o addirittura divenuti futili.
L’informatica viene identificata in diversi modi:
-I.C.T.(Information & Communication Technologies), ovvero
Tecnologie dell’Informazione e della Comunicazione; -
I.T.(Information Technology), si occupano degli strumenti e dei
metodi che occorrono per: CREARE, RAPPRESENTARE,
CONSERVARE, ELABORARE, TRASMETTERE
l’informazione con l’aiuto del computer e delle tecnologie
connesse.
Prima dell’avvento delle I.C.T. le attività umane venivano gestite
manualmente con l’ausilio di supporti cartacei. Con
l’introduzione delle I.C.T. si è avuto un notevole balzo in avanti,
in quanto è stato possibile: accelerare l’esecuzione delle
operazioni mediante procedure automatiche, cominciare a
pensare a una razionalizzazione interna dell’azienda o
dell’amministrazione interessata.
DIFFERENZA FRA “DATO” E “INFORMAZIONE”
Un dato rappresenta qualcosa che “è immediatamente presente
alla conoscenza, prima di ogni forma di elaborazione”. In
informatica, i dati rappresentano “elementi di un’informazione
costituiti da simboli (numeri, lettere) che devono essere
elaborati, per lo più elettronicamente, secondo un determinato
programma”. I dati rappresentano un insieme di valori, che di per
sé non portano molta conoscenza.
I dati “puri” non portano, dunque, molta conoscenza; i dati
interpretati e correlati forniscono invece informazione.
Un’ informazione, invece, rappresenta una notizia, un dato o un
elemento che consente di avere conoscenza più o meno esatta di
fatti, situazioni, modi di essere.

DATI:
numeri, suoni, video o
fotografie

ELABORAZIONE

INFORMAZIONI:
lettere, tabelle e presentazioni
multimediali

Le I.C.T. memorizzano le informazioni e le usano come dati per


calcolare ulteriori informazioni; ma le I.C.T. servono anche per
organizzare e gestire le informazioni.
TIPI DI DATI
• NUMERI: sono stati i primi dati a essere elaborati dai
computer, prima per scopi militari e poi per le grandi aziende.
• PAROLE: possono essere elaborate in tanti contesti diversi
quali lettere, libri, articoli di giornale, presentazioni, ecc.
• GRAFICI: utilizzati essenzialmente con lo scopo di rendere
più comprensibile una tabella di dati o di insiemi numerici.
• FOTOGRAFIE: possono essere elaborate, memorizzate e
usate in presentazioni multimediali.
• SUONI: musica, voce, effetti sonori possono essere elaborati e
memorizzati.
• VIDEO: anche i video come i suoni, possono essere elaborati e
memorizzati.
I dati sono una risorsa importante per l’organizzazione che li
gestisce. Essi, dunque, rappresentano un patrimonio significativo
da proteggere. I dati, cioè, sono più importanti delle procedure
che li gestiscono. Le procedure possono cambiare, ma le nuove
procedure utilizzeranno i dati esistenti, che quindi dovranno
migrare da una procedura ad un’altra.

IL SUPPORTO
La stessa informazione può essere scritta su supporti diversi.
L’informazione richiede dunque un supporto fisico, ma non
coincide con esso. Distinguere tra informazione e supporto fisico
vuol dire distinguere tra unità logiche e unità fisiche.

RAPPRESENTAZIONE
Rappresentazione: relazione tra entità. In un determinato
contesto, un determinato oggetto può essere “sostituito”, ovvero
rappresentato, da un altro oggetto.
L’oggetto originario viene detto rappresentato. L’oggetto
utilizzato al suo posto viene detto rappresentante. Uno stesso
oggetto può essere rappresentato da più rappresentanti.
Una rappresentazione viene effettuata perché si vuole
raggiungere un determinato scopo, oppure perché devono essere
soddisfatti dei vincoli.

LIVELLI DI RAPPRESENTAZIONE
Un’ informazione può essere rappresentata a diversi livelli, e più
precisamente a bassi livelli e ad alti livelli. Un livello di
rappresentazione alto è più vicino alla rappresentazione umana.
Al contrario, un livello di rappresentazione basso è più vicino al
sistema di elaborazione.

ELABORAZIONE
Elaborare un’informazione vuol dire:
1–Acquisire dati dall’esterno (INPUT)
2–Effettuare operazioni su tali dati (ELABORAZIONE)
3–Restituire all’esterno il risultato ottenuto (OUTPUT)
L’elaborazione dei dati non è altro che una parte di un processo
ben più complesso, denominato ciclo di elaborazione
dell’informazione.
ALGORITMO
Per poter elaborare un’informazione (cioè per poter passare da
un input a un output) è necessario compiere una serie di
operazioni, ovvero una sequenza di passi: l’algoritmo
rappresenta tale sequenza, che porta alla realizzazione di un
compito. Più precisamente: un algoritmo è una sequenza finita di
istruzioni che, se eseguite, svolgono un determinato compito.

PROPRIETÀ DELL’ ALGORITMO


L’algoritmo deve godere delle seguenti proprietà:
• Deve essere finito, cioè costituito da un numero limitato di
passi (ciò vuol dire che le istruzioni sono e vengono eseguite in
numero finito.
• Deve essere definito (cioè non ambiguo): ciò vuol dire che
ogni sua istruzione deve essere elementare e deve consentire
un’interpretazione univoca.
• Deve essere eseguibile, cioè la sua esecuzione deve essere
possibile con gli strumenti di cui si dispone.
• Deve essere deterministico: a ogni passo deve essere definita
una e una sola operazione successiva.
• Deve essere generale: un algoritmo, infatti, deve poter
risolvere una classe di problemi, e quindi la sua descrizione non
cambia quando vengono modificati i dati. Ciò vuol dire che un
algoritmo deve essere indipendente dai dati forniti in ingresso.

LINGUAGGI DI PROGRAMMAZIONE
I linguaggi di programmazione sono dei particolari linguaggi
che servono per poter codificare gli algoritmi. Essi specificano
un insieme di istruzioni che possono essere usate per produrre
dati in output. Fino agli anni ‘50 si usava il cosiddetto
linguaggio macchina. Successivamente sono stati usati altri tipi
di linguaggi, come ad esempio:
• Assembly • FORTRAN(1957) • Lisp(1959) • ALGOL(1960)
• BASIC(1964) • Simula(1967) • Prolog(1972) • Linguaggi a
oggetti(Smalltalk(1983),Eiffel(1986),C++(1986),JAVA(1995))
.
IL COMPUTER
Il computer è un contenitore che svolge delle operazioni sulle
informazioni. Esso, cioè, svolge lavori prevalentemente di tipo
intellettivo, come: -Calcolare -Memorizzare -Elaborare.
 È detto elaboratore in quanto è una macchina in grado di
rappresentare ed elaborare dati in base a una serie di istruzioni.
 È detto elettronico in quanto utilizza componenti elettronici.
 È detto digitale in quanto elabora e memorizza informazioni
rappresentate mediante i due simboli (digit) della numerazione
binaria: 0 e1.
Il computer rappresenta un sistema, cioè un insieme di parti
correlate tra loro che operano in modo congiunto per svolgere
una determinata funzione. Le componenti di un computer,
dunque, sono integrate opportunamente con lo scopo di
perseguire obiettivi comuni. Il sistema computer opera ad
altissima velocità e con un alto grado di precisione.

L’HARDWARE
In un computer, l’hardware è rappresentato da tutto ciò che si
può vedere, sentire e toccare. L’hardware è dunque rappresentato
dalle componenti fisiche, elettroniche del computer. Il mouse, il
monitor, la tastiera, un chip rappresentano l’hardware così come
l’unità centrale, il lettore CD-ROM, il disco fisso.

IL SOFTWARE
Il software è invece l’insieme dei programmi che permettono il
funzionamento dell’hardware. È scritto da persone specializzate
in informatica, dette programmatori.
Il software rappresenta la “mente” del computer ed è distinto in
software di sistema e software applicativo.
Il software di sistema racchiude in sé il software di base
(necessario per far funzionare il computer) ed è utilizzato dai
programmatori per facilitare il loro stesso lavoro (es. i linguaggi
di programmazione).
Il software applicativo comprende invece i programmi utilizzati
dagli utenti per: gestire la propria posta elettronica, redigere una
mail, stendere una relazione, visualizzare o modificare le foto,
ecc. -i programmi creati appositamente per risolvere specifici
problemi.
Il software di base è il sistema operativo che: interpreta, esegue
comandi elementari e traduce i comandi dei software applicativi
in operazioni della macchina. Esso organizza la struttura della
memoria di massa e ripartisce le risorse del sistema tra gli utenti.
Tra i software applicativi vi sono: programmi di video scrittura
(wordprocessor); programmi di presentazione; programmi di
presentazione; programmi di grafica; fogli elettronici; sistemi per
la riproduzione/archiviazione di musica e video; programmi per
la gestione della contabilità.
SOFTWARE DI BASE E SOFTWARE APPLICATIVI
In definitiva, il software di base (cioè il sistema operativo)
gestisce l’hardware, mentre i software applicativi svolgono le
operazioni.

SOFTWARE: UNA COSA DA TENERE BEN PRESENTE


In definitiva, il software è la “mente” del computer. Occorre però
ricordare che UN COMPUTER SA FARE SOLO CIÒ CHE GLI
VIENE INSEGNATO. Di conseguenza, un computer non è in
grado di creare in maniera autonoma. D’altra parte un software è
composto da algoritmi che rappresentano sequenze finite di
istruzioni che il computer deve eseguire, quindi il computer
“agisce” all’interno di un determinato schema.

IL SISTEMA INFORMATIVO
I sistemi più piccoli vanno a costituire sistemi che diventano via
via sempre più grandi.

LA RAPPRESENTAZIONE DELL’INFORMAZIONE NEL


COMPUTER
I fenomeni che si verificano in natura sono fenomeni analogici,
cioè sono costituiti da grandezze fisiche variabili con continuità.
Il corpo umano percepisce segnali analogici, ovvero segnali che
trasportano informazioni di tipo analogico. Le informazioni
analogiche sono rappresentabili come onde; ad esempio: le
nostre parole, il fischio di un treno, i rintocchi di una campana, il
suono di un violino ecc. sono trasportati da onde sonore, così
come tutto ciò che vediamo è trasportato verso di noi da onde
luminose.
Quando consideriamo un’onda, ogni sua parte trasporta delle
informazioni. Di un’onda riusciamo a percepire tutti gli infiniti
valori intermedi. Dire che un segnale è di tipo analogico vuol
dire dunque che esso è composto da infiniti valori che variano in
modo continuo. Ciò vuol dire che se consideriamo due qualsiasi
valori, ad es.
A = 7,4 e B = 3
esiste sempre un valore C, intermedio tra A e B:
𝐴 + 𝐵 7,4 + 3,2
𝐶= = = 5,3
2 2

Il computer (elaboratore elettronico digitale) non è in grado di


elaborare informazioni in formato analogico, data la loro enorme
complessità. È invece in grado di elaborare informazioni in
formato digitale. Per poter fare ciò, occorre però trasformare le
informazioni analogiche in informazioni digitali. Si introduce,
cioè, il concetto di rappresentazione digitale
dell’informazione

SENSIBILITÀ DEI VALORI ANALOGICI


I valori analogici sono sensibili alle interferenze. Quando un
elemento analogico muta, muta anche l’elemento che lo
rappresenta.

LA RAPPRESENTAZIONE DIGITALE
DELL’INFORMAZIONE
I fenomeni naturali sono di carattere analogico, ma nel tempo
l’uomo ha cominciato a introdurre grandezze “di tipo” digitale,
che cioè non variano con continuità. continuità. Esempio:
l’insieme N dei numeri naturali 0, 1, 2, 3, …che rappresenta i
numeri usati per contare e ordinare; l’insieme delle monete o
delle banconote di un determinato Stato.
Un insieme finito di valori (cioè un insieme cosiddetto discreto)
è poco sensibile alle interferenze; infatti è più semplice
identificare, senza commettere errori, un determinato numero tra
un numero finito di valori piuttosto che tra un numero infinito di
valori. La rappresentazione digitale è una rappresentazione
discreta.

SEGNALE ANALOGICO E SEGNALE DIGITALE


Mentre un segnale analogico trasporta informazioni che
contengono un minimo, un massimo e tutti i valori intermedi e
ciò lo rende sensibile alle interferenze, al
contrario, un segnale digitale è un
particolare tipo di segnale che
contiene solo due stati:
ACCESO/SPENTO, oppure
SI/NO, oppure VERO/FALSO. Ciò fa sì
che un segnale digitale sia più facilmente distinguibile rispetto a
un segnale analogico, e dunque in definitiva risenta meno delle
interferenze.

ANALOGICO E DIGITALE. ESEMPIO: OROLOGIO


L’orologio analogico mostra l’ora attraverso la posizione delle
lancette. Ogni lancetta si muove con continuità e indica uno
degli infiniti punti sulla circonferenza del quadrante.
L’orologio digitale mostra l’ora attraverso numeri (cioè cifre)
che avanzano “a scatti” e indicano solo uno dei 1440 minuti che
compongono una giornata di 24 ore.
ANALOGICO E DIGITALE. ESEMPIO: TERMOMETRO
Il termometro analogico mostra gli infiniti valori che la
temperatura assume man mano che la colonnina di mercurio
avanza lungo la scala graduata.
Il termometro digitale mostra la temperatura attraverso numeri
(cioè cifre) che avanzano “a scatti” (senza mostrare, ad esempio,
tutti i valori intermedi tra 37,2 e 37,3).

ESEMPIO DIDIGITALE. INTERRUTTORE ON/OFF


Condizione necessaria perché un supporto possa portare
informazione è che esso possa assumere configurazioni
differenti, a ognuna delle quali venga associata una differente
entità di informazione. Il supporto fisico deve dunque poter
identificare delle differenze (ad es. si vogliono rappresentare 2
alternative). Questa è una prima condizione.
Alla prima configurazione (interruttore ON) vogliamo
associare una certa entità di informazione (es. esame superato).
Alla seconda configurazione (interruttore OFF) vogliamo
associare una diversa entità di informazione (es. esame non
superato).
Per interpretare le differenti configurazioni assunte dal supporto
in termini di entità di informazione, occorre conoscere il codice
che a ogni configurazione ammessa del supporto associa
un’entità di informazione. Nel momento in cui viene definito un
codice vuol dire che è possibile definire in modo non ambiguo
l’insieme delle possibili configurazioni del supporto e l’insieme
delle possibili entità di informazione alle quali ci si intende
riferire. Una seconda condizione da rispettare è che debba essere
condivisa una regola per poter attribuire un significato a ogni
configurazione.

LA CODIFICA
Da quanto detto si deduce che l’informazione sullo stato
dell’interruttore corrisponde alla scelta tra due sole alternative.
Definire un codice vuol dire associare gli elementi di due
insiemi, uno che rappresenta le possibili configurazioni e l’altro
che rappresenta le entità di informazione associate a tali
configurazioni.

DIGITALIZZAZIONE DI UN SEGNALE ANALOGICO


Poiché il nostro mondo è analogico, mentre il mondo del
computer è digitale, qualsiasi dato, per poter essere trattato da un
computer, deve prima essere trasformato. Questa operazione di
trasformazione è detta digitalizzazione. Essa avviene in due
fasi: campionamento e quantizzazione.

CAMPIONAMENTO
Consiste nella suddivisione del segnale in parti o intervalli
discreti, tutti della stessa grandezza. Nel caso di immagini, si
considera il numero di punti (pixel) in un intervallo di spazio.
Nel caso di suoni, si considera il numero di suoni in un intervallo
di tempo.

QUANTIZZAZIONE
Si misura il segnale di ogni sottointervallo, ottenendo un unico
valore che rappresenta l’intero sottointervallo. A priori viene
fissato il cosiddetto livello di quantizzazione, cioè il numero di
valori differenti che tale configurazione può assumere. In tal
modo si riesce a passare dall’analogico al digitale, cioè dagli
infiniti valori del segnale continuo di ogni sottointervallo,
all’unico valore che rappresenta l’intero sottointervallo.

ERRORE DI QUANTIZZAZIONE
Il passaggio da analogico a digitale è un processo che introduce
inevitabilmente degli errori di rappresentazione del segnale
originario (analogico). In particolare, quando si effettua la
quantizzazione si introducono 2 errori: tutti i valori presenti in un
intervallino vengono approssimati con la loro media
approssimativa; tale media viene a sua volta approssimata al più
vicino valore conosciuto dal computer.

PRIMO ERRORE DI QUANTIZZAZIONE


Il primo errore di quantizzazione è dovuto al fatto che occorre
rappresentare dei valori continui (quelli contenuti nel
sottointervallo) con un unico valore che li rappresenti tutti. Ciò
vuol dire effettuare una media dei valori continui di partenza.
Quando si effettua una media, si perde inevitabilmente
informazione.

ESEMPIO
Consideriamo 4 persone alte rispettivamente 165, 170, 175 e 180
cm. L’altezza media del gruppo è data da:
165 + 170 + 175 + 180
= 172,5 𝑐𝑚
4
Tale valore non rappresenta affatto l’intero gruppo e non
corrisponde all’altezza di nessuna persona considerata.

SECONDO ERRORE DI QUANTIZZAZIONE


Il secondo errore di quantizzazione è dovuto al fatto che occorre
approssimare la media di un intervallino con un numero finito di
valori, e tale numero può non corrispondere al valore medio. Nel
caso dell’esempio precedente, se vogliamo esprimere l’altezza
delle persone approssimandola al centimetro, il valore della
media, che era 172.5 cm, va arrotondato a 173 cm. In tal modo è
andata perduta un’ulteriore frazione di informazione.
ANALOGICO VS DIGITALE
Da quanto detto si evince che il digitale è un’approssimazione
dell’analogico. Tuttavia, a un primo impatto, i dati digitali
sembrano più fedeli (nonché più “puliti”) di quelli analogici. Ciò
è dovuto essenzialmente al fatto che i nostri sensi non sono in
grado di percepire tutti i dettagli di una grandezza analogica. Ad
esempio: non siamo in grado di percepire tempi nell’ordine del
miliardesimo di secondo; non siamo in grado di percepire tutti i
colori presenti in natura né discendere a un livello di dettaglio
molto alto.
La rappresentazione digitale consente invece di ottenere una
precisione di dettagli illimitata. Se si agisce, infatti, sul livello di
quantizzazione, è possibile scendere a dettagli di
rappresentazione infinitesimi. Ad esempio, i cronometri
elettronici misurano i tempi di arrivo con esattezze che giungono
al millesimo di secondo, o ancora, i microscopi elettronici
riescono a vedere dentro la materia con ingrandimenti
dell’ordine di miliardi di volte.
Accanto a tali considerazioni, si aggiunga che quando si opera
con un campionamento elevato, cioè quando si scompone il
segnale in parti molto piccole, i nostri sensi, proprio perché non
riescono a giungere a un livello di dettaglio così elevato,
vengono tratti in inganno e percepiscono il segnale come se esso
fosse analogico e non digitale. Questo è il motivo per cui la
musica ascoltata su un supporto quale il CD sembra essere
trasmessa in modo più fedele rispetto a quella registrata su un
LP, oppure la stampa di una fotografia sembra catturare più
dettagli di quelli che in realtà sono presenti sulla scena.
Si è detto che i segnali analogici risentono molto delle
interferenze, rispetto ai segnali digitali. Questa diversa sensibilità
la possiamo percepire nitidamente quando trovandoci, ad
esempio, in un ambiente abbastanza rumoroso, cerchiamo di
seguire una conversazione e magari ci riusciamo con grande
difficoltà. Per un dispositivo che utilizza segnali digitali, cioè
segnali che possono assumere solo i valori 0 oppure 1, è più
semplice distinguere questi due stati; per cui ogni informazione
estranea al messaggio digitale non influisce sul segnale stesso, o
comunque influisce in misura molto contenuta.
Altro aspetto da considerare è che in campo analogico
informazioni diverse sono necessariamente rappresentate in
modo diverso (scrittura, foto, suoni, video, ecc.), trattati con
diverse apparecchiature (macchine da scrivere, macchine
fotografiche, giradischi, mangianastri, videoregistratori, ecc.),
nonché conservate su supporti diversi (fogli di carta, pellicole
fotografiche, dischi in vinile, videocassette, ecc.). In campo
digitale, invece, informazioni di tipo diverso sono rappresentate
mediante un unico linguaggio (quello dei bit), trattate tutte
mediante un unico strumento (il computer) e memorizzate tutte
su un unico supporto (ad esempio l’hard disc),
indipendentemente dal tipo di dato trattato.

CONVERGENZA AL DIGITALE
Quasi tutte le informazioni e le conoscenze del genere umano
possono essere portate in formato digitale. La convergenza al
digitale è dunque il progressivo processo di trasferimento verso
il digitale di informazioni legate a supporti diversi. Ciò consente
di unificare i supporti, ma anche di unificare le tecnologie di
produzione e gli strumenti che trattano tali dati (cioè i computer).
La convergenza al digitale consente di gestire, manipolare e
immagazzinare tutta una serie di informazioni originariamente
diverse (lettere, suoni, video ecc.): usando tecniche molto simili;
distribuendo rapidamente tali informazioni (a costi quasi nulli);
modificando facilmente un oggetto; integrando facilmente
oggetti di tipo diverso (ad esempio inserendo una scritta in una
foto come commento, oppure una foto in un documento di testo,
ecc.).

INFORMAZIONE DIGITALE BINARIA


La quantizzazione deve essere seguita dalla trasformazione del
segnale digitale in binario. All’interno di un computer, infatti,
l’informazione è presente nel suo formato più elementare, che è
il formato binario: esso può assumere solo uno stato, tra i due
possibili, ovvero: acceso e spento.

Si è già detto, infatti, che è più semplice identificare, senza


commettere errori, un determinato numero tra un numero finito
di valori piuttosto che un determinato numero tra un numero
infinito di valori.
IL CONCETTO DI INFORMAZIONE BINARIA
Se pensiamo all’informazione come al contenuto di un
messaggio che viene inviato da una sorgente a un ricevente e se
immaginiamo che la sorgente possa emettere un insieme di
messaggi, allora acquisire un’informazione equivale a ricevere
un messaggio tra tutti quelli possibili. Se però la sorgente può
emettere solo 2 messaggi differenti, l’informazione è detta
binaria. Un computer è in grado di trattare solo informazioni
rappresentate in binario.

LA RAPPRESENTAZIONE DELL’INFORMAZIONE
BINARIA
Un’informazione binaria può essere rappresentata in vari modi, e
alcune rappresentazioni risultano più agevoli di altre. Per poter
rappresentare un’informazione binaria occorre disporre di un
alfabeto con due simboli, a cui vengono associati i due valori
dell’informazione binaria. Esempio: si disponga di due simboli
alfanumerici distinti:
‘0’/’1’, ‘a’/’b’ ...

Supponiamo, ad esempio, di voler “rappresentare” (cioè scrivere


su un foglio di carta) lo stato di luminosità di una stanza ogni 10
minuti, a partire dalle ore 20:00 fino alle ore 21:00. Sappiamo
che la luce in una stanza può trovarsi in due soli stati: SPENTA/
ACCESA. Poiché siamo interessati a rappresentare la variazione
nel tempo della luminosità della stanza, è opportuno utilizzare
una rappresentazione scritta del fenomeno, convenendo che
0: luce spenta 1: luce accesa
Con queste premesse, a partire dal momento iniziale,
rappresentato dalle ore 20:00, ogni 10 minuti scriviamo 0 e 1 in
base allo stato di luminosità della stanza:
 Ore 20:00 luce spenta (0)
 Ore 20:10 luce accesa (1)
 Ore 20:20 luce accesa (1)
 Ore 20:30 luce spenta (0)
 Ore 20:40 luce spenta (0)
 Ore 20:50 luce accesa (1)
 Ore 21:00 luce spenta (0)
La rappresentazione scritta del fenomeno può allora essere la
seguente:
0110010

BIT
L’unità di misura dell’informazione è il BIT (che deriva da
BInarydigiT). Il BIT corrisponde alla quantità di informazione
fornita dalla scelta fra due sole alternative, ugualmente probabili.
Un BIT può assumere come valori solo 0 e 1.

LA RAPPRESENTAZIONE DIINFORMAZIONI
COMPLESSE
Quando l’informazione è più complessa di quella binaria, ovvero
quando la scelta ricade tra più di due alternative, occorre
costruire parole concatenando più di 1 bit.
Esempio: si voglia rappresentare il risultato di una partita
giocata tra la squadra A e la squadra B. Se la partita non può
terminare con un pareggio (es. eliminatoria diretta):
0 vuol dire che ha vinto A 1 vuol dire che ha vinto B
Se invece può terminare anche con un pareggio:
00 vuoldirepareggio0-0 11 vuol dire pareggio con reti
10 vuol dire che ha vinto A 01 vuol dire che ha vinto B

Esempio: si vogliano rappresentare le luci di un semaforo,


mediante una codifica con 3 bit.
 100 vuol dire che la luce ROSSA è ACCESA, la gialla e la
verde sono spente
 010 vuol dire che la luce rossa è spenta, la GIALLA è
ACCESA e la verde è spenta
 001vuol dire che la luce rossa è spenta, la gialla è spenta e la
VERDE è ACCESA
Vi è però un metodo alternativo, più efficiente, che consiste nel
codificare con 2 bit tenendo presente che i possibili messaggi di
un semaforo sono 4 (poiché il semaforo potrebbe anche essere
guasto).
 00 vuol dire che la luce ROSSA è ACCESA, la gialla spenta e
la verde spenta
 01vuol dire che la luce rossa è spenta, la GIALLA è ACCESA
e la verde spenta
 10 vuol dire che la luce rossa è spenta, la gialla è spenta e la
VERDE è ACCESA
 11 vuol dire che il semaforo è guasto
IL BYTE
8 BIT formano 1 BYTE. Con 1 BYTE si possono rappresentare
256 messaggi differenti. Ogni messaggio è rappresentato da una
sequenza che va da 00000000 a 11111111.

SEQUENZE DI K BIT
Con 8 bit si possono costruire 256parole.
Quante parole binarie si possono costruire con k bit? Notiamo
che passando da k-1 bit a k bit il numero di parole raddoppia.
Infatti, per costruire tutte le parole possibili composte da k bit,
basta aggiungere prima 0 e poi 1 a tutte le parole lunghe k-1bit.
k = 1 → 0, 1
k = 2 → 00, 01, 10, 11
k = 3 → 000, 001, 010, 011,100, 101, 110, 111
Per cui, con k bit si possono costruire 2k parole.

UNITÀ DI MISURA
COMBINAZIONI DI BIT

CARATTERI
Un testo è rappresentato da una successione di caratteri. Se ci
riferiamo alle lingue basate sull’alfabeto latino, osserviamo che:
 ogni carattere appartiene a un insieme finito di simboli;
 un testo può contenere le 26 lettere dell’alfabeto;
 un testo può contenere numeri da 0 a 9;
 un testo può contenere anche simboli di interpunzione;
 un testo può contenere anche caratteri speciali (&+-…);
 un testo può contenere anche segnali di comando (es. TAB).

CODIFICA ASCII
Per codificare un testo si applica un metodo generale che
consiste nel sostituire un oggetto con una successione di bit. Nel
caso di un testo, a ogni carattere viene fatta corrispondere una
diversa parola binaria. Le parole binarie devono ovviamente
contenere un numero di bit sufficienti a coprire tutti i principali
caratteri. Nei computer la codifica utilizzata è detta ASCII (si
legge ASKI). ASCII deriva da:
American Standard Code for Information Interchange

CODIFICA ASCII (7 bit e 128 caratteri)


All’inizio la codifica ASCII era definita su 7 bit e permetteva
dunque di codificare 27 = 128 caratteri diversi.

Successivamente è stata adottata una nuova codifica (detta ISO


LATIN 1 o anche “ASCII estesa”) che ha aggiunto 1 bit in
prima posizione alla ASCII. In tal modo, con 8 bit è possibile
rappresentare 256 caratteri diversi (28=256).
CODIFICA UNICODE
In realtà esiste una tavola di codifica basata su più di 8 bit, detta
UNICODE, che ha l’obiettivo di includere tutti i caratteri che
esistono al mondo. Essa codifica, infatti, anche i simboli chimici,
l’alfabeto Braille per i non vedenti, gli ideogrammi, i simboli
cartografici, ecc. Tale tavola in origine era codificata a 16 bit e
quindi dava la possibilità di codificare 216 = 65.536 caratteri.
Successivamente è stata ampliata e oggi è codificata a 21 bit,
cioè dà la possibilità di codificar e 221 =circa un milione di
caratteri.
CODIFICA DI UN TESTO
Dato un testo (formato da una stringa di caratteri) esso può
essere rappresentato mediante una successione di 8 bit.

DECODIFICA DI UN TESTO
Data una sequenza di bit, è possibile decodificare, cioè
ricostruire, il test codificato. Per poter fare ciò occorre:
 dividere il testo in gruppi di 8 bit;
 determinare il carattere che corrisponde a ogni byte.

LA CODIFICA PER I NUMERI


Poiché la tavola ASCII contiene lettere, numeri, simboli e altri
caratteri speciali, si potrebbe pensare di codificare i numeri così
come si codificano le lettere dell’alfabeto.
Tuttavia tale rappresentazione non si rivela adatta per eseguire le
operazioni aritmetiche. Per i numeri, allora, si usa una codifica
diversa.

ORDINAMENTO BASATO SULLA CODIFICA ASCII


Nel momento in cui un testo viene ordinato in ordine alfabetico,
il computer segue l’ordine che i caratteri seguono nella tavola
ASCII. Così, ad esempio:
“1A” precede “A1”
 1A è dato dal numero 00110001 01000001
 A1 è dato dal numero 01000001 00110001 (cioè le sequenze
di 8 bit risultano invertite in quanto 1 non precede più A, ma
accade esattamente l’inverso, cioè A precede 1).

TESTO NON FORMATTATO


Un testo non formattato è un testo che viene memorizzato come
una semplice sequenza di caratteri senza alcun attributo (colore,
stile, dimensione ecc.). Un testo non formattato, dunque, non
rappresenta immagini o qualunque altro tipo di contenuto
multimediale e non rappresenta l’aspetto grafico del tipo di
carattere (o font). Un testo non formattato può essere modificato
da molti programmi, ma generalmente per farlo viene utilizzato
il programma Blocco Note.

TESTO FORMATTATO
Un testo formattato è invece costituito da una sequenza di
caratteri con determinati attributi (colore, stile, dimensione ecc.)
che lo rendono adeguato alla stampa su libri, quotidiani, oppure
alla visualizzazione su supporti digitali quali i documenti di
programmi di scrittura, sui libri elettronici, sui siti web…
Spesso, per poter modificare un testo formattato occorre
necessariamente utilizzare il programma che lo ha creato.
Esistono poi dei programmi che consentono di visualizzare i testi
formattati, ma non consentono di modificarli (es. Adobe
Reader).

TESTO HTML
L'Hyper Text Markup Language (HTML, ovvero linguaggio
a marcatori per ipertesti) è un linguaggio di markup (insieme di
regole che descrivono i meccanismi di rappresentazione di un
testo utilizzabile su più supporti). È un linguaggio di pubblico
dominio (cioè liberamente utilizzabile da chiunque senza dover
chiedere autorizzazioni o corrispondere un compenso) e nacque
per poter formattare e impaginare documenti ipertestuali
disponibili su internet. È un linguaggio di formattazione e non
un linguaggio di programmazione, in quanto non presenta
strutture dati, strutture di controllo, variabili ecc.
Esiste un’estensione dell’HTML, detta XHTML (linguaggio di
marcatura di ipertesti estensibile) che permette di scrivere testi
HTML in conformità con lo standard XML. In pratica l’HTML
utilizza dei tag (etichette, o anche “marcatori”) per descrivere le
modalità di visualizzazione grafica del contenuto di una pagina
web. I tag, inseriti nel testo, descrivono caratteristiche dei
caratteri come: il colore, la dimensione, la posizione all’interno
della pagina.
Ogni tag è costituito da caratteri racchiusi tra due parentesi
angolate <>. Ad esempio, <br /> indica il ritorno a capo, mentre
un testo inserito tra due tag nel modo seguente <b> testo </b>
viene visualizzato in grassetto dal programma che si sta usando
per navigare su internet. I testi, nella maggior parte dei casi,
devono essere delimitati da un tag di apertura (<) e da un tag di
chiusura (/>), ma vi sono tag che non richiedono tag di chiusura.
Ad esempio, <img> è un tag che serve per poter inserire
un’immagine in un determinato punto della pagina e non
richiede tag di chiusura.

LA CODIFICA DELLE IMMAGINI IN BIANCO E NERO


Se consideriamo un’immagine in bianco e nero (senza, cioè,
alcuna ombreggiatura), possiamo suddividerla per mezzo di una
griglia formata da linee orizzontali e verticali che formano
quadratini di uguale grandezza. Tali quadratini sono detti pixel e
possono essere codificati nella rappresentazione binaria mediante
le seguenti convenzioni:
 se in un determinato quadratino è predominante il colore
bianco, tale pixel verrà codificato col simbolo 0; -
 se in un determinato quadratino è predominante il colore nero,
tale pixel verrà codificato col simbolo 1.

In tal modo, l’immagine in esame può essere rappresentata


mediante la rappresentazione binaria, che utilizza l’alfabeto
{0,1}, nel seguente modo
0000000 0111100 0110000 0100000
La rappresentazione è più fedele se diminuiscono le dimensioni
dei quadratini che costituiscono la griglia nella quale è stata
suddivisa l’immagine, cioè se aumenta il numero di pixel.
Quando si assegna un bit a ogni pixel si riescono a codificare
immagini in bianco e nero. Se un’immagine è a colori, oppure
presenta diversi livelli di grigio, è possibile codificarla
utilizzando una sequenza di bit per ogni pixel. Utilizzando 4 bit,
ad es., si possono rappresentare 16 (24) livelli di grigio oppure 16
colori diversi. Con 8 bit se ne rappresentano 256 (2 8).

LA CODIFICA DELLE IMMAGINI A COLORI


Se supponiamo di avere un’immagine a colori è possibile
rappresentarla facendo riferimento alle considerazioni
precedenti. Definita la codifica nel seguente modo: al nero
corrisponde 00, al bianco 01, al rosso 10 e al verde 11, si riporta
la seguente griglia.

LA DECODIFICA DELLE IMMAGINI


Le immagini possono essere decodificate seguendo a ritroso i
passaggi fatti nel caso della codifica. Con riferimento
all’esempio precedente, è possibile riconvertire la sequenza di
stringhe
0000000 0111100 0110000 0100000
PERDITA DI INFORMAZIONI
Nella rappresentazione di immagini in alcuni casi è accettabile
una perdita di informazione. Nella rappresentazione di numeri e
testi tale perdita non è invece accettabile, poiché l’informazione
non può essere soggetta ad errori. Questo è il motivo per il quale
in questi altri casi c’è bisogno di codifiche di tipo diverso.

SISTEMI DI NUMERAZIONE POSIZIONALI


In tali sistemi a ogni numero (inteso come cifra) viene assegnato
un valore crescente in modo lineare da destra verso sinistra. Il
valore di una cifra dipende così dalla sua precisa posizione nella
stringa. Ad esempio, nel sistema di numerazione decimale arabo,
composto da 10 simboli che vanno dal numero 0 al numero 9, il
numero
451
È dato da 451 = 400 + 50 + 1, ovvero 4 x 100 + 5 x 10 + 1 x 1.
Tale rappresentazione è detta anche notazione posizionale.

SISTEMI DI NUMERAZIONE NON POSIZIONALI


In tali sistemi, invece, il significato dei simboli non dipende dalla
loro posizione ma si basa sulla somma di valori di singoli numeri
(se questi sono posti in ordine crescente). Così, ad esempio, era
strutturato il sistema di numerazione romano.
I=1 V=5 X=10 L=50 C=100 M=1000

CLXVI = 100 + 50 + 10 + 5 + 1 = 166


CLXIV = 100 + 50 + 10 –1 + 5 = 164

Tale rappresentazione è detta anche notazione additiva.

L’ARCHITETTURA DI VON NEUMANN


I computer oggi utilizzati sono macchine di calcolo generale.
Turing e von Neumann sono i padri della moderna informatica.
• Alan Mathison Turing (1912-1954), fu un matematico e un
logico. A 25 anni elaborò la teoria della “macchina di Turing”.
• John Von Neumann (1903-1957), fu un matematico e un
informatico. A lui si deve la teoria dei giochi.

LA MACCHINA DI TURING
Macchina teorica in grado di eseguire procedure logiche e
matematiche (1937). Procedure <> algoritmo. Componenti:
• un nastro diviso in celle (memoria esterna);
• una unità di lettura e scrittura;
• un insieme finito di simboli;
•una memoria interna.
La macchina permette di formalizzare la nozione di procedura
effettiva di calcolo, o algoritmo.

La macchina di Turing è in grado quindi di elaborare dati


contenuti su un nastro di lunghezza infinita, secondo un insieme
prefissato di regole ben definite. Nel momento in cui tali regole
vengono specificate in modo opportuno, la macchina di Turing
può eseguire calcoli di qualsiasi natura e di qualsiasi
complessità.

TEORIA DELLA MACCHINA UNIVERSALE


Turing dimostrò che è possibile progettare una macchina
universale in grado di imitare qualsiasi altra macchina di Turing.
• Tesi di Church: l’insieme dei problemi effettivamente
risolvibili con qualsivoglia metodo meccanico coincide con
quello dei problemi risolvibili dalla Macchina di Turing. I
computer moderni sono Macchine di Turing universali.

ARCHITETTURA DI VON NEUMANN


La quasi totalità degli elaboratori moderni è basata –sulle
funzionalità – e sui principi teorici enunciati a metà degli anni
’40 dal matematico John Von Neumann e noti come
architettura di Von Neumann (o macchina di Von Neumann o
macchina a registri a programma memorizzato).
L’architettura di von Neumann è l’architettura hardware su cui è
basata la maggior parte dei moderni computer programmabili.

LA MACCHINA A REGISTRI A PROGRAMMA


MEMORIZZATO
Ispirata dalla macchina (concettuale) di Turing, la macchina di
Von Neumann è un modello semplificato dei calcolatori
moderni. Von Neumann progettò, verso il 1945, il primo
calcolatore con programmi memorizzabili anziché codificati
mediante cavi e interruttori. Anche la macchina di von Neumann
è una macchina universale.
LA MACCHINA A REGISTRI A PROGRAMMA
MEMORIZZATO
La macchina di Von Neumann è composta da 4 tipi di
componenti funzionali:
1) unità centrale di elaborazione (CPU – Central Processing
Unit). Esegue istruzioni per l’elaborazione dei dati e svolge
anche funzioni di controllo memoria centrale;
2) Memoria centrale: memorizza e fornisce l’accesso a dati e
programmi in esecuzione;
3) Interfacce di ingresso e uscita: componenti di collegamento
con le periferiche del calcolatore;
4) Bus: svolge funzioni di trasferimento di dati e di informazioni
di controllo tra le varie componenti funzionali (i bus sono “linee”
che connettono le varie componenti del computer).

TIPI DI MEMORIA
In un computer esistono tre tipi di memoria:
• La memoria interna della CPU che serve per velocizzare
l’elaborazione (cache) e contenere i dati su cui il processore
lavora (registri);
• La memoria centrale (memoria principale), che memorizza i
programmi in esecuzione e i relativi documenti;
• La memoria di massa (memoria secondaria), che memorizza
grandi quantità di dati in modo perenne.

LA CPU
C.P.U = (Central Processing Unit) (o Unità Centrale di
Elaborazione)
Rappresenta il vero e proprio “motore” che preleva dalla
memoria, interpreta (decodifica) ed esegue le istruzioni del
programma e governa il funzionamento delle diverse parti che
compongono il computer. Inoltre, coordina le operazioni degli
altri componenti del sistema. La CPU è composta da:
 Unità di calcolo o ALU (Arithmetic- Logic Unit). Essa
esegue le istruzioni elementari e include un accumulatore (che
è un registro di memoria) in cui vengono collocati i dati
durante un’operazione di calcolo;
 Unità di controllo o CU (Control Unit). Essa governa
l’esecuzione delle istruzioni e coordina le altre componenti.
Dal punto di vista fisico, la CPU (detta anche processore) è un
circuito integrato, detto chip, formato da una piccola piastra di
silicio. All’interno della CPU (sulla sua superficie) vi sono
miliardi di transistor, che sono componenti elettronici
miniaturizzati. Oltre ai transistor, la CPU contiene anche altri tipi
di componenti elettronici.
La CPU viene detta anche Processore o Microprocessore. Essa
ha il duplice compito di:
 gestire il funzionamento dell’intero computer (più
precisamente, gestisce il flusso di dati tra le varie
componenti);
 eseguire le istruzioni di cui è composto ogni programma (tali
istruzioni risiedono in memoria).

LA MEMORIA CENTRALE
RAM = Random Access Memory
Von Neumann immaginava la memoria centrale divisa in celle
dotate di indirizzi, chiamati registri. La memoria centrale (detta
anche RAM) è una sorta di scrivania da lavoro del computer.
Essa contiene contemporaneamente:
 I dati
 I programmi
sui quali il computer sta operando.
La RAM (Memoria centrale) è il luogo in cui vengono depositati
i dati e le istruzioni che sono necessari per poter eseguire i
programmi col computer. La CPU ha accesso diretto alla RAM.
La Memoria Centrale è un passaggio obbligato, nel senso che,
prima di poter essere elaborata, ogni informazione deve essere
acquisita dalla memoria centrale. La RAM è una memoria di
lettura/scrittura. Possiede le seguenti caratteristiche: veloce
(ns), costosa, volatile, non estremamente capace, non
trasportabile.

I REGISTRI
I registri sono delle piccole memorie, molto veloci, poste a
contatto con la CPU, in quanto non riesce a lavorare
interfacciandosi direttamente con la RAM ma riesce solo a
lavorare su dati e su istruzioni presenti nei registri. Per questo
motivo, ogni volta che la CPU deve eseguire un’istruzione su
uno o più dati, deve prima prelevare dalla RAM l’istruzione che
occorre eseguire e i dati su cui l’istruzione opera e collocarla nei
registri.

LA MEMORIA CENTRALE ROM


ROM = Read Only Memory
In realtà, riguardo alle tipologie di memoria centrale, oltre alla
memoria RAM esiste nel computer anche la memoria ROM. La
ROM, a differenza della RAM, è una memoria a sola lettura:
contiene dati e programmi di sistema, che sono immutabili. A
differenza della memoria ROM, non perde il proprio contenuto
all’atto dello spegnimento del computer: per questo si dice che è
una memoria non volatile. I dati e i programmi memorizzati
nella ROM sono detti Firmware.

LA ROM BIOS
I computer contengono al proprio interno un minuscolo
dispositivo elettronico, detto ROM BIOS che contiene:
 Le procedure che gestiscono le funzioni di input e output;
 Il programma che il computer esegue nel momento in cui si
avvia (detto “bootstrap”, oppure, abbreviato, “boot”).
BIOS sta per Basic Input Output System. Quindi il BIOS
fornisce le funzioni di base per l’accesso all’hardware e alle
periferiche collegate alla scheda madre.

LA MEMORIA VIRTUALE
Durante il funzionamento di un computer, soprattutto se sono in
esecuzione vari programmi oppure vengono aperti files troppo
grandi, la RAM tende a saturarsi. In questo caso, tentando di
aprire un nuovo programma, il sistema operativo può:
 Impedire l’apertura del nuovo programma;
 Creare dello spazio nella memoria, consentendo così di aprire
l’altro programma.
I vecchi sistemi operativi impedivano automaticamente
l’apertura del nuovo programma. Quelli più recenti, invece,
spostano momentaneamente i dati o i programmi che si trovano
nella RAM, collocandoli in una zona precisa del disco fisso detta
“area di swap”. L’uso combinato di RAM + Hard Disk prende il
nome di memoria virtuale. Il S.O (Sistema Operativo) sceglie
cosa spostare in tale area.

LA MEMORIA CACHE
La memoria cache è concepita per ospitare dati che vengono
utilizzati frequentemente e che temporaneamente vengono
conservati in questo “luogo” per essere velocemente visualizzati.
La memoria cache consente di avere un rapido accesso a
informazioni alle quali si è avuto accesso di recente, come ad
esempio quelle visualizzate su internet. Può essere facilmente
svuotata dall’utente, rendendosi così disponibile per
l’archiviazione temporanea di nuovi dati.

IL BUFFER
Il buffer rappresenta una particolare zona della memoria che
viene utilizzata dalla CPU per compensare eventuali differenze
di velocità nel trasferimento di dati. Se, ad esempio, la CPU (che
opera ad alta velocità) deve inviare un file a una stampante (che
opera a basse velocità), allora la CPU scrive i dati in un buffer e
poi continua l’elaborazione di altri dati. In tal modo la stampante
potrà stampare i dati leggendoli direttamente dal buffer, e i suoi
tempi lenti non intralceranno/interromperanno il lavoro della
CPU.

LA MEMORIA DI MASSA
La memoria di massa è detta anche memoria secondaria. Essa
archivia i dati e i programmi che il computer è in grado di
mandare in esecuzione. Quest’ultimi sono molti di più di quelli
che, in ogni dato istante, sono effettivamente in esecuzione. Le
principali memorie di massa sono:
 Hard Disk (disco fisso o rigido)
 Pendrive e memorie SSD
 CD-ROM
 DVD e Blu-Ray

NECESSITÀ DELLA MEMORIA DI MASSA


La RAM ha dei limiti, in quanto:
 ha dimensioni finite (e quindi prima o poi si satura);
 è una memoria volatile, nel senso che viene svuotata del
proprio contenuto nel momento in cui il computer viene
spento.
Per questo motivo, occorre prevedere opportuni supporti che:
 consentano di memorizzare grandi quantità di byte;
 conservino tali byte quando il computer viene spento.
Questi supporti sono le memorie di massa (dette anche
ausiliarie, esterne, oppure secondarie).

INTERAZIONE TRA RAM E MEMORIA DI MASSA


Quando si utilizza un programma per il trattamento di un
documento (ad esempio un file di testo) occorre:
 caricare in RAM il documento già esistente e presente su
memoria di massa (in alternativa creare un nuovo documento
vuoto); –
 aggiornarlo, apportando tutte le modifiche necessarie, e questo
avviene in RAM utilizzando il programma;
 salvare il documento modificato, cioè memorizzare su
memoria di massa (eventualmente differente da quella di
origine) il documento modificato.

LEGGE DI MOORE
La complessità di un microcircuito, misurata ad esempio tramite
il numero di transistori per chip, raddoppia ogni 18 mesi (e
quadruplica quindi ogni 3 anni).
I transistori: sono miliardi di piccoli interruttori elettronici
miniaturizzati, del tipo acceso/spento, che si trovano sulla
superficie della CPU.
Gordon Moore (cofondatore della Intel insieme a Robert
Foce), nel 1965 scrisse un articolo su una rivista specializzata
nel quale illustrava come nel periodo 1959-1965 il numero di
componenti elettronici (ad esempio i transistor) che formano un
chip fosse raddoppiato ogni anno. Nel 1975 questa previsione si
rivelò corretta e prima della fine del decennio i tempi si
allungarono a due anni, periodo che rimarrà valido per tutti gli
anni ottanta. La legge, che verrà estesa per tutti gli anni novanta
e resterà valida fino ai nostri giorni, viene riformulata alla fine
degli anni ottanta ed elaborata nella sua forma definitiva, ovvero
che il numero di transistori nei processori raddoppia ogni 18
mesi. Questa legge è diventata il metro e l'obiettivo di tutte le
aziende che operano nel settore.

DISPOSITIVI E SUPPORTI
Le memorie di massa presentano due elementi:
 Il dispositivo di lettura/scrittura (detto anche driver);
 Il supporto di memorizzazione vero e proprio (il CD, ecc…).
Scrivere significa copiare dati dalla RAM al supporto. Leggere
significa copiare dati dal supporto alla RAM.

TIPOLOGIE DI MEMORIE DI MASSA


1) Memorie magnetiche 2) Memorie ottiche
3) Memorie allo stato solido
1)MEMORIE MAGNETICHE
Una particella magnetica ha due poli, uno positivo e uno
negativo. Due particelle magnetiche si attraggono o si
respingono se i poli accostati sono di segno opposto oppure
uguale. La superficie di una memoria magnetica contiene tante
particelle magnetiche, disposte una accanto all’altra e allineate in
uno dei due possibili modi diversi (corrispondenti a 0/1). Le
principali tipologie di memorie magnetiche sono:
 Dischi fissi
 Nastri
In fase di scrittura, mentre il disco gira, una testina di
lettura/scrittura emette piccoli impulsi elettrici. Questi hanno
l’effetto di invertire la polarità delle particelle che incontrano
sulla superficie del disco. In fase di lettura avviene il processo
inverso: le particelle magnetizzate inducono nella testina una
corrente elettrica che viene trasmessa come una successione di 0
e di 1.

2) MEMORIE OTTICHE
La superficie di una memoria ottica è composta da un materiale
riflettente ricoperto da una sostanza protettiva. La superficie di
una memoria ottica è suddivisa in tanti piccolissimi punti, i quali
riflettono la luce (corrispondente a 0/1). Le principali tipologie di
memorie ottiche sono:
 CD
 DVD
 Blu-ray
Un sottile raggio laser “legge” le scanalature presenti sulla
superficie come un alternarsi di 0 e 1, a seconda della direzione
del riflesso della luce. Questo è il principio di funzionamento di
CD e DVD.

3) MEMORIE ALLO STATO SOLIDO


Sono dette anche memorie flash. Non sono volatili e sono più
lente delle RAM. Tuttavia sono più veloci delle memorie
magnetiche, in quanto non hanno parti meccaniche mobili, come
la testina. Le principali tipologie di memorie allo stato solido
sono:
 Pendrive
 Memorie di fotocamere
 Memorie di cellulari
GERARCHIA DI MEMORIA
Lo studio della gerarchia di memoria si pone come obiettivo la
capacità di fornire all’utente una quantità di memoria pari a
quella disponibile nella tecnologia più economica, consentendo
nel contempo una velocità di accesso pari a quella che riesce a
essere garantita dalla tecnologia più veloce. A questo scopo si
utilizzano diversi livelli di memoria, ciascuno di diversa velocità
e dimensione, realizzati con tecnologie diverse. In tal modo si
riesce a ottenere un buon compromesso tra il costo e le
prestazioni.
MEMORIA CENTRALE
HARD DISK
Un hard disk è un contenitore a chiusura ermetica contenente una
serie di dischi sovrapposti, in alluminio o in materiale ceramico,
detti piatti. Ogni piatto ha due superfici rivestite di materiale
ferromagnetico, e viene posto in rapida rotazione intorno a un
perno. Per ogni piatto vi sono due testine di lettura e di scrittura,
fissate a un braccio mobile. I dati vengono registrati in cerchi
concentrici del piatto, detti tracce. I settori, invece, sono degli
spicchi di piatto, di uguale capacità.
Il bus di sistema collega quindi la CPU agli altri dispositivi e
comprende:
 le linee di indirizzi (che hanno il compito di trasmettere gli
indirizzi dei dati, da leggere o da scrivere, alla memoria
centrale);
 le linee di dati, che trasmettono i bit dei dati (letti o da
scrivere) alla memoria centrale.
Maggiore è il numero delle linee e più numerosi sono i bit che
possono essere inviati con una sola operazione. I primi bus
realizzati erano a 8 bit, e in seguito sono stati migliorati
rendendoli a 16, 32, 64 e fino a 128 bit.
PERIFERICHE DI INPUT
Consentono di inserire nel computer i dati che saranno
successivamente elaborati e di impartire comandi.
 Mouse: è un dispositivo di puntamento che sposta un cursore
sullo schermo e che permette di impartire comandi al PC.
 Tastiera: è lo strumento con cui l’utente inserisce nel
computer informazioni di tipo alfanumerico.
 Scanner: permette di importare immagini e testi velocemente,
in modo analogo ad una fotocopiatrice.
 Fotocamera digitale e Videocamera digitale.

LE PERIFERICHE DI OUTPUT
Consentono di presentare all’esterno i risultati delle elaborazioni
del PC.
 Monitor: visualizza le informazioni (grafici o testo)
permettendo di controllare i risultati del lavoro del PC.
 Stampante: consente la stampa su carta dei dati elaborati.
 Altoparlanti: consentono di ascoltare musica, il sonoro
proveniente in genere dai filmati, ma anche i suoni di avviso
generati dal computer.

TIPI DI COMPUTER
I computer si differenziano gli uni dagli altri essenzialmente per
le loro prestazioni: velocità; capacità e caratteristiche
tecnologiche; applicazioni tipiche; costi

SUPERCOMPUTER
I super computer sono anche detti super elaboratori e sono
progettati per ottenere potenze di calcolo estremamente elevate.
Sono dedicati a eseguire calcoli ad elevate prestazioni. Hanno
costi elevatissimi poiché presentano un contenuto tecnologico
eccezionale. Utilizzano appositi programmi, spesso molto
complessi, e devono essere utilizzati da personale altamente
specializzato. Sono special purpose, cioè dedicati ad
applicazioni militari o comunque molto specifiche (es. super
computer della NASA(USA)). Alcune applicazioni dei
supercomputer:
 Elaborazione dei dati atmosferici;
 Simulazioni astronomiche;
 Simulazione dei voli spaziali;
 Simulazioni in ambito militare;
 Studio delle molecole;
 Progettazioni di aerei.

Nel 1996 la Intel costruì il primo supercomputer capace di


eseguire più di un trilione (cioè un miliardo di miliardi) di
operazioni al secondo. Si trattava di una prestazione 3 volte
superiore a quella di qualsiasi altro supercomputer costruito
prima. Tale supercomputer era dotato di 7000 processori capaci
di eseguire contemporaneamente le operazioni richieste. In un
solo secondo riusciva a svolgere tante operazioni quante ne
riuscirebbero a svolgere 265 milioni di persone utilizzando una
calcolatrice manuale in ben 125anni. Attualmente questa velocità
di calcolo è stata ampiamente superata, e uno dei più recenti
supercomputer (il FujitsuK) ha ben 68.544processori. Anche il
FujitsuK, comunque, è stato a sua volta superato.

MISURA DELLA VELOCITÀ DEI SUPERCOMPUTER


La velocità dei supercomputer (e di computer che abbiano
comunque prestazioni eccezionali, come i mainframe), si
misura in FLOPS, e più in particolare in Teraflops. Il termine
FLOPS sta per:
FLoating point Operations Per Second
1 teraFLOPS equivalea 1012 FLOPS, cioè a 1000 miliardi di
operazioni in virgola mobile al secondo. Per il 2021 è in arrivo
Aurora, supercomputer in grado di eseguire un quintilione
(1030) di operazioni al secondo.

MAINFRAME
Il mainframe è detto anche sistema centrale e rappresenta una
tipologia di computer caratterizzata da prestazioni di
elaborazione dei dati di alto livello e di tipo centralizzato. In
genere questo tipo di computer è presente in grandi sistemi
informatici, come ad esempio nei Centri di Elaborazione Dati
(CED), oppure in grosse banche. I mainframe consentono di
servire moltissime utenze contemporaneamente e hanno una
elevata affidabilità. Il mainframe richiede in genere una quantità
molto elevata di unità periferiche (soprattutto memorie di
massa), ciò che contribuisce al loro costo particolarmente
elevato. Le principali applicazioni dei mainframe sono:
 Compagnie aeree;
 Compagnie ferroviarie;
 Grandi istituti bancari;
 Assicurazioni;
 Uffici governativi.
MINICOMPUTER
Il minicomputer è un particolare tipo di computer che ha prezzi e
prestazioni intermedi tra un mainframe e un microcomputer. In
genere il minicomputer viene inserito in una rete di trasmissione
dati che consente l’accesso simultaneo a molti utenti. La velocità
si misura in MIPS (1 MIPS = 1 Milione di Istruzioni Per
Secondo). Tale unità di misura viene utilizzata in generale per
tutti i computer eccezion fatta per i super computer, per i quali si
usa il Teraflop.
SERVER
I server sono dei particolari computer che hanno il compito di
fornire “servizi” ai propri utenti. Possono essere di qualsiasi
potenza. Forniscono dati ed eseguono programmi. In realtà il
concetto di computer server è associato più alle funzioni che alle
prestazioni di queste macchine. Infatti anche un normale PC,
cioè un computer non dotato di prestazioni particolarmente
elevate, può essere utilizzato come server, ad esempio all’interno
di una rete locale.

MICROCOMPUTER e HOME COMPUTER


Il microcomputer è detto anche microelaboratore ed è in genere
dotato di un singolo microprocessore di costo non
eccessivamente alto, ideato per poter svolgere un numero
ristretto di applicazioni. Alla famiglia dei micro computer
appartengono gli home computer.
WORKSTATION
Una workstation è una stazione di lavoro individuale dalle
elevate capacità di calcolo. Ha una parte hardware molto potente
e particolarmente specializzata. Ha costi contenuti, con prezzi
che generalmente non raggiungono i 10.000euro. Le applicazioni
sono:
 Progettazione CAD (Computer Aided Design);
 Ricerca scientifica;
 Grafica computerizzata (es. effetti speciali video).

PERSONAL COMPUTER (PC)


Il personal computer è il classico PC. È un qualsiasi computer di
uso generico che abbia dimensioni, prezzo e prestazioni adatte
auna persona che lo voglia utilizzare tutti i giorni. I primi
microcomputer furono chiamati personal computer (PC) perché
avevano un impiego fondamentalmente individuale,
diversamente dagli elaboratori di grande dimensione che
venivano usati per lo più nei centri di calcolo di grosse
compagnie. Il primo personal computer fu realizzato dall’IBM
nel 1981 e fu chiamato PCIBM, e in seguito il termine PC
indicò quel tipo di computer in generale.

TABLET PC, COMPUTER PALMARI, SMARTPHONE


I tablet sono dei computer portatili senza tastiera fissa. Hanno
dei sensori del tipo touch-screen che consentono all’utilizzatore
di interagire con lo schermo, a volte mediante piccole penne fatte
di materiale plastico. I computer palmari e gli smartphone sono i
computer più piccoli che esistano attualmente. In genere le loro
dimensioni non li rendono agevoli per inserire grandi quantità di
dati, però si prestano egregiamente a svolgere molti altri tipi di
operazioni (telefonare, scattare foto, registrare filmati, annotare
appuntamenti ecc.).

LA LEGGE DI JOY
Nel 1984 William Joy ipotizzò che, col trascorrere degli anni, le
prestazioni dei computer sarebbero aumentate secondo un indice
prevedibile. Introdusse, così, una formula che usava i MIPS
(Milioni di Istruzioni Per Secondo) come unità di misura del
rendimento di un computer. Tale formula era la seguente:
MIPS = 2 (anno –1984)
E oggi viene chiamata Legge di Joy.
Essa fornisce dunque una previsione delle prestazioni dei
computer nel tempo.
Lez. 7: LA CODIFICA DEI NUMERI. I DIAGRAMMI DI
FLUSSO.
Lez. 7/A: LA CODIFICA DEI NUMERI. DA BINARIO A
DECIMALE
IL NOSTRO SISTEMA DI NUMERAZIONE
Il sistema di numerazione che utilizziamo si chiama sistema di
numerazione decimale posizionale. Tale sistema, come tutti i
sistemi posizionali, è nato con l’obiettivo di utilizzare poche
cifre per poter rappresentare numeri grandi, e svolgere calcoli in
modo semplice ed efficiente.
I sistemi di numerazione posizionali sono caratterizzati da:
• una base b: ad es. nel sistema decimale si ha b = 10;
• un alfabeto (o insieme di simboli) a: ad es. nel sistema
decimale si ha a = {0,1,2,3,4,5,6,7,8,9}.
SISTEMI DI NUMERAZIONE POSIZIONALI
In tali sistemi a ogni numero, inteso come cifra, viene assegnato
un valore crescente in modo lineare da destra verso sinistra.
Così, il valore di una cifra dipende dalla sua precisa posizione
nella stringa.
Ad es., nel sistema di numerazione decimale arabo, composto da
10 simboli che vanno dal numero 0 al numero 9, il numero 451 è
dato da 451 = 400 + 50 + 1, ovvero 4 x 100 + 5 x 10 + 1 x 1.
Tale rappresentazione è detta anche notazione posizionale.

RAPPRESENTAZIONE DEI NUMERI NATURALI


MEDIANTE LA NOTAZIONE POSIZIONALE
N = 0, 1, 2, 3, 4, 5, 6, 7, 8…
La notazione posizionale in base p consente di scrivere:
Ad es., in base 10: 75110 = 7 · 10^2 + 5 · 10^1 + 1 · 10^0 = 700
+ 50 + 1

SISTEMI DINUMERAZIONE NON POSIZIONALI


In tali sistemi, il significato dei simboli si basa sulla somma dei
valori dei singoli numeri (se questi sono posti in ordine
crescente).
Così, ad es., era strutturato il sistema di numerazione romano:
I = 1, V = 5, X = 10, L= 50, C = 100, M = 1000.
CLXVI = 100 + 50 + 10 + 5 + 1 = 166
CLXIV = 100 + 50 + 10 – 1 + 5 = 164
Tale rappresentazione è detta anche notazione additiva.

RAPPRESENTAZIONE DEI NUMERI NATURALI


MEDIANTE LA NOTAZIONE ADDITIVA
N = 0, 1, 2, 3, 4, 5, 6, 7, 8…
La notazione additiva consente di scrivere:

(Tenendo presente che I = 1, V = 5, X = 10, L = 50, C = 100, D


= 500, M = 1000).
Ad es.: DCCLI = D + C + C + L + 1 = 500 + 100 + 100 + 50 + 1
= 751
NOTAZIONI USATE IN INFORMATICA
• Per la notazione binaria (cioè in base 2), si utilizzano i
seguenti simboli: ai = 0, 1
• Per la notazione ottale (cioè in base 8), si utilizzano i seguenti
simboli: ai = 0, 1, 2, 3, 4, 5, 6, 7
• Per la notazione esadecimale (cioè in base 16), si utilizzano i
seguenti simboli: ai = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
• Perché sono state scelte le notazioni in base 2, in base 8 e in
base 16?
La scelta della notazione binaria è stata dettata da considerazioni
di carattere tecnologico;
la scelta delle notazioni in base 8 e 16, invece, è risultata
conveniente per rappresentare sinteticamente i valori binari.
Infatti, è facile convertire un numero binario in un numero in
base 8 o in base 16, poiché: le cifre binarie possono essere
raggruppate a 3 a 3 e poi codificate in base ottale, oppure
possono essere raggruppate a 4 a 4 e poi codificate in base
esadecimale.

CODIFICA DA BINARIO A DECIMALE


Annotiamo la posizione a partire dal bit più a destra (che ha
posizione 0). Applichiamo la notazione posizionale nel seguente
modo:

ESEMPIO:

N.B.: Se il numero binario termina con un bit uguale a 0, il


numero decimale corrispondente dovrà essere necessariamente
un numero pari. Vale anche il contrario.
Se invece il numero binario termina con un bit uguale a 1, il
numero decimale corrispondente dovrà essere necessariamente
un numero dispari. Vale anche il contrario.

CODIFICA DA DECIMALE A BINARIO


Per convertire un numero decimale in un numero binario si
procede nel seguente modo:
• si divide il numero decimale per 2;
• si scrive (a parte) il resto che viene fuori da tale divisione (che
può essere uguale a 0 oppure uguale a 1);
• si continua a dividere il numero ottenuto per 2, tante volte
finché non si avrà come risultato 0;
• si considerano i numeri 0 e 1 ottenuti come resto, scrivendoli a
partire dall’ultimo numero ottenuto fino a terminare al primo.

CODIFICA DA DECIMALE A BINARIO


ESEMPIO:

N.B.: • Se il numero decimale è pari, il numero binario termina


con un bit pari a 0. Vale anche il contrario.
• Se invece il numero decimale è dispari, il numero binario
termina con un bit pari a 1. Vale anche il contrario.
ESEMPIO:
Codificare il seguente numero dalla notazione decimale alla
notazione binaria.

• 45/2 = 22 con resto di 1


• 22/ 2 = 11 con resto di 0
• 11/2 = 5 con resto di 1
• 5/2 = 2 con resto di 1
• 2/2 = 1 con resto di 0
• 1/2 = 0 con resto di 1

LA RAPPRESENTAZIONE DEI NUMERI INTERI IN


“MODULO E SEGNO”
Dal momento che l’insieme N è costituito da: N = 0, +1, -1, +2, -
2, +3, -3, +4, -4, …
In informatica, per poter rappresentare il segno di un numero
intero, si aggiunge un ulteriore bit che viene posto uguale 0 se il
numero è positivo , oppure uguale a 1 se il numero è negativo.
ESEMPIO:

ma in modulo e segno si avrà:

LA RAPPRESENTAZIONE IN COMPLEMENTO A 2
È un metodo molto diffuso in informatica per rappresentare
numeri negativi.
Se si suppone, ad es., di avere 4 bit: i codici 0xxxx indicano
numeri positivi, i codici 1xxxx indicano numeri negativi.

ESEMPIO:
Si abbiano 5 bit.

LE OPERAZIONI BINARIE
Per poter effettuare operazioni binarie si ricorre a specifiche
tabelle che definiscono le operazioni per ogni coppia di simboli.

LE OPERAZIONI BINARIE. Esempio di somma.


Verifica:

Infatti 39 +19 = 58
Da quanto abbiamo visto nell’esempio precedente, possiamo
notare che per effettuare la somma di due numeri binari si può
far riferimento a due diversi metodi:
1. Si può operare direttamente in base 2, secondo le regole
dell’aritmetica binaria;
2. Si può trasformare i numeri da base 2 a base 10, poi effettuare
la somma dei numeri ottenuti in base 10, e trasformare il risultato
da base 10 a base 2.
OVERFLOW
Se il numero di cifre non consente di rappresentare il risultato, si
ha un overflow, cioè un trabocco nella propagazione del riporto.
Ad es., se sommiamo i numeri binari 0101 e 1011
(corrispondenti ai numeri decimali 5 e 11), si ha:

MOLTIPLICAZIONE BINARIA
Per eseguire una moltiplicazione binaria viene utilizzato lo stesso
procedimento utilizzato nel caso della numerazione in base 10,
secondo il seguente esempio.

Lez. 7/B: I DIAGRAMMI DI FLUSSO


COSA FA UN ELABORATORE ELETTRONICO
DIGITALE
In sintesi, un computer:
Preleva un’istruzione dalla memoria centrale;
Interpreta l’istruzione;
Esegue l’istruzione.
• Le istruzioni e i dati sono dei numeri binari che vengono
prelevati come pacchetti di bit.
• Le istruzioni corrispondono a operazioni elementari.
Un computer, quindi, deve risolvere problemi complessi
ricorrendo a operazioni elementari. Ciò vuol dire che occorre
fornire a un computer una serie di istruzioni che riescano a
scomporre un problema complesso in una serie di passaggi
elementari da eseguire in sequenza.
Tutto ciò vuol dire programmare.

LA PROGRAMMAZIONE
La programmazione consiste nella scrittura di un testo che
viene definito programma sorgente, che ha il compito di
descrivere la soluzione di un determinato problema in termini di
istruzioni note al computer.
Per un certo problema vi potrebbe essere più di una soluzione. A
tal proposito, la programmazione consiste nel trovare il modo più
efficiente per risolvere un dato problema. In genere accade che,
per risolvere lo stesso problema, programmatori diversi scrivano
programmi diversi.
La programmazione non è un’operazione semplice, ma al
contrario si rivela molto complessa e richiede un avanzamento
che prosegue per step successivi. Quindi, lo svolgimento della
programmazione è di tipo sequenziale.
Per svolgimento sequenziale si intende la successione nel tempo
di operazioni elementari. Scrivere un programma vuol dire
adattare la logica funzionale del computer, cioè l’insieme delle
operazioni che esso può svolgere, alle esigenze operative di un
certo problema.
Il primo passo da compiere è determinare il meccanismo di
risoluzione di un certo problema.

COME SI RISOLVE UN PROBLEMA?


Dato un problema, il metodo più efficace per risolverlo è
schematizzarlo. Occorre quindi ricercare quale sia la soluzione
migliore per quel problema. Fatto ciò, bisogna convertire l’idea
risolutiva in un testo formale, cioè in un testo che riesca a
descrivere la soluzione in un modo formale.
Tale testo è detto algoritmo. L’algoritmo a sua volta viene
tradotto in programma.
Gli step da seguire sono:
• Problema
• Soluzione
• Soluzione formale
• Programma
Per garantirne il funzionamento in ogni caso, un programma
deve essere provato con un insieme significativo di dati.
Passando attraverso i vari step evidenziati, i dati trattati dal
computer seguono un vero e proprio percorso che li porta fino
alla soluzione desiderata. Questo flusso logico può essere
schematizzato con degli appositi diagrammi che hanno il
compito di presentare in versione grafica lo svolgimento di un
determinato problema, anche molto complesso, a partire dal
momento in cui i dati vengono immessi nel calcolatore, fino al
momento in cui il calcolatore restituisce il risultato del problema.

I DIAGRAMMI DI FLUSSO
I FLOW CHART (detti anche DIAGRAMMI DI FLUSSO o
DIAGRAMMI A BLOCCHI) sono composti da blocchi di
vario tipo:
• blocchi di inizio/fine: indicano dove inizia e dove finisce il
programma;
• blocchi di azione: indicano un’attività o un’elaborazione da
svolgere;
• blocchi di test: indicano due o più direzioni in base a un fattore
di decisione;
• blocchi di input/output: comportano l'immissione di
informazioni dall'esterno oppure l'invio di informazioni verso
l'esterno.
Nel blocco iniziale, al posto di INIZIO si può scrivere anche
START. Nel blocco finale, al posto di FINE si può scrivere
anche STOP. Nel blocco di controllo, al posto di VERO o
FALSO si può scrivere anche TRUE o FALSE (T o F).
ALGORITMO
I diagrammi di flusso non sono altro che algoritmi che hanno il
compito di impartire istruzioni al computer, descrivendo le
operazioni che esso deve eseguire in sequenza.
Ricordiamo che l’algoritmo rappresenta la sequenza di passi che
portano alla realizzazione di un compito. Più precisamente, un
algoritmo è una sequenza finita di istruzioni che, quando
eseguite, svolgono un ben determinato compito.

PROPRIETÀ DELL’ALGORITMO
L’algoritmo deve godere delle seguenti proprietà:
• Deve essere finito, cioè costituito da un numero limitato di
passi: ciò vuol dire che le istruzioni sono in numero finito e
vengono eseguite un numero finito di volte;
• Deve essere definito (non ambiguo): ciò vuol dire che ogni sua
istruzione deve essere elementare e deve consentire
un’interpretazione univoca;
• Deve essere eseguibile: la sua esecuzione deve poter essere
possibile con gli strumenti di cui si dispone;
• Deve essere deterministico: a ogni passo deve essere definita
una e una sola operazione successiva;
• Deve essere generale: un algoritmo, infatti, deve poter
risolvere una classe di problemi; quindi, la sua descrizione non
cambia quando vengono modificati i dati. Ciò vuol dire che un
algoritmo deve essere indipendente dai dati forniti in ingresso.

ALGORITMO CON SEQUENZE FISSE


L’algoritmo può essere fisso, nel senso che è sempre lo stesso
anche se cambiano i dati del problema.
Se ad es. un supermercato deve emettere uno scontrino su cui
vengono riportati rispettivamente il prezzo di un certo bene e
l’IVA che a tale bene viene applicata, un algoritmo potrebbe:
Cercare l’aliquota IVA da applicare, in base a una tabella
assegnata
Moltiplicare l’importo netto di quel bene per l’aliquota IVA
trovata
Sommare il risultato ottenuto all’importo netto
Questo algoritmo viene così applicato, indipendentemente dai
dati.

ALGORITMO CON SEQUENZE NON FISSE


Tuttavia, può accadere che, restando nello stesso es., alcuni tipi
di merce non siano soggetti a IVA. In tal caso l’algoritmo deve
prevedere una serie di istruzioni diverse in base ai dati iniziali:
SE il prodotto acquistato è soggetto a IVA,
ALLORA
Cercare l’aliquota IVA da applicare, in base a una tabella
assegnata
Moltiplicare l’importo netto di quel bene per l’aliquota IVA
trovata
Sommare il risultato ottenuto all’importo netto
ALTRIMENTI
Tener conto solo dell’importo iniziale, al netto dell’IVA
DIAGRAMMA DI FLUSSO STRUTTURATO
Un diagramma di flusso si dice strutturato quando è composto
da strutture elementari indipendenti tra loro. Per struttura
elementare si intende una composizione di blocchi elementari
che hanno un solo ingresso e una sola uscita.
Un diagramma di flusso strutturato riesce a formalizzare meglio
un problema, consente di utilizzare di nuovo il codice che si è
creato e presenta una maggiore leggibilità.
Un diagramma di flusso è strutturato se contiene solo un insieme
predefinito delle seguenti strutture elementari:
• Un solo blocco START
• Un solo blocco STOP
• Blocchi di azioni e/o di input-output
• Blocchi di tipo IF – THEN – (ELSE)
• Blocchi di tipo WHILE – DO
• Blocchi di tipo REPEAT – UNTIL

TEOREMA DI BÖHM – JACOPINI


Qualunque diagramma di flusso è sempre trasformabile in un
diagramma di flusso strutturato equivalente a quello dato.
ESEMPIO 1
Descrivere, mediante un diagramma di flusso, un algoritmo che
calcoli la somma di due numeri letti in input.
• A, B, C sono variabili (possono contenere valori usati
successivamente dal computer e possono essere modificate).
• La freccia ← assegna un valore a una variabile.
• A, B, C sono 3 numeri.

ESEMPIO 1 – soluzione bis

ESEMPIO 2
Scrivere un diagramma a blocchi per la descrizione di un
algoritmo per la preparazione di una tazza di tè.
ESEMPIO 2 – soluzione

ESEMPIO 3
Spiegare il significato del seguente algoritmo.

ESEMPIO 3 – soluzione
L’algoritmo riportato determina qual è il massimo tra due numeri
letti in input.

Lez. 8/A: BASI DI DATI


BASI DI DATI
Una base di dati (DB = Data base) è un insieme di moltissimi
dati che sono memorizzati in un computer, organizzati in forma
strutturata, e condivisi contemporaneamente da molti utenti. Tali
dati servono essenzialmente per effettuare delle ricerche.
Il DBMS (Data Base Management System) è invece un
particolare software che consente la gestione di un database,
mediante memorizzazione, cancellazione, aggiornamento o
interrogazione dei dati in esso contenuti.

FOGLI ELETTRONICI (EXCEL)


Esistono svariati programmi che consentono la gestione di dati,
uno dei più conosciuti è Excel.
I fogli elettronici come Excel permettono di trattare piccole
quantità di dati, in prevalenza numeri, che hanno elevate
dipendenze reciproche. Una comoda caratteristica dei fogli
elettronici è la possibilità di visualizzare i dati attraverso grafici e
diagrammi. Altra caratteristica è la presenza di funzioni
predefinite o facilmente realizzabili, che consentono di avere una
grande capacità analitica.

CARATTERISTICHE DEI FOGLI ELETTRONICI


I fogli elettronici consentono di eseguire le operazioni
fondamentali ma anche operazioni più complesse.
Ad es.:
• Funzione MEDIA: è una funzione che calcola la media
aritmetica degli argomenti.
Se, ad es., nell’intervallo C3:C4 sono contenuti dei valori
numerici, la formula fx = MEDIA (C3:C4) ci darà la media di
tali valori. Le celle contenenti il valore zero verranno incluse nel
calcolo.
• Funzione SE: è una funzione che mostra un certo risultato se la
condizione che abbiamo specificato ha un risultato falso, mentre
mostra un altro risultato se la condizione ha un risultato vero.
• Funzione CERCA ORIZZ./CERCA VERT.: è una funzione
utile nel momento in cui si vogliano incrociare tra loro dei
piccoli database, mettendo a confronto il valore di una cella con
un certo insieme di valori, dicendo a che livello è contenuto.
Data una tabella contenente dei valori (testo, numeri o valori
logici), questa funzione cerca un valore nella prima colonna e
restituisce un valore sulla stessa riga di un’altra colonna della
tabella.
• DB.SOMMA: è una funzione che esegue la somma di numeri
contenuti nelle celle specificate, secondo una condizione
assegnata dall’utente.
FOGLI ELETTRONICI (EXCEL)
Tuttavia, i fogli elettronici non sono molto adatti quando si
vogliono ricercare informazioni in archivi con l’accesso
contemporaneo di tantissimi utenti.

CARATTERISTICHE DI UN DBMS
Un DBMS è un sistema software che gestisce collezioni di dati
• Grandi
• Persistenti
• Condivisi
Garantendo:
• Affidabilità
• Privatezza
• Efficienza
• Efficacia

CARATTERISTICHE DI UN DBMS - CONDIVISIBILITÀ


Le basi di dati sono condivise. Ciò vuol dire che utenti diversi e
applicazioni diverse devono poter accedere agli stessi dati, anche
contemporaneamente. In tal modo si riduce la ridondanza, in
quanto non è necessario duplicare gli stessi dati in più archivi
(non si spreca spazio). Inoltre, si evita la cosiddetta
inconsistenza, nel senso che non possono esistere versioni
diverse dello stesso dato (ciò potrebbe accadere, ad es., quando
un programma aggiorna solo una copia di un dato, lasciando
invariate le altre).

CARATTERISTICHE DI UN DBMS - AFFIDABILITÀ


I DBMS devono garantire affidabilità, cioè devono essere
resistenti a eventuali malfunzionamenti sia dell’hardware che del
software. Essi sono in grado di mantenere intatti i loro dati,
ovvero il contenuto dell’intera base di dati, anche se accade un
evento imprevisto. Per poter fare ciò, occorre adottare degli
elaborati meccanismi di backup che rendono possibile il
recupero dei dati a seguito di eventuali guasti che potrebbero
verificarsi.

CARATTERISTICHE DI UN DBMS - EFFICIENZA


I DBMS svolgono le proprie operazioni utilizzando al minimo le
risorse. Infatti, utilizzano il minor spazio disponibile, sia nella
memoria principale che in quella secondaria, e il minor tempo
possibile, sia di esecuzione che di risposta.

CARATTERISTICHE DI UN DBMS - EFFICACIA


I DBMS garantiscono efficacia. Infatti, offrono servizi e
funzionalità che devono essere: articolate, potenti e flessibili;
mostrano risultati corretti.

ORGANIZZAZIONE DI UNA BASE DI DATI


Le basi di dati sono organizzate in tabelle, all’interno delle quali
sono contenuti i dati, memorizzati in righe e colonne. Ogni
tabella contiene informazioni su un insieme di dati che hanno
identica struttura.
Ad es., nel caso di una videoteca, una tabella conterrà i titoli dei
film, un’altra i nomi dei registi, un’altra ancora il nome
dell’attore principale, ecc. Oppure, nell’ambito universitario, una
tabella conterrà i nomi degli studenti, un’altra i loro cognomi,
un’altra ancora i loro numeri di matricola, ecc.
Nelle tabelle, ogni riga (detta anche record) corrisponde a un
singolo dato (es. un solo studente), mentre ogni colonna (detta
anche campo, o attributo) corrisponde a singole informazioni
relative ai dati (es. numero di matricola).

CONTROLLI DI VALIDITÀ
Una necessità che si è posta fin dal primo momento che sono
stati ideati i DBMS è stato il controllo della validità dei dati
inseriti. In un DBMS, infatti, è possibile impedire:
- l’inserimento di una data impossibile (es. 33 marzo 2018);
- l’inserimento di un voto di esame errato (es. 31 e lode, oppure -
24);
- l’inserimento di un anno di nascita errato (es.198,43).
Tali controlli evitano l’inserimento di dati errati, che
eventualmente richiamati dall’utente nella loro forma corretta
non apparirebbero sullo schermo.

QUERY E LINGUAGGI
Una volta costruito un Data Base con l’immissione di dati, al
momento opportuno occorrerà consultare e prevedere delle
modalità di interrogazione del sistema.
Le principali modalità sono due:
- QBE (Query By Example): è un’interfaccia grafica di
semplice utilità e che talvolta è legata al programma DBMS;
- SQE (Structure Query Language, pronuncia Sequel): è
un’interfaccia in modalità linguaggio, più complessa della QBE,
valida per tutti i tipi di interrogazione. La SQE è un linguaggio
universale, adottato da tutti i programmi DBMS.
Una tabella può contenere centinaia di colonne e milioni di
righe, ma in genere il singolo utente è interessato solo a una
piccola parte di tali dati.
Una Query (interrogazione) è una frase scritta in un linguaggio
speciale, che consente di estrarre da una tabella solo i dati che ci
servono. In altri termini, una Query è una determinata frase che
serve per creare una tabella più piccola, che contiene solo quei
dati che in quel momento ci interessano.
Una volta stabiliti i dati che vogliamo estrarre da una tabella,
occorre specificare le condizioni di ricerca che sono soddisfatte
dai record che ci interessano.
Tali condizioni possono essere espresse:
- mediante operatori relazionali, cioè di confronto, come <, >, =
ecc.;
- mediante operatori logici, come AND, OR, NOT, ecc.

MASCHERA VIDEO
Una maschera video è uno strumento di interazione con le
tabelle del Data Base e ad esse direttamente collegata. Consente
di visualizzare un record per volta mediante un’interfaccia
grafica più gradevole rispetto ad una semplice elencazione di
dati. Inoltre, consente di aggiornare i dati nelle tabelle,
immettendone di nuovi, aggiornando o eliminando quelli già
esistenti; permette di selezionare solo alcuni campi della tabella
da memorizzare, oppure di visualizzare dati provenienti da
tabelle diverse.

REPORT
Un report è un insieme di dati generato automaticamente in un
formato adatto per la stampa (ad es. con l’intestazione della
società, dell’università, con un’impaginazione specifica, ecc.). In
pratica, un report è un rapporto che consente di stampare da un
Data Base un sottoinsieme di dati che contengono solo ciò che ci
interessa. È possibile ricavare diversi Report da una stessa Base
di Dati.

IMPORT/EXPORT DI DATI
Un Data Base è costruito in modo tale da assicurare un’elevata
interoperabilità, per mezzo di apposite funzioni che consentono
di importare o esportare dati, memorizzati in una o più tabelle,
verso altri programmi. Ciò viene reso possibile dal fatto che tali
dati vengono convertiti in formati leggibili anche da altri
programmi. Nel programma ACCESS è possibile
importare/esportare dati mediante EXCEL e WORD.

BASI DI DATI ONLINE


Capita spesso di accedere a siti internet che danno la possibilità
di effettuare ricerche all’interno dei propri dati (in genere con la
classica frase “cerca nel sito”). Si tratta di motori di ricerca
interni, i quali, alla stregua dei motori di ricerca più generici,
costituiscono dei DBMS che si interfacciano con l’utente tramite
un linguaggio di interrogazione quale il QLE oppure il SQL.
Ogni sito web che contenga un numero importante di dati
possiede al suo interno una Base di Dati.

SINTASSI DI BASE DI UNA QUERY SQL


• SELECT [nome dei campi separati da una virgola]
• FROM [nome della tabella]
• WHERE [condizioni di ricerca].
• SELECT [*] indica tutti i campi.

ESEMPIO DI INTERROGAZIONE
Voglio ottenere tutte le informazioni sulla studentessa Costanza
Verde.

SELECT*
FROM STUDENTI
WHERE Nome = “Costanza” AND Cognome = “Verde”.

ESEMPIO DI INTERROGAZIONE – risultato


ORDINAMENTO
La clausola ORDER BY viene usata per ordinare i risultati di
una query.
Se ORDER BY indica più campi, si ordina in base al primo; se
vi sono valori identici, in base al secondo, ecc.
DESC è una parola chiave opzionale che serve per ordinare in
senso inverso.
SELECT [nome dei campi separati da una virgola]
FROM [nome della tabella]
WHERE [condizione di ricerca]
ORDER BY [nome dei campi separati da una virgola]
[DESC]

ESEMPIO DI ORDINAMENTO
Supponiamo di essere nel Data Base di una biblioteca e di voler
ottenere il cognome dell’autore, il titolo del libro e la data di
pubblicazione di tutti i libri in archivio, ordinati prima per nome
dell’autore e poi per titolo del libro.
SELECT Autore, Titolo, Data
FROM BIBLIOTECA
ORDER BY Autore, Titolo

OPERATORE LIKE
L’operatore LIKE consente di estrarre, da una certa tabella, dati
per similitudine, cioè dati che seguono un certo schema. LIKE è
un operatore di confronto utilizzabile nella clausola WHERE e
utilizza il formato [Nome campo] LIKE “schema”.
All’interno dello schema:
- il simbolo ? indica una lettera arbitraria;
- il simbolo * indica un numero di lettere arbitrario;
- i simboli [] racchiudono un insieme di lettere possibili.

OPERATORE LIKE – Esempi


Nel caso della biblioteca, voglio:
1. Estrarre tutti gli autori che hanno il cognome che inizia per B
2. Estrarre tutti gli autori i cui cognomi iniziano per B oppure per
C
Nel primo caso avrò:
SELECT*FROM BIBLIOTECA WHERE Autore LIKE
“B*”
Mentre, nel secondo caso avrò:
SELECT*FROM BIBLIOTECA WHERE Autore LIKE
“[BC]*”

Lez. 8/B: IL SISTEMA OPERATIVO


IL SISTEMA OPERATIVO (O.S.)
Il sistema operativo ha un’elevatissima complessità. Nessun
computer moderno, a parte alcuni casi speciali, potrebbe essere
utilizzato senza di esso.
Dal punto di vista della struttura:
– generalmente, sono costituiti da un insieme di moduli, ognuno
dei quali è espressamente dedicato allo svolgimento di una ben
determinata funzione;
– i vari moduli che compongono il Sistema Operativo
interagiscono tra loro seguendo delle regole ben precise che
hanno come scopo la realizzazione delle funzionalità di base del
computer.

LE FUNZIONI PRINCIPALI DI UN SISTEMA


OPERATIVO
Le funzioni principali di un sistema operativo sono tre:
• Gestione delle risorse hardware
• Gestione delle risorse software
• Gestione dell’interazione tra l’utente e il computer

GESTIONE DELLE RISORSE HARDWARE


• Il sistema operativo CONTROLLA tutte le risorse hardware del
computer.
• Il sistema operativo COORDINA la comunicazione tra tali
risorse hardware.
• Il sistema operativo OTTIMIZZA l’uso delle risorse hardware
del computer.

GESTIONE DELLE RISORSE SOFTWARE


• Il sistema operativo GESTISCE e CONTROLLA l’esecuzione
di altri programmi installati nel computer.
• Il sistema operativo ASSEGNA le risorse agli altri programmi
che operano nel computer.
• Il sistema operativo CONTROLLA le attività degli altri
programmi in esecuzione nel computer, per evitare problemi
derivanti da conflitti tra software.
GESTIONE DELL’INTERAZIONE TRA UTENTE E
COMPUTER
Il sistema operativo RILEVA ogni operazione effettuata
dall’utente e la GESTISCE.
La rilevazione delle operazioni può avvenire in modo diretto: è
l’utente stesso a digitare comandi e ad eseguire operazioni
predefinite (es. apertura, salvataggio, cancellazione di un file).
La rilevazione delle operazioni può anche avvenire in modo
indiretto: l’utente esegue delle operazioni mediante i programmi
che in quel momento sta utilizzando.
STRUTTURA DI UN SISTEMA OPERATIVO
Ogni modulo che costituisce il Sistema Operativo è dedicato a
una specifica funzione.

IL BIOS - Basic Input Output System.


Il BIOS, piccolo dispositivo elettronico, contiene:
– le procedure che gestiscono le funzioni di input e output;
– il programma che il computer esegue nel momento in cui si
avvia (detto “bootstrap”, oppure, abbreviato, “boot”).
Il BIOS consente di collegare l’hardware con il software. Il
Sistema Operativo intercetta ogni richiesta di uso di una
periferica da parte dell’utente e la trasmette al BIOS.

IL BIOS ESEMPIO: stampa di un documento


Supponiamo di aver redatto un documento e di volerlo stampare.
Quando immettiamo il comando STAMPA dalla tastiera o dal
mouse, tale comando viene trasferito dal programma al Sistema
Operativo. Il Sistema Operativo a sua volta trasferisce il
comando al BIOS. Il BIOS si collega alla stampante e trasforma
la richiesta di stampa in una serie di comandi che tale periferica
eseguirà.

COMPITI DI UN SISTEMA OPERATIVO


I compiti di un Sistema Operativo sono:
1. La gestione dell’interfaccia utente e dell’interprete dei
comandi
2. La gestione dei processi
3. La gestione della memoria centrale
4. La gestione delle periferiche di Input/Output
5. La gestione del file system

GESTIONE DELL’INTERFACCIA UTENTE


L’interfaccia utente è il mezzo con il quale l’utente interagisce
con il computer. In particolare, la comunicazione tra l’utente e il
Sistema Operativo è regolata dall’interfaccia utente.
Può accadere che uno stesso sistema operativo possa avere
differenti interfacce.
GESTIONE DELL’INTERFACCIA UTENTE – COME
AVVIENE L’ESECUZIONE DI UN COMANDO
L’utente invia i comandi al computer;
L’interprete dei comandi interpreta i comandi inviati dal
computer;
Il Sistema Operativo manda in esecuzione il comando;
L’interfaccia utente governa la comunicazione tra utente e
Sistema Operativo.

GESTIONE DELL’INTERFACCIA UTENTE


• TTY e/o Pannello. I primi computer avevano come interfaccia
una specie di stampante (TTY o telescrivente) e, spesso, delle
luci sul pannello del computer.
Successivamente venne introdotta l’interfaccia a riga di
comando (CLI), anche detta “interfaccia a caratteri”. Mediante
tale interfaccia (ambiente MS - DOS) era/è possibile impartire
istruzioni al computer, ma l’utente doveva digitare comandi di
testo anche abbastanza complessi con la tastiera e riceveva poi
risposte testuali tramite il display.
Negli anni ’80 comparvero le prime interfacce grafiche utente
(GUI), in cui l’utente poteva comunicare col computer attraverso
il mouse, o con un menù a discesa, o con delle finestre.
L’interfaccia GUI consentiva di interagire con il computer
controllando degli oggetti grafici convenzionali.
Il primo computer con sistema operativo con interfaccia grafica
(detto System 1) venne commercializzato nel 1984 dalla Apple
McIntosh.
Nel 1985 giunse il Commodore Amiga 1000 con interfaccia
grafica Amiga OS, e poi la Microsoft lanciò il Windows 1.
• Con le GUI:
– I programmi assunsero un aspetto più comune;
– Si poteva passare da un documento a un altro e da
un’applicazione a un’altra abbastanza facilmente, perché ogni
applicazione era contenuta in una propria finestra e ogni
documento veniva aperto in una propria finestra;
– Era possibile comunicare col computer attraverso il mouse, o
con un menù a discesa, oppure con delle finestre;
– In tutti i programmi, inoltre, i comandi avevano la stessa
interfaccia e per aprirli bastava muovere il cursore sull’icona del
programma e premere ENTER (o fare clic con il mouse).

GESTIONE DELL’INTERFACCIA UTENTE – OPERARE


CON LE ICONE
Un oggetto può essere selezionato (singolo clic del mouse),
oppure eseguito (doppio clic del mouse).
Quando applichiamo il doppio clic a un’icona:
– se si tratta di un programma, lo si esegue
– se si tratta di una cartella, si visualizza il contenuto
– se si tratta di un documento, si esegue il programma che lo ha
creato.

GESTIONE DELL’INTERFACCIA UTENTE – OPERARE


CON LE FINESTRE
Ogni oggetto viene eseguito in una finestra. La finestra è l’area
dello schermo delimitata da una cornice in cui viene visualizzato
l’output di un programma.
Sul desktop ci possono essere più finestre aperte
contemporaneamente:
– più programmi eseguiti “contemporaneamente”
– una sola è attiva
– l’input è inviato al programma di quella finestra.
Le finestre possono essere aperte, chiuse o ridotte a icona.

GESTIONE DELL’INTERFACCIA UTENTE – LE


INTERFACCE AVANZATE
• Interfaccia Touch Screen: l’interfaccia è del tipo touch screen
di dimensioni medio-grandi e l’interazione è tramite un dito
dell’utente che punta ogni singolo oggetto sullo schermo.
• Interfaccia a Stilo: l’interfaccia è del tipo touch screen e
consente di puntare un comando o di scrivere per mezzo di una
specie di penna (detta stilo).
• Interfaccia Conversazionale: l’interazione avviene mediante
comandi vocali.

GESTIONE DELL’INTERFACCIA UTENTE -


L’INTERPRETE DEI COMANDI
Attraverso l’interfaccia utente, il Sistema Operativo intercetta e
gestisce i comandi impartiti dall’utente.
L’utente può impartire i comandi:
– direttamente, digitandoli da tastiera o utilizzando il mouse;
– indirettamente, inviando la richiesta relativa all’operazione da
seguire attraverso dei programmi applicativi (ad es. inviando il
comando di stampa in un documento del tipo Word).

LA GESTIONE DEI PROCESSI


Un processo è un programma in esecuzione. Mentre il
programma è una semplice lista di istruzioni, al contrario, un
processo è un’attività che viene svolta da un elaboratore
elettronico digitale mediante il controllo di un Sistema
Operativo. Si noti che nel primo caso il concetto espresso ha un
carattere essenzialmente statico, nel secondo caso siamo davanti
un concetto che racchiude in sé un certo carattere dinamico.
LA GESTIONE DEI PROCESSI – LA
MONOPROGRAMMAZIONE
Rappresenta il modo più semplice di gestire un computer e
consisteva nel fare eseguire al computer un programma alla
volta. Era la modalità operativa con la quale funzionavano i
computer che utilizzavano l’interfaccia a caratteri (MS-DOS).
La monoprogrammazione è detta anche monotasking.

LA GESTIONE DEI PROCESSI – LA


MULTIPROGRAMMAZIONE
Rappresenta un modo più complesso di gestire un computer, in
quanto prevede la possibilità di eseguire più programmi
contemporaneamente. Il Sistema Operativo provvede a gestire le
stesse risorse utilizzandole contemporaneamente con vari
programmi. È da notare che, in un dato momento, un solo
programma può utilizzare la CPU; quindi la CPU viene
assegnata a turno ai vari programmi in esecuzione, mediante una
modalità che viene detta time sharing.

LA GESTIONE DEI PROCESSI - SISTEMA OPERATIVO


MULTIUTENZA
È un Sistema Operativo che consente il collegamento simultaneo
di più utenti. Ogni utente deve preventivamente identificarsi
(generalmente mediante username e password) e, una volta
ottenuto l’accesso, ha la possibilità di eseguire
contemporaneamente più programmi. È possibile limitare a
determinati utenti l’uso delle risorse disponibili, consentendo di
effettuare solo alcuni tipi di operazioni.
In ogni caso, ogni utente dispone di un ambiente personalizzato.

LA GESTIONE DELLA MEMORIA CENTRALE


Oltre a gestire i processi, il Sistema Operativo deve anche
gestire la memoria centrale (RAM). Infatti, assegnare ai vari
processi l’utilizzo di tale memoria, in modo che non
interferiscano tra loro. Ogni processo, comunque, avrà l’illusione
di utilizzare per intera la memoria RAM. Ogni processo, in
realtà, si servirà di una memoria virtuale.

LA GESTIONE DELLE PERIFERICHE DI I/O


Il Sistema Operativo deve inoltre gestire le periferiche di
ingresso e di uscita (I/O).
In genere, le periferiche non operano in modo sincrono con la
CPU, ma in modo asincrono, nel senso che nel momento in cui la
periferica stampante esegue la stampa di un documento, la CPU
sta processando altri dati. Tuttavia, le attività svolte dalle singole
periferiche di input e di output e quelle svolte dalla CPU devono
essere sincronizzate. Il Sistema Operativo gestisce tale
sincronizzazione.

LA GESTIONE DEL FILE SYSTEM E DELLE MEMORIE


SECONDARIE
I dati e i programmi vengono archiviati dal computer in memorie
secondarie e in contenitori logici detti file. Il File System è la
modalità di posizionamento e di organizzazione dei file su una
memoria di massa.
Il Sistema Operativo, oltre a svolgere tutte le funzioni viste in
precedenza, gestisce anche i file e il File System. Ogni file viene
identificato da un file name costituito da un nome e da una
estensione, separati da un punto. Il nome viene scelto dall’utente,
l’estensione (doc., jpeg, ecc.) identifica il formato del file.
In base all’estensione, il Sistema Operativo sceglie
l’applicazione per aprire il file.

LA GESTIONE DEL FILE SYSTEM E DELLE MEMORIE


SECONDARIE
Il file system gestisce più memorie secondarie
contemporaneamente (ad es. hard disk, pendrive, DVD, ecc.) e
associa a ogni memoria secondaria collegata al computer una
lettera che la identifichi, oppure un nome.
La maggior parte dei Sistemi Operativi adotta un File System di
tipo gerarchico, in cui le cartelle (contenitori logici detti anche
directory e dotate ognuna di un nome) sono organizzate ad
albero, la cui radice costituisce la directory principale, detta
anche root.
In un File System gerarchico ogni file si trova in una sola
cartella, all’interno della quale non possono esistere due file che
abbiano lo stesso nome e la stessa estensione, cioè che abbiano
lo stesso file name).

LA GESTIONE DEL FILE SYSTEM E DELLE MEMORIE


SECONDARIE – LA FORMATTAZIONE
La formattazione è l’operazione mediante la quale una memoria
secondaria viene resa idonea all’archiviazione dei dati. La
formattazione crea la struttura logica del File System, creando
una tabella detta MFT (Master File Table) in cui verranno scritte
le informazioni che consentiranno poi l’accesso ai dati richiesti
(nel caso di un hard disk, ad es., esso viene suddiviso in tracce,
settori e cluster).
Cancellare un file vuol dire eliminarlo dalla MFT: si tratta di
una cancellazione di tipo logico e non di tipo fisico, in quanto il
file cancellato si trova “fisicamente” ancora sul disco.

Lez. 8/C: IL SISTEMA OPERATIVO


RETI DI COMPUTER – DEFINIZIONE
Una rete di computer è un insieme di dispositivi, sia hardware
che software, collegati da appositi canali di comunicazione che
permette la trasmissione di risorse, informazioni, dati.

RETI DI COMPUTER – COMPONENTI


Le principali componenti di una rete di computer sono:
– I nodi;
– I dispositivi di rete;
– I canali di comunicazione.

I NODI
I nodi sono dei particolari dispositivi hardware che comunicano
con tutti gli altri dispositivi che fanno parte della stessa rete. I
nodi sono quindi i computer, le stampanti di rete, gli smartphone,
i tablet, ecc.
Ogni nodo possiede un proprio numero identificativo che viene
detto indirizzo.

I DISPOSITIVI DI RETE
I dispositivi di rete sono dei particolari nodi che hanno il
compito di garantire il funzionamento, l’efficienza e l’affidabilità
della rete di computer. I dispositivi di rete sono quindi i modem,
i router, gli hub (concentratori), ecc.
Questi dispositivi hanno il compito di instradare i segnali che
vengono trasmessi da un nodo all’altro.
I router sono dei dispositivi di rete che consentono di connettere
tra loro due o più reti.

I CANALI DI COMUNICAZIONE
I canali di comunicazione sono i mezzi di trasmissione che
interconnettono i nodi e i dispositivi di rete. I canali di
trasmissione sono quindi la rete telefonica, i cavi di rete, i
sistemi wireless, i satelliti, ecc.
Esistono poi dei particolari canali di comunicazione costituiti da
cavi ad altre prestazioni, il cui compito è quello di trasportare
grandissime quantità di informazioni. Questi canali di
comunicazione sono detti dorsali.
• I canali di comunicazione dedicati sono quelli che connettono
in modo permanente i nodi e i dispositivi di rete.
• I canali di comunicazione commutati sono invece realizzati
su un’infrastruttura più generale (quale può essere ad es. la linea
telefonica) che utilizzano per periodi di tempo limitati.
RETI DI COMPUTER – COMPONENTI

RETI DI COMPUTER – DIMENSIONI


RETI A DUE SOLI NODI
La rete di computer più semplice che possiamo immaginare è
quella costituita da due soli nodi.
Un esempio potrebbe essere rappresentato da un computer fisso
e un computer portatile che comunicano tra loro. In base alla loro
estensione fisica, le reti cambiano:
– La loro fisionomia
– La loro estensione
– La loro tecnologia

RETI LOCALI (LAN Local Area Network)


Le reti locali (LAN) sono reti di computer che coprono un’area
geografica di dimensioni limitate.
Alcuni es. potrebbero essere un edificio, una fabbrica, un piccolo
agglomerato industriale, un’università.
Ogni nodo di una LAN ha capacità di lavoro autonome, ma
condivide informazioni e risorse con gli altri nodi. Il fatto che i
nodi siano più vicini dal punto di vista geografico consente di
ottenere prestazioni superiori rispetto a quelle delle reti più
estese.
I vantaggi delle LAN sono essenzialmente legati al fatto che:
– C’è una condivisione di risorse;
– C’è una condivisione di software.
Infatti, da un lato il numero di risorse complessive viene limitato
(ad es., c’è una sola stampante per un ufficio con dieci
dipendenti e dieci computer), dall’altro, potendo condividere i
software, si ha la possibilità di installare un solo software che poi
verrà condiviso tra i vari nodi. Ciò comporta economicità (si
acquista un solo software) e facilità di gestione e di
aggiornamento (si aggiorna solo il server).
Altri vantaggi delle reti LAN sono legati al fatto che:
– È possibile il lavoro di gruppo;
– C’è affidabilità.
Infatti, lavorare in gruppo consente, ad es., di utilizzare archivi
condivisi e di scambiarsi informazioni.
D’altra parte, l’affidabilità si riscontra essenzialmente nel fatto
che l’eventuale guasto di una risorsa non compromette la
funzionalità dell’intera rete.

RETI METROPOLITANE (MAN Metropolitan Area


Network)
Le reti metropolitane (MAN) sono reti di computer che
coprono un’area geografica di dimensioni più vaste rispetto a
quelle coperte dalle reti LAN, ma al massimo limitate a un
perimetro cittadino.

RETI GEOGRAFICHE (WAN Wide Area Network)


Le reti geografiche (WAN) sono reti di computer in grado di
coprire un’estensione territoriale equivalente a quella di una o
più regioni, una o più nazioni, e addirittura continenti.

TOPOLOGIA DELLA RETE


La topologia di una rete indica il modello geometrico che
rappresenta le relazioni di connettività tra i nodi della rete. Indica
il modo in cui i dati possono essere trasmessi all’interno della
rete.
La topologia di una rete può assumere varie forme, ad es., quella
di una rete in cui i nodi si susseguono uno dietro l’altro (detta
lineare), oppure quella in cui i nodi sono disposti lungo un
perimetro come a formare un anello (detta ring, o anello).

TOPOLOGIA A STELLA
Una delle possibili topologie di rete è la topologia a stella. La
topologia a stella prevede un nodo centrale, che può essere un
computer, al quale sono direttamente connessi tutti gli altri nodi.
I principali vantaggi di questa tipologia sono che quando si
interrompe il collegamento tra uno dei computer e l’hub
(concentratore) centrale, solo il computer che ha avuto il guasto
non riesce più a inviare o a ricevere i dati; tutti gli altri computer
continuano a lavorare senza problemi.
Inoltre, questo tipo di disposizione ha un basso costo di
manutenzione.

Quando un computer deve inviare un messaggio sulla rete, il


messaggio deve passare prima attraverso il nodo centrale e poi
giungere al calcolatore di destinazione in rete.
Se il traffico sulla rete diventa particolarmente intenso, la
velocità di trasmissione può diventare molto bassa, in quanto le
informazioni hanno necessità di passare prima attraverso il nodo
centrale.
Se il computer centrale subisce un guasto, è l’intera rete con
tipologia a stella che resta paralizzata.
ALCUNE TOPOLOGIE DI RETI POSSIBILI

Lez. 8/D: LA RISOLUZIONE


IL MONITOR
Il monitor è un dispositivo di output. In particolare, è un
dispositivo per la visualizzazione di immagini, testi, video. Le
sue caratteristiche sono:
– La dimensione: è la lunghezza della diagonale, misurata in
pollici (ad es., un monitor da 21 pollici ha una diagonale della
lunghezza di ca. 53 cm);
– La proporzione (detta anche rapporto): è il rapporto tra la
larghezza e l’altezza del monitor (es.4:3, oppure 16:9);
– La risoluzione: il numero di pixel che compongono lo
schermo.
LA RISOLUZIONE
La risoluzione di una immagine indica quanto siano densi i pixel
rispetto alle dimensioni dell’immagine, cioè il numero di pixel
che sono stati utilizzati per creare una certa immagine.
Si usa il termine ppi (pixel per inch) per indicare la risoluzione
di uno schermo, di uno scanner, di una stampante, ecc. Dunque,
la risoluzione è il numero massimo di pixel che possono essere
visualizzati su uno schermo.
È possibile modificare la risoluzione di un monitor verso il
basso, in modo reversibile.
• Diminuendo la risoluzione di un monitor, aumenta la
dimensione fisica degli elementi grafici.
• Aumentando la risoluzione di un monitor, diminuisce la
dimensione fisica degli elementi grafici.
Quindi, diminuire la risoluzione equivale a ingrandire i pixel e
viceversa.

LO SCANNER
La risoluzione è uno dei parametri fondamentali per definire la
qualità di uno scanner.
La risoluzione ottica di uno scanner si riferisce alla risoluzione
delle immagini scansite ed è direttamente proporzionale al
numero di sensori presenti nello scanner.
Per calcolarli occorre dividere l’ampiezza del formato di lettura
per il numero di sensori che sono stati utilizzati. Ad es., uno
scanner dotato di 3400 sensori che legga un foglio largo 8,5
pollici (cioè 22 cm) ha una risoluzione ottica di 400 punti per
pollice (dpi = dots per inch).
La risoluzione massima, invece, indica la risoluzione apparente
di un’immagine. Si ottiene attraverso un programma che si serve
di un processo di interpolazione, aggiungendo altri pixel
all’immagine con lo scopo di conferirle una risoluzione più alta
di quella reale.
Occorre notare che poiché i pixel inseriti dal programma dello
scanner in realtà non aggiungono nulla di nuovo all’immagine
che è stata scansita, si verifica che la definizione dei dettagli
resta invariata.

Potrebbero piacerti anche