Scarica in formato pdf o txt
Scarica in formato pdf o txt
Sei sulla pagina 1di 45

lOMoARcPSD|27411908

Riassunto Introduzione ai sistemi informatici

Comunicazione D'Impresa (Università degli Studi Suor Orsola Benincasa)

Scansiona per aprire su Studocu

Studocu non è sponsorizzato o supportato da nessuna università o ateneo.


Scaricato da Gianni Sini ([email protected])
lOMoARcPSD|27411908

INTRODUZIONE AI SISTEMI INFORMATICI


1. INTRODUZIONE
L’informazione nasce dall’ interesse dell’uomo per poter esprimere ciò che lo circonda. Si crea quando l’uomo
indica un oggetto pronunciando o scrivendo parole: attraverso l’ uso di parole ci si può riferire alle cose senza
che siano fisicamente presenti. L’uomo ha creato molteplici strumenti in grado di supportarlo nell’ elaborazione
delle informazioni:
- strumenti formali: consentono di trattare entità di informazione dotate di una carta struttura, ricavandone
delle condizioni tramite la sola elaborazione (come Excel);
- strumenti materiali: materializzano le entità di informazione per facilitare l’ elaborazione come i regoli.
Nell’ informazione ci servono strumenti di memorizzazione, calcoli che vengono affidati ad utenti, definiti di
elaborazione e scomposizione in operazioni elementari eseguite automaticamente, che devono fare passi
indipendentemente da noi, noi utenti diamo solamente l’ input; chiamiamo programma questo tipo di
operazioni da compiere.
Come è possibile realizzare un dispositivo in grado di elaborare le informazioni in base ad un programma
definito dall’ utente? (prima macchina: Von Neumann nel 1940). Ci sono 3 sottoinsiemi interconnessi:
*interfaccia: sapere quali sono i dati da memorizzare (rende possibile l’interazione con il mondo esterno come
tastiere, stampanti..). Input: dagli utenti ai programmi e ai dati verso il calcolatore, da persona a macchina.
Output: ciò che va dalla macchina all ‘utente (chiedo di visitare un blog, e risponde con l’apertura del blog).
*memorizzazione: il calcolatore deve contenere dati e istruzioni con uguale formato, dati e istruzioni devono
essere ogni volta recuperati dalla memoria ed esso può eseguire programmi diversi.
*elaborazione: il calcolatore deve fare il calcolo chiamato CPU (unità centrale di elaborazione) che legge l’
istruzione e i dati dalla memoria ed elabora questi eseguendo l’ istruzione.
Il programma è dunque un software specificabile dall ‘utente. Gli algoritmi sono importanti perché
individuano le istruzioni che portano alla soluzione. La codifica è come rappresentiamo un’informazione fisica.
L’ informatica è lo studio degli algoritmi che ci consentono, data un’ informazione, di elaborarla e trasformarla.
L’informazione è portata ed èd ha bisogno di essere legata ad un supporto fisico (testo, figure); può essere
scritta su supporti diversi e lo stesso supporto può rappresentare diverse informazioni. E’ un’ entità extrafisica:
si crea e si distrugge e non è interpretabile in termini di materia-energia (condizione necessaria perché un
supporto possa portare un’ informazione è che possa assumere configurazioni differenti, a ognuna delle quali
sia associata una differente entità di informazione, che deve definire come associare questi elementi). Esistono
tre livelli di informazione:
- informazione sintattica: il supporto fisico è adattato alle configurazioni che servono per trasmettere il
messaggio (ci interroghiamo sul supporto fisico);
- informazione semantica: quale significato attribuire ad ogni configurazione (ci interroghiamo sul significato);
- informazione pragmatica: l’informazione era comprensibile al destinatario?
E’ importante per noi il primo livello: un certo supporto può essere utilizzato per memorizzare una certa
quantità di informazione? Con quale velocità e sicurezza trasmetto il messaggio? Teoria dell’ informazione: nel
momento in cui guardo il supporto fisico , deve diminuire la mia ignoranza: la quantità d informazione è data
dalla differenza tra tali grandezze di incertezza, prima e dopo la lettura.
Per passare da un algoritmo al programma dobbiamo scrivere dati in modo che possano essere capiti dalla
macchina, usando il simbolo binario (con il linguaggio naturale rimarrebbe incomprensibile per il computer). Il
sistema binario indica ‘o c’è o non c’è’; il bit è la quantità di informazione che si ottiene selezionando una
configurazione da un insieme che ne contiene due ( assume il ruolo di unità fondamentale o unità di misura). 8
bit formano 1 byte. Il codice binario si basa, quindi su due cifre (0,1). Con 1 bit posso rappresentare due stadi,
con 2 bit posso rappresentarne 4 (01,10,11,00). Per sapere quanti dati posso formare con n bit, elevo il 2 a n
bit: 2n bit=n dati (ad esempio con 8 bit posso rappresentare 256 dati, infatti 2 8=256). Per calcolare l’ inverso, cioè
quanti bit servono per codificare n oggetti utilizzo il logaritmo. Il logaritmo di un numero b è l’ esponente ‘x’ da

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

dare alla base ‘a’ per ottenere che a x=b, in simboli: logab=x ax=b. Per calcolare quanti bit servono per codificare
n oggetti, siccome il bit utilizza due cifre, 0,1, la base a sarà sempre 2; nel caso in cui il numero di bit non
corrisponde al numero di dati preciso, si arrotonda per eccesso( ad esempio se ho 7 dati mi servono 3 bit:
log27=x 2x=7 per trovare x lo sostituisco di volta in volta con un esponente: 2 1=1 22=4 23=8; 3 bit possono
codificare 8 dati, quindi il numero di bit per codificare 7 dati è 3: devo arrotondare per eccesso).
8bit=1byte 1024byte=1KB 1024KB=1MB 1024MB=1GB 1024GB=1TB
Per codificare dati non numerici si passa da codice ASCII a UNICODE.

2. LA CODIFICA
Nella codifica il procedimento matematico da usare è il sistema di numerazione posizionale che distingue la
nostra datazione da quella romana. Il valore di ogni cifra dipende dalla sua posizione, la stessa posizione può
essere adottata per qualsiasi base.
- Conversione da binario a decimale:
11012=1*20 + 0*21+1*22+1*23=1*1 + 1*4 + 1*8 = 1 + 4 + 8= 1310
-Conversione da decimale a binario: o si procede come prima (ma è molto lungo il procedimento), oppure si
divide il numero per il valore base e si scompone l’operazione in quoziente e resto. Il risultato si ricava leggendo
il resto dal basso verso l’alto. Il numero di cifre che compaiono indicano il numero di bit utilizzati (es. nel
numero 1001101 la codifica è su 7 bit, nel numero 110 la codifica è su 3… se dovessi aggiungere 1 bit al
numero in binario basta aggiungere uno 0 davanti il numero stesso, es. 101 ha 3 bit, se aggiungo 1 bit il
risultato è 0101; questo serve per la codifica di un numero negativo – vedi sotto-).

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

57310=?2 573:2=286 resto 1 573 10=10001111012 (codificato su 10 bit)


256:2=143 resto 0
143:2=71 resto 1
71:2= 35 resto 1
35:2= 17 resto 1
17:2=8 resto 1
8:2= 4 resto 0
4:2= 2 resto 0
2:2=1 resto 0
1:2=0 resto 1
Con il numero negativo il procedimento è lo stesso di come se fosse positivo, pero’ dopo aver trovato il
risultato leggendo dal basso verso l’ altro il resto, devo aggiungere 1 a sinistra del numero (che indica il segno
meno)
-5910=?2 5910=1110112 perché 59:2=29 resto 1
29:2=14 resto 1
14:2=7 resto 0
7:2=3 resto 1
3:2=1 resto1 -59 10=11110112
1:2=0 resto 1

Operazioni in binario: 0 e 1 sono i valori falso, vero. OR 0 1


AND: un valore è vero se entrambi sono veri 0 0 1
OR: un valore è vero se almeno uno è vero 1 1 1
NOT: nega il valore di verità dell’ operando.
NOT 0 1
1 0

L’ addizione tra due numeri binari è molto semplice: 1 +1 =0 e riporto 1 nella cifra a sx; nel caso superassi il
numero di bit disponibili vado in overflow.
10101+
1101=
overflow 100010

La lunghezza di bit è il numero massimo rappresentabile; le lunghezze sono fissate: sono multipli di 8 bit (da 0 a
2n-1). La notazione esadecimale lavora in base 16 cioè 24. Utilizza un alfabeto da 0 a 9 e da A a F, per questo tale
codifica ha il vantaggio di essere più sintetica impiegando un alfabeto di 16 cifre.
0000=0 0101=5 1010=A Es. EC 16=11101100 (si divide in gruppi di 4 cifre da dx
0001=1 0110=6 1011=B per risalire al numero in base16)
0010=2 0111=7 1100=C
0011=3 1000=8 1101=D
0100=4 1001=9 1110=E
1111=F
Modulo e segno: 1 bit 0 positivo
1 negativo
La codifica in modulo e segno ha il difetto di duplicare la rappresentazione del numero 0, riducendo di 1 il
numero di valori rappresentabili. Se un numero in binario voglio trasformarlo in negativo basta che trasformi l’
ultima cifra di sx: se questa è 1 la sostituisco con un segno- (es. 110010= -10010).

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

Quando si hanno a disposizione n bit, la codifica può rappresentare i numeri interi tra -2 n-1+1 e 2n-1-1 ( quindi ad
esempio con 4 bit posso rappresentare i numeri da -7 a +7). Un altro metodo per la conversione è la codifica
di un complemento a 2. In tal caso mi viene dato il numero di bit su cui calcolare la codifica (o me lo calcolo) e
procedo nel seguente modo: 2b+x= numero da codificare, dove b è in numero di bit e x il numero dato da
codificare. Es. codifica in complemento a 2 su 8 bit il numero +19
2b+x=28+19=256+19=27510 . procedendo con la scomposizione del numero ottenuto (275) in 2, e leggendo il
resto da basso al’ alto, si troverà il numero equivalente in base2. 275 10=1000100112
Con la codifica posso calcolare il numero equivalente al numero dato in qualsiasi altra base,scomponendo il
numero in 3 (se codificato in base 3), in 4 (se codificato in base 4) e così via.
Il linguaggio di programmazione , in codifica di numeri naturali, è in successione 32bit. La codifica è un
‘operazione, quindi, con cui l’ informazione viene scritta su un supporto fisico: l’ entità di informazione viene
convertita in una seconda entità di informazione e l’entità ottenuta viene scritta sul supposto fisico. Una
codifica può essere realizzata in modo analogo se ha un rapporto d’ analogia (diretto) tra struttura della
configurazione e struttura dell ‘entità di informazione (mente e strumento); la meta-informazione è il supporto,
cioè un’ informazione di informazione). Una codifica è realizzata in modo digitale quando non preserva la
struttura, cioè la meta- informazione è rappresentata solo implicitamente nella codifica.
confronto analogica Digitale
Modalità di definizione della intensionale Estensionale
codifica
Ridefinizione della codifica al
variare del’ insieme delle entità di Nessuna ridefinizione Occorre estendere il processo
informazione
Applicabilità per cardinalità Non finita Entità note a priori, finita
Applicabilità della struttura d’
insieme delle entità di Solo con struttura In ogni caso
informazione
Condizione del supporto Solo con supporto con struttura In ogni caso

La codifica digitale ha successo perché l’ informazione viene scritta su un supporto isolato e perché ha una
minore quantità di informazione che è in grado di portare ed è utilizzabile in sistemi con notevoli capacità di
replica e gestione dei supporti. . Quando si quantizza un ‘informazione si ha una perdità di informazione nel
senso che l’ informazione si divide in più sottoinsiemi: si perde informazione perché si hanno minori
classificazioni; il numero di bit è correlato ai sottoinsiemi. Per campionamento s’ intende il valore preso in certi
istanti di riferimento. Questo porta ad una divisione in sottointervalli, ogni quando abbiamo un
campionamento (frequenza di campionamento, ovvero numero di campioni che vengono acquisiti nell ‘unità di
tempo; se è maggiore la frequenza, si aumenta la precisione).Questo accade anche nelle immagini: la
quantizzazione rappresenta come varia il colore e il campionamento rappresenta lo spazio, cioè il numero di
pixel. La digitalizzazione è quindi il procedimento di approssimazione con uno dei valori compresi nell’ insieme
di quelli previsti. Con la quantizzazione , il parametro è il numero di bit, si discretezza il valore della grandezza;
con il campionamento, il cui parametro è il numero di campioni, si discretezza il tempo in cui la grandezza viene
osservata. Per compressione dei dati s’ intende quel procedimento che a parità di informazione riduce il
numero di bit richiesti; si hanno così vantaggi dal punto di vista dei costi di memorizzazione e di trasmissione
dei dati. Le tecniche di compressione sono:
- Lossless (senza perdita) che mantengono l’ informazione originaria e vi è un rapporto di compressione in
funzione del file.
- Lossy (con perdita) conta di un uso appropriato dell’ informazione, si può perdere parte dell’ informazione
che sarebbe non fruibile (comprensione è direttamente proporzionale alla perdita). Il sistema binario consuma
più bit perché la scala è ridotta.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

3. L’ ELABORAZIONE
Le azioni dell’ uomo sono finalizzate alla soluzione di problemi. Per risolvere un problema: analisi del problema
e identificazione di una soluzione, descrizione della soluzione in termini comprensibili, interpretazione della
soluzione, attuazione della soluzione. La strategia prevede che, per giungere alla descrizione della soluzione di
un programma che sia accettabile per un esecutore, si scomponga il problema in sottoproblemi, e questi in
sottosottoproblemi, fino a giungere a problemi elementari o primitivi, a ciascuno dei quali corrisponde un’
istruzione elementare. Le azioni elementari vengono interpretate in termini funzionali come delle entità che
trasformano i dati che ricevono in ingresso (input) in risultati (output), prescindendo dalle modalità con cui tale
trasformazione viene effettuata, cioè assumendo un modello a scatola nera (black box). Si dice Procedura
effettiva di un esecutore una successione di azioni tali che:
- tutte le azioni della successione sono elementari per l’ esecutore, che è in grado di eseguire ciascuna di esse
in tempo finito e in modo domestico, cioè ottenendo sempre gli stessi risultati a parità di input.
- è fissato l’ ordine di esecuzione delle azioni.
- è esplicitamente specificato il modo in cui un’ azione utilizza i risultati delle azioni che la precedono .
Si definisce Soluzione effettiva del problema per l’ esecutore una successione di istruzioni elementari tali che:

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- l’ esecutore è in grado di interpretare le istruzioni nella successione e di associare a ciascuna di esse l’ azione
che deve compiere per seguirla.
- la successione di azioni risultante dall’ interpretazione delle istruzioni costituisce una procedura effettiva per l’
esecutore stesso.
Gli elementi linguistici che caratterizzano un esecutore sono:
A. Il linguaggio che l’ esecutore in grado di interpretare deve essere definito in modo completo e non
ambiguo: una caratteristica sintattica.
B. L’ insieme di azioni che l’ esecutore è in grado di compiere deve essere definito, e tali azioni devono
essere elementari per l’ esecutore: è una caratteristica pragmatica.
C. L’ insieme delle regole di associazione tra costrutti del linguaggio e azioni deve essere definito in modo
completo e non ambiguo: è una caratteristica semantica.
Un algoritmo è una descrizione della soluzione di un problema espressa nella forma di un insieme di istruzioni
che operano su dati iniziali, consentono di ottenere dei risultati che costituiscono la soluzione del problema.
Tali istruzioni vengono determinate tramite la scomposizione dl problema di partenza in sottoproblemi
elementari , la soluzione di ognuno dei quali è detto step o passo del’ algoritmo. Gli algoritmi sono le soluzioni
effettive per gli esecutori caratterizzati in accordo ai punti A-C. Quando come esecutore si impiega un
calcolatore, è necessario che l’ algoritmo sia descritto in linguaggio formale, chiamato linguaggio di
programmazione, che sia interpretabile dal calcolatore stesso: in tali casi l’ algoritmo viene perciò tradotto in
programma. Gli algoritmi sono generalmente parametrici (producono un risultato che dipende dall’ insieme di
partenza). Un algoritmo descrive la soluzione non di un singolo problema , ma di un’ intera classe di problemi
strutturalmente equivalenti, in cui cambiano solo i dati di partenza. Le istruzioni da cui l’ algoritmo è costituito
fanno riferimento a variabili il cui valore può cambiare a seconda della situazione elaborativa in cui l’ esecutore
si trova. Le variabili possono essere intese come dei ‘contenitori per dati’: ogni variabile ha un nome e un
valore, che in ogni istante corrisponde al dato che contenuto nella variabile. Le istruzioni sono eseguite in
maniera sequenziale e non parallela (MODELLO DI COMPUTAZIONE). L’esecuzione di un algoritmo prevede la
soluzione di un insieme di problemi terminali: per risolvere ogni problema terminale non elementare ( se fosse
elementare verrebbe risolto direttamente, eseguendo la corrispondente azione elementare) occorre dapprima
rendere esplicita una sua scomposizione in sottoproblemi elementari, le cui azioni elementari vengono quindi
eseguite. Algoritmi + strutture dati= programmi. Le strutture dati si dividono in:
- Strutture dati statiche: aggregano una o più variabili dello stesso tipo in una successione costituendo
un vettore. La sua posizione nella successione è indicata con un numero intero progressivo dato indice.
Il numero di elementi di un vettore ne definisce la dimensione. La loro composizione è fissata nel
momento della loro definizione e non può essere modificata durante l’uso. (matrici: tabelle di elementi
identificata da una coppia ordinata di indici, oppure struttura record con campi).
- Strutture dati dinamiche: il vincolo della non modificabilità viene rimosso e di conseguenza diventa
possibile per esempio ridimensionare la successione che costituisce la struttura, aggiungendone o
eliminandone gli elementi, che sono collegati l’ uno con l’ altro attraverso riferimenti appunto
modificabili.
Rappresentazioni degli algoritmi mediante diagrammi di flusso:

inizsi si no

inizio fine operazione in ingr/usc soluzione a 2 vie azione sottoprogramma

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

4. I LINGUAGGI PER LA FORMALIZZAZIONE DELL’ INFORMAZIONE

Un algoritmo non è utilizzabile effettivamente da un esecutore, di principio, ma deve avere l’ ausilio di


calcolatori che devono essere analizzati in funzione delle caratteristiche fisiche del calcolatore stesso. Il
linguaggio di un programma è caratterizzato da due componenti complementari:
- Sintassi: insieme di regole che specificano come comporre le istruzioni;
- Semantica: di ogni istruzione ben formata specifica il significato, quindi la successione delle operazioni
compiute.
I linguaggi di programmazione sono di:
* basso livello (linguaggio macchina): insieme delle istruzioni dei singoli processori, composte da successioni
numeriche che rappresentano i codici operativi del processore e i dati su cui essi operano; direttamente
eseguibile dal processore ed è efficiente per i tempi di esecuzione brevi e la ridotta occupazione di memoria.
* di alto livello: scrivono soluzioni in una logica più vicina alla descrizione del problema da risolvere che non
alle caratteristiche fisiche del calcolatore impiegato; offrono istruzioni elementari più e più vicine al pensiero
del progettista.
La CPU è l’ esecutore delle istruzioni che compongono i programmi (il linguaggio è di interpretazione ed
esecuzione). Il linguaggio macchina è un linguaggio complesso, in cui è difficile individuare errori e il suo uso
diretto è inefficiente, in quanto il linguaggio compone di costrutti tanto elementari da comportare grandi tempi
di sviluppo. Per risolvere questi problemi si impiegano linguaggi di programmazione ad alto livello come il C, il
Java o il Basic. La macchina è in grado di interpretare il linguaggio in cui le istruzioni sono descritte, eseguire le
azioni elementari associate all’ istruzione del linguaggio; per ogni istruzione è, inoltre, in grado di determinare
la successiva istruzione da eseguire. Un’ interpretazione può essere eseguita direttamente nell’ hardware o
nella forma di software.
- Interprete via hardware: si tratta di costruire una macchina fisica in grado di interpretare ed eseguire
direttamente le istruzioni scritte nel linguaggio: CPU di un calcolatore è dunque un interprete hardware
per il suo linguaggio macchina è molto efficiente.
- Interprete via software(di un linguaggio scritto in un dato linguaggio): richiede invece la sua traduzione
in un corrispondente programma nel linguaggio macchina della CPU , operazione che può essere
realizzata secondo due modalità, interpretazione e compilazione. E’ più facile da realizzare; consente di

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

lavorare direttamente con linguaggi di alto livello. L’interprete preleva un’ istruzione del programma, la
decodifica, la traduce in istruzioni nel linguaggio macchina e manda in esecuzione tali istruzioni.
Nella compilazione il programma sorgente viene fornito in ingresso a un programma di traduzione (chiamato
compilatore) che genera un nuovo programma, eseguibile equivalente al primo e codificato nel linguaggio
eseguibile alla CPU. Il risultato finale è un unico modello eseguibile, scritto in linguaggio macchina CPU. Nella
compilazione la traduzione viene effettuata una sola volta rende una prestazione migliore), Per ogni modifica
del programma sorgente la compilazione deve essere ripetuta completamente per rigenerare il codice
eseguibile (nell’ interprete il costo di modifica è nullo). Ogni linguaggio di alto livello consente di tradurre
algoritmi in programmi in accordo a un determinato ‘stile di programmazione’.
Un paradigma di programmazione imperativo-procedurale: è un linguaggio in cui è possibile la struttura di
programmi mediante istruzioni elementari più vicini alla logica del progettista che al modo di funzionale del
calcolatore (1° livello di astrazione). Linguaggi di questo paradigma sono considerati PROCEDURALI (perché
consentono di descrivere esplicitamente, mediante opportune successioni, la procedura necessaria per
risolvere il problema in esame) e IMPERATIVI (ogni istruzione, come accade nei linguaggi assemblativi,
corrisponde all’ invocazione di una funzionalità del calcolatore).
Linguaggio C: traduzione di algoritmo in linguaggio programmazione. Ad ogni variabile è associato un tipo che
identifica la proprietà della variabile e le operazioni che possono essere compilate con il valore della variabile
(per ognuna delle quali può essere distinta una dichiarazione e un’ assegnazione).
Dichiarazione: crea un contenitore per memorizzare una variabile del tipo specificato e associa il nome della
variabile a tale contenitore.
Assegnazione: usa il contenitore per memorizzare un valore (es. z=0).
Le parti fondamentali di un programma sono:
 L’ identificazione del programma: main + {istruzioni}
 Dichiarazioni variabili usate (tipo-nome)
 Specificazione della parte esecutiva del programma
Durante le istruzioni si elaborano i dati con della successione di istruzioni che compone il corpo del
programma; le istruzioni sono di ingresso/uscita (scanf: leggi, printf: scrivi), aritmetiche/logiche (manipolazione
dei dati e elaborazione vera e propria), di controllo (consentono di modificare il flusso di esecuzione delle
istruzioni all’ interno del programma. La struttura più semplice è la cosiddetta ‘salta a identificatore’ chiamata
salto incondizionato perché ogni esecuzione produce il salto all’ istruzione indicata. Per specificare che l’
esecuzione di un blocco di istruzioni deve essere ripetuta un numero determinato di volte esistono strutture di
cicli (loop) messe a disposizione da linguaggi di alto livello. I cicli possono essere a condizione iniziale
( condizione controllata prima di eseguire le istruzioni del ciclo) e condizione a ciclo finale (il controllo avviene a
fine del corpo stesso, quindi avviene almeno un esecuzione). Una variabile è caratterizzata da nome, valore,
tipo. I tipi di variabili sono: numeriche, boleane,… Un operatore overloading è un operatore che viene
sovraccaricato di significato: ‘+’; se
- applicato a variabili numeriche ne somma i valori;
- applicato a variabili di tipo stringa ne concatena per giustapposizione i valori
-applicato a una variabile tipo data e una variabile di tipo numerica aggiorna la data in funzione del numero dei
giorni specificato.
Ci sono situazioni in cui la variabile singola non è sufficiente; i linguaggi di programma di alto livello consentono
di definire variabili strutturate, con le quali riferirsi a più valori reciprocamente correlati come se si trattasse di
un’ unica variabile aggregata.
Es. vettore- array: contiene il numero stabilito di elementi ognuno identificato mediante un indice;
es. matrice: gli elementi sono identificati da più indici contemporaneamente, ognuno corrispondente a una
dimensione della matrice. lI limite principale dei vettori e delle matrici è che gli elementi devono essere tutti
dello stesso tipo.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- File system: è gestito in modo che le directory rappresentano più indici, mentre i file contengono i dati
memorizzati sempre in forma sequenziale (gestisce la memoria di massa).
-ipertesto: documento la cui struttura di consultazione non è lineare e le parti sono organizzate secondo una
struttura più complessa. Ogni parte del documento (nodo) può contenere più punti d’ aggancio per relazioni
(link o hyperlink) che rimandano ad altre parti del documento. Le reazioni definite tra le parti di un documento
sono esse stesse informazione ‘meta-informazione’. I documenti gestiti con modalità ipertestuali sono
tipicamente modulari.
-www (world wide web) è interpretabile come un unico grande documento costituito dall’ insieme di tutte le
pagine web pubblicate nei vari siti attivi internet.
-Multimedialità: insieme di tecnologie finalizzate alla gestione integrata di dati basati su media differenti (dati
che si possono integrare in documenti multimediali sono testi, immagini (ferme o in movimento), suoni,
programmi. Lo sviluppo tecnologico ha condotto alla progressiva integrazione di ipertesti e documenti
multimediali dando vita agli Ipermedia ovvero ipertesti che includono media di natra diversa). Compito del
MIME (Multipurpose internet mail extensions) è di costruire uno schema per fare in modo che gli ipermedia
trattino dati di tipo diverso; è impiegato per abilitare le applicazioni e interpretare il contenuto di pagine web e
posta elettronica. Il suo utilizzo più caratteristico è per la visualizzazione di file in formato Hyper text Markup
Language (HTML), diffuse nel Web.
-linguaggio HTML: progettato con lo scopo di strutturare l’ informazione per renderla accessibile, ponendola
come forma ipertestuale. I file HTML contengono immagini, oggetti multimediale, ecc. Ogni HTML è
identificabile da un nome: i tag (es. <BR> e <P> che introducono un ‘a capo’ e un ‘a capo con salto di linea ’). I
tag spesso modificano il comportamento, come i tag <IMG> che consentono di visualizzare un’ immagine
( memorizzata in file il cui nome deve essere indicato all’ interno del tag come valore dell’ opzione SCR o
source cioè sorgente dell’ immagine. Il tag <HR> introduce un ‘a capo’ e una linea orizzontale. Il file dell’
immagine non è parte del file HTML ma è solo referenziato. Consente la definizione di documento a struttura
ipertestuale . In HTML ogni parte del documento ipertestuale (nodo) è contenuta in un differente file e gli
Anchor point sono identificati dal tag <A>, la cui opzione HREF consente di specificare il nome del file target
relazionato.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

6. HARDWARE
Un calcolatore è composto da diverse componenti: analisi, caratteristiche, funzione.
Le funzioni svolte da un calcolatore sono: ELABORARE, CONTROLLARE, MEMORIZZARE, TRASFERIRE DATI.
I calcolatori sono impiegati per elaborare dati provenienti dall’ ambiente esterno e per fornire all’ ambiente i
risultati ottenuti. Il mercato ha spinto i progettisti a definire un’ architettura di elaborazione generale in grado
di coniugare: flessibilità nel calcolo (fare diversi compiti), modularità della struttura (componenti funzioni
specifiche), stabilità dei documenti (sostituire componenti), abbattimento di costi semplicità di istallazione,
standardizzazione della comunicazione tra i componenti, disponibilità di applicazione a basso costo di vendita.
La memorizzazione avviene sia per i tempi lunghi che brevi, al fine di immagazzinare dati che possano essere
successivamente estratti e modificati, sostituendo in definitiva l’ archivio cartaceo con l’ elettronico. Un
calcolatore deve essere in grado di comunicare con l’ ambiente esterno sia er acquisire dati da
elaborare/memorizzare sia per trasferire i risultati dell’ elaborazione. Questi compiti solitamente vengono
svolti dalle PERIFERICHE, con funzioni di sorgenti o destinatari di dati. I componente principale all’ interno del
calcolatore è l’ unità di elaborazione centrale CPU (central processing unit) cui sono affidate le operazioni di
controllo e di elaborazione. Da tempo le CPU vengono realizzate con tecnologie microelettroniche (chiamate
microprocessori), termine che è diventato sinonimo di PCU. Per la memorizzazione dell’ informazione è
presente anche una memoria centrale. La memoria può essere vista come un insieme di celle adiacenti,
ognuna delle quali caratterizzata da un proprio identificatore univoco, chiamato INDIRIZZO (memory address).
Il collegamento tra queste unità può essere organizzato in modi diversi, ma si è ormai affermata una struttura
standard basata sui concetti di BUS e MASTER SLAVE.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

-BUS: linea alla quale sono connesse contemporaneamente le unità del calcolo e che consentono il
trasferimento di dati tra tali unità. Ogni trasferimento di dati con il bus avviene sotto la supervisione della CPU
che identifica sorgente e destinazione dei dati, e sincronizza con segnali di controllo i dispositivi che devono
colloquiare(si evita così nel BUS la collisione fra dati di competenza delle periferiche diverse). Il bus è scritto
nella scheda madre del calcolatore. Pregi: semplicità (esiste una sola linea di connessione/ costi ridotti di
produzione), estendibilità (l’aggiunta di nuovi dispositivi è molto semplice), standardizzazione (regole per la
comunicazione dei dispositivi). Difetti: lentezza (utilizzo in mutua esclusione del bus), limitata capacità (al
crescere di dispositivi collegati), sovraccarico del processore (CPU: funge da master sul controllo del bus).
Il bus può essere diviso in tre componenti: bus dati, bus indirizzi, bus di controllo. Nella scheda madre è
integrato il bus e sono montate le CPU, la memoria centrale e alcune interfacce di ingresso/uscita. In un
programma, basato sull’ architettura Von Neuman, dati e istruzioni sono memorizzati in una memoria unica
(che permette sia la scrittura sia la lettura); i contenuti della memoria sono indirizzati in base alla loro
posizione, indipendentemente dal tipo di dato o istruzione sia registrato; le istruzioni vengono eseguite in
modo sequenziale. Ogni CPU è caratterizzata dal suo linguaggio macchina (cioè dall’ insieme delle istruzioni
che è in grado di eseguire e dalle modalità di rappresentazione degli operandi). La CPU può essere intesa come
dispositivo che opera in modo ciclico, una volta che le istruzioni del programma e i dati da elaborare sono
resistenti in memoria, le tre fasi sono:
1.lettura (fetch), che indica ‘cosa devo fare?’ e comporta l’ acquisizione della memoria di una delle istruzioni
del programma;
2. decodifica (decode) indica ‘cosa mi dice l’ istruzione?’ e comporta il riconoscimento dell’ istruzione fra quelle
che compongono l’ insieme delle istruzioni e identificazioni delle operazioni che devono essere svolte per
completare l’ esecuzione;
3. esecuzione (executive) indica ‘faccio!’ e serve ad effettuare delle operazioni corrispondenti alle istruzioni
( incluso il recupero della memoria degli operandi e la modifica della successione originaria delle istruzioni).
All’ interno di un processore si identificano due parti principali: l’ unità di controllo e i registri. L’unità di
controllo coordina le operazioni di tutto il processore (anche quelle del data path, ovvero i dispositivi in grado
di elaborare dati,), regola il flusso dei dati ed indica quali registri debbano essere collegati agli ingressi e all’
uscita dell’ ALU (Arithmetic Loogic Unit, unità aritmetica- logica); provvede al prelievo della memoria (fetch)
delle istruzioni da eseguire. I registri sono le unità di memorizzazione temporanea (es. PC: registro program
counter, IR (istruction register) dove il contenuto del bus dati viene copiato.
Un processore che ha un’ architettura semplice, in cui non possono essere effettuate operazioni aritmetico-
logiche su dati che non piano stati precedentemente caricati nei registri, chiamata Load store, dovrà essere in
grado di eseguire: istruzioni aritmetico-logiche, istruzioni di trasferimento dati, istruzioni di salto (che
permettono di modificare il flusso di esecuzione delle istruzioni).
La memoria è in grado di archiviare in forma digitale i programmi e i dati su cui opera la CPU (Von Neaumann) e
mantiene dati per periodi di tempi lunghi fungendo da archivio digitale. La MEMORIA CENTRALE è destinata a
contenere i programmi in esecuzione e i relativi dati, agisce come supporto alla CPU (fornisce dati ed istruzioni
ad alta velocità). La MEMORIA DI MASSA è destinata a contenere grandi moli di dati che non vengono utilizzati
frequentemente (archivio) che salva i dati; le caratteristiche di questa memoria sono: stabilità e costo del bit). I
principali parametri per descrivere una memoria sono:
- Volatilità : le memorie volatili mantengono l’ informazione solo finché vengono alimentate ( se il
computer si spegne, la perdono);
- Velocità di accesso ( per non rallentare la CPU), in base ad essa si calcola la rapidità della memoria nella
realizzazione di operazioni scrittura/lettura.
- Velocità di trasferimento dati (quantità dati trasferibili in unità di tempo)
- Capacità: numero di bit che si possono memorizzare (valutata in byte)
- Costo per bit: calcolato come rapporto costo dell’ unità di memoria- sua capacità espressa in bit.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

Per valutare le prestazioni di un’ unità di memoria si usano di solito i parametri: tempo di accesso, ciclo di
memoria, velocità di trasferimento.
1.Memoria interna a CPU( formata da Registri) ha un accesso molto veloce, mantiene poca informazione e
temporaneamente; è di tipo elettronico (veloce, capacità, volatile, utilizzata per comunicare con la CPU);
2. Memoria esterna a CPU, ma di accesso immediato da parte della stessa (memoria centrale), per mantenere
in modo non permanente le informazioni); è di tipo magnetico (basso costo, no volatilità, lenta);
3. Memoria calcolatore è ausiliaria, non direttamente utilizzabile per l’esecuzione dei programmi da parte della
CPU (memoria di massa), per mantenere informazioni in modo permanente; è di tipo ottico (non scrivibile).
Un’ ulteriore classificazione è definita al metodo di accesso alle celle:
- Sequenziale: dati in fila (usato per la memorizzazione dei nastri magnetici);
- Casuale: accesso uguale per tutti i dati (es. memoria centrale), chiamata RAM (Random Access
Memory), ormai sinonimo di memoria centrale;
- Misto: non determina con precisione la collocazione fisica sul dispositivo di memorizzazione;
- Associativo: metodo ad accesso casuale che effettua un confronto tra alcuni bit in posizioni specifiche
per verificare l’uguaglianza con parole riferimento.
RAM: MEMORIA CENTRALE, mantiene dati e istruzioni dei programmi in esecuzione, è una memoria ad accesso
casuale ed è di tipo VOLATILE.
ROM: MEMORIA NON VOLATILE (read only memory) elettronica e permanente, non è riscrivibile, è usata per
sola lettura.
FLASH: memoria non volatile, utilizzata nei cellulari, mp3, usb, è elettronica e riscrivibile.
Una cella è composta da k bit e ogni cella ha un indirizzo che ci consente l’ accesso casuale alla memoria bit.
Anche gli indirizzi di memoria sono raggruppati come numeri binari. Per gerarchia di memoria s’ intende i modi
in cui sono combinate le diverse tecnologie disponibili. Si possono considerare due livelli adiacenti: memoria
grande e lenta non volatile (costosa e più vicina alla CPU) e memoria piccola e veloce (più economica, se il dato
s trova qui passa direttamente alla CPU).
I dati vengono organizzati in BLOCCHI di dimensioni periferiche. Se il dato si trova nella memoria grande lenta e
viene copiato nella memoria piccola veloce, il meccanismo funziona e si serve del principio di località: gli
accessi vicini se richiedono delle celle vicine (località spaziale), se invece gli accessi successivi richiedono di
nuovo la stessa cella (località temporale).
Nastri magnetici: primi dispositivi (simili ai nastri impiegati nelle audio e videocassette); le informazioni
vengono registrate in formato digitaòe associando ad ogni byte un bit di parità per verificare la correttezza
della registrazione. Le informazioni vengono scritte e lette a blocchi (chiamati record fisici).
Dischi magnetici: tracce concentriche, il materiale magnetico sviene steso su entrambe le facce di un supporto
in forma circolare. Le informazioni sono memorizzate sul disco, in cerchi concentrici (TRACCE), tutti della stessa
lunghezza, corrispondente alla dimensione della testina, che si sposta ma non tocca e guarda se le celle hanno
carica positiva o negativa. Le unità di memoria a dischi tradizionalmente disponibili sono in Hard disk
(memorie sequenziali rispetto ai settori di traccia, ma è una memoria casuale) e Floppy disk (avevano poca
memoria ma erano poco costosi). Accanto ai dischi magnetici sono ormai diffusi i dischi ottici (CD-DVD in cui la
luce viene e non viene riflessa): la lettura avviene utilizzando un raggio laser che esplora la superficie e
identifica il valore dei bit in base alla riflessione del fascio luminoso. I CD sono diversi dai DVD perché i DVD
hanno solchi più piccoli per far starcene di più: sono costituiti da pit e land con dimensioni minori e spirali
serrata (cambia il modo di scrittura).I blue-ray sono avvenuti con cinema ad alta definizione del 2006 e utilizza
u tipo di laser diverso. Ottici riscrivibili: CD-RW/ DVD-RW/ DVD+RW7 DVD-RAM.
Una delle funzionalità principali di un calcolatore è la comunicazione con l’ ambiente esterno con gli utenti,
attraverso dei dispositivi di ingresso/uscita (es. tastiera, video) che prendono il nome di PERIFERICHE. Ogni
periferica viene controllata tramite un’ opportuna interfaccia. La trasmissione dei dati tra interfaccia
ingresso/uscita e periferica può avvenire secondo due modalità: seriale (byte trasmesso in bit per volta) o
parallela (byte e bit sono trasmetti contemporaneamente). I seriali permettono di ottenere prestazioni

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

superiori ai sistemi di connessione paralleli: gli Standard Universal serial bus (USB) e Firewire (IEEE 1394) che
consentono velocità di trasferimento massime di 400 Mbps.
- Operazioni I/O GESTITE: gestione input- output--< il programma controlla lo stato della periferica e se può
inviare nuovi dati.
- Operazioni di I/O con accesso diretto alla memoria (DMA: direct memory access) il programma decide quali
dati vano inviati e i dati vengono trasferiti senza l’ intervento della CPU.

Le principali periferiche sono:


* video e tastiera: ingresso (tastiera) con la pressione di un tasto, l’ unità centrale identifica il segnale, uscita
(monitor). Gli schemi utilizzati nei sistemi informatici si possono dividere in 2: video basato su tubi a raggi
catodici CRT (cathode ray tube) e video basato su schemi a cristalli liquidi (LCD: Liquid Crystal display). In
entrambi i casi lo schermo è costituito da pixel. Al video è associata la memoria RAM, gestita come matrice di
bit. Gli LCD offrono minor ingombro, peso ridotto e minor assorbimento di potenza.
* Dispositivi di puntamento: sistema di interfaccia grafica (GUI: Graphical user interface) che visualizzano sullo
schermo dei riferimenti ai comandi che possono essere eseguiti. L’ utente (questo dispositivo è creato per gli
utenti meno esperti) deve solamente spostare il puntatore (es. mouse) in modo da poter selezionare l’ entità
grafica prescelta, sovrappondendole tale puntatore. I mouse possono essere meccanici ottici, touchpad (si
identifica il movimento di un polpastrello sullo schermo) pointstick (piccoli perni inseriti tra i tasti della tastiera,
capaci d individuare la direzione della pressione esercitata su di essi).
* Stampanti: periferica che permette di riportare su carta i risultati di un’ elaborazione. Sono a getto d’
inchiostro (inkjet) che hanno grande successo commerciale perché basso prezzo d’acquisto, a laser che offrono
una qualità di stampa elevata, e a laser a colori .
* Musica, immagini, video (nuove periferiche): macchine fotografiche digitali (permettono il trasferimento dei
dati) lo stesso nelle videocamere digitali; i DVD; l’ evoluzione della musica digitale, che a portato all’
introduzione di nuovi formati (mp3,WMA..) , alla disponibilità sempre più diffusa di Pc che permette la
distribuzione di file digitali, alla riduzione continua dei costi delle unità di memoria di massa non volatili, basate
su tecnologie magnetiche (dischi fissi ) o ottiche.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

7. SOFTWARE
I software comprendono anche programmi di utilità, che mirano a semplificare l’ interazione del’ utente con il
sistema, chiamati Sistemi operativi. Un sistema operativo deve però anche garantire la correttezza/precisione
nell’ elaborazione e nella trasmissione dei dati; deve consentire all’ utente di superare il problema della
localizzazione delle risorse; deve garantire disponibilità, affidabilità, sicurezza dei sistemi; deve assicurare la
privatezza dei dati; deve consentire la realizzazione di soluzioni aperte; deve superare i problemi legati alla
limitazione del numero di risorse. Le funzioni di un sistema operativo che rappresentano l’infrastruttura sono:
- controllo dell’ esecuzione delle applicazioni - accesso a dispositivi
- archiviazione di dati e programmi - il controllo di accesso
- contabilizzazione - gestione dei multipli funzionamenti
Gli elementi di un sistema operativo sono i sistemi di gestione di: processore, periferiche, utenti e relativi
comandi, della memoria, dei file, della rete. Questi sei elementi interagiscono fa loro per coordinare l’ accesso
alle risorse da parte degli utenti e del software applicativo. Un sistema operativo è dunque un programma
impiegato per controllare altri programmi, eseguiti dallo stesso processore. I nuovi tipi di sistemi operativi
sono: 1) sistema monolitico costituito da un solo processo che provvede all’ esecuzione delle procedure
necessarie alla gestione del sistema.
2) modello a strati: il sistema operativo è strutturato in una successione di strati, ognuno dei quali è
costruito a partire da quelli sottostanti. Ogni strato corrisponde ad una macchina virtuale: insieme di
programmi che realizza funzionalità utilizzando i servizi forniti dal livello inferiore; gestisce risorse specifiche dl
sistema.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

L’ architettura Von Neumann è basata sul rpincipio dell’ esecuzione sequenziale di operazioni elementari.
Elaborazione parallela: utile quando devono scrivere una lettera due persone contemporaneamente( sennò
non sarebbero in grado senza un sistema in grado di operare in parallelo sui dati). Il concetto si riferisce
specificatamente ai dati, alle istruzioni, ai programmi (es. si può ascoltare musica dal computer mentre scrivo
un documento). Le condizioni che un sistema operativo deve soddisfare sono: efficienza (occorre assicurare un
impiego ottimale delle risorse, soprattutto le costose CPU), interattività (poiché molti sistemi sono concepiti per
un’ interazione diretta con l’utente), sincronizzazione/cooperazione( nell’ intento di aumentare l’ impiego della
CPU molte attività al livello di programma vengono paralizzate. Deve essere garantita la conseguente presenza
di più agenti, in grado di operare sul sistema in modo concorrente, al fine di evitare possibili mal
funzionamenti). Le condizioni di parallelismo a livello di programma vengono descritte facendo riferimento ai
processi. Il componente in grado di creare i processi viene detto processore. Nella gestione dei processori da
parte del sistema operativo, ogni processo può trovarsi in uno dei quattro stati seguenti:
1.esecuzione in modalità utente (con il processore a disposizione per l’ esecuzione del processo codice)
2. esecuzione in modalità supervisione (cioè in esecuzione di istruzioni privilegiate)
3. pronto ( in grado e in attesa di essere eseguito non appena il processore diverrà disponibile)
4. in attesa (in grado di essere effettivamente eseguito dal processore).
Un processo in esecuzione in modalità utente cambia stato e passa in esecuzione il modalità supervisore
attraverso una SVC. ( e viceversa) Un processo è in stato d’ attesa per un evento (es. per arrivo di un carattere
da tastiera), passerà in stato di pronto quando la tastiera segnalerà al processore l’ arrivo di tale carattere
mediante una richiesta di interruzione. Quando un processo termina l’ esecuzione in modalità supervisione
sarebbe pronto per tornare in esecuzione in modo utente, il sistema operativo valuta se spostarlo nello stato di
pronto per dare ad altri processi l’ accesso al processore. Tempo di esecuzione (criterio adottato): se è
superiore a un quanto di tempo il processo viene sospeso e posto in stato di pronto. Tra i sistemi in stato di
pronto il sistema operativo valuta quale mandare in esecuzione.
Per superare l’ apparente incompatibilità fra la dimensione della memoria fisica e lo spazio complessivo
richiesto dai programmi che devono essere eseguiti in modo concorrente e dai dati relativi, sono state messe a
punto diverse tecniche. Le varie soluzioni sono basate su una combinazione delle seguenti strategie, che
vengono attuate dal componente del sistema operativo chiamate gestore della memoria ( per consentire un
utilizzo ottimale della memoria disponibile):
- Consentire il caricamento di un programma a partire da un indirizzo qualunque della memoria.
- Ridurre la necessità di spazio tenendo in memoria solo una posizione dei programmi e dati.
- Condividere parte delle istruzioni del codice eseguibile fra diversi processi corrispondenti a uno stesso
programma.
Miglioramenti dell’ uso della memoria:

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

* tecnica swapping: applicata trasferendo su disco i dati relativi ai processi in stato d’ attesa o di pronto per l’
esecuzione.
* suddividere il programma in un certo numero di sezioni, di dimensioni fisse e uguali fra loro, dette pagine
logiche e organizzando anche la memoria fisica in pagine fisiche.
* tecnica della memoria virtuale: permette di operare con programmi la cui dimensione supera quella detta
memoria fisica, poiché per la loro esecuzione, non è necessario che siano contenuti interamente in memoria
centrale.
Gestione delle periferiche: i comandi indipendenti della struttura hardware delle periferiche in questione sono
realizzati facendo uso dei meccanismi di gestione di basso livello che comprendono: controller ( dispositivo
hardware) e driver ( programma software). I primi dipendono dalle caratteristiche fisiche delle periferiche che
gestiscono; lo scopo del driver è di mascherare le caratteristiche specifiche del controller. I driver non sono solo
uno strumento per semplificare la programmazione del sistema o per aumentare il suo livello di
standardizzazione: essi forniscono la visione di una periferica più astratta e potente rispetto a quella esistente.
Le operazioni di base del file system sono (oltre che gestire la memoria di massa): recuperare dati
precedentemente memorizzati, modificare/aggiornare dei dati presenti, eliminare dei dati, copiare dei dati. I
dati contenuti nella memoria di massa vengono strutturati e gestiti in modo efficiente mediante la loro
organizzazione in file, contenitori logici identificati mediante un nome (filename) per facilitarne la
manipolazione da parte degli utenti.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

8. INFRASTRUTTURE DI RETI
Rete di calcolatori: insieme di calcolatori autonomi collegati tra loro mediante una rete di comunicazione. I
vantaggi apportati alle reti sono:
- Condivisione tra gli utenti della rete, indipendentemente dalla loro locazione fisica, di risorse sia
software che hardware (es. software: programma dati. Hardware: stampanti,..)
- Miglioramento dell’ affidabilità del sistema complessivo
- Comunicazione tra gli utenti in forma sincronica/asincronica
- Pubblicazione di risorse informative nella forma di documentazione statistica odi applicazioni eseguite
su calcolatori remoti.
Reti calcolatori si classificano in base a due parametri: tipologia di connessione ( multiplo ovvero broadcast e di
tipo punto a punto) e estensione della rete ( esistono reti di tipo: LAN cioè locali che hanno un’ estensione
limitata, MAN ovvero metropolitane, che hanno grandi dimensioni, le WAN o geografiche, che hanno ampie
dimensioni, le INTERNETWORK o reti di reti che sono collegamenti a più reti diverse). I mezzi di trasmissione
(canale di trasmissione: supporto fisico utilizzato per la trasmissione fra trasmettitore e ricevitore) si dividono
in 2 classi principali:
-Mezzi guidati: linee che portano il segnale fino al ricevitore (segnali elettrici/ ottici).
-Mezzi non guidati: basati sull’ irradiazione di segnali elettromagnetici nello spazio.
Le caratteristiche e le qualità di trasmissione sono determinate dalle caratteristiche sia del mezzo sia del
segnale, in particolare dalle seguenti: valore della capacità del canale, grado di attuazione del segnale,
interferenze tra segnali, numero di ricevitori. I mezzi guidati sono costituiti da Doppio telefonico o cavo
coassiale o fibra ottica (la velocità di trasmissione dipende dalla distanza). Nei mezzi non guidati i segali
vengono ricevuti tramite antenne: l’ antenna del trasmettitore irradia nello spaio onde elettromagnetiche, che
l’ antenna ricevente capta. Esempio: microonde, onde radio, umts (chiamata utra).
Multiplexing: il concetto di multiplexing si applica quando un dispositivo (multiplexer) assolve la funzione di
gestire più segnali provenienti da più trasduttori. Il multiplexer ha la funzione di convogliare su di un’ unica
linea le informazioni presenti sui propri ingressi. Tramite il multiplexing un sistema di misura è in grado di
instradare in modo sequenziale molteplici segnali in un singolo digitalizzatore, offrendo un metodo a basso
costo per aumentare il numero di canali del sistema; è vantaggioso nelle applicazioni con un numero elevato di
canali analogici o da sensore da acquisire.
RETE GEOGRAFICA: Wide Area Network (WAN) può essere intesa come rete di trasmissione tra calcolatori
fisicamente distanti tra loro, collegati attraverso mezzi di trasmissione dedicati. Il livello più interno è costituito
da una rete di trasmissione (si occupa del trasferimento delle informazioni tra diversi nodi); i dati immessi nella
rete da un host (server web connesso a internet in modalità idonea a garantire l’accesso alle pagine del sito
mediante il web brosce dell’ host client dell’ utente, con l’ identificazione dei contenuti tramite dominio ed
indirizzi IP) e spesso transitano attraverso linee ad alta velocità (dorsali). Le reti geografiche si caratterizzano in
base alla strategia utilizzata per instradare i segnali:
- comunicazione a circuito: crea tra sorgente e destinatario un canale logico temporaneo dedicato
costruito da una successione di connessioni tra nodi della rete, così che ogni nodo della rete instrada i
dati lungo il canale predisposto in uscita, senza alcun ritardo.
- comunicazione di pacchetto:si basa sull ‘invio di pacchetti di dati di dimensioni ridotte, generalmente
dell’ ordine dei Kilobyte. Questa tecnica ha enormi vantaggi perché: le linee sono utilizzate in modo più
efficiente, la comunicazione di pacchetto consente un collegamento efficiente anche tra calcolatori
caratterizzati da velocità di trasmissione differenti, in caso di traffico elevato il trasmettitore può inviare
i pacchetti al nodo direttamente connesso (con avviene con le comunicazioni di circuito), è inoltre
possibile gestire comunicazioni a priorità diversa.
Per la trasmissione di segnali che dovrebbero giungere al destinatario in modo continuo e regolare (video,
voce) sono meglio le reti a comunicazione a circuito; qualora il flusso del trasmettitore no n sia continuo
( canali fisici) risultano più efficienti le comunicazioni di pacchetto.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

DSL: rete più diffusa al mondo che sfrutta il doppino telefonico in rame, realizzata per supportare le
comunicazioni telefoniche tradizionali e basata su linee analogiche. Tali connessioni sono spesso realizzate in
modo da essere sempre attive, fornendo una connessione permanente alla rete. La tecnologia ADSL si basa su
un collegamento asimmetrico (perché la velocità di trasmissione dei dati dalla rete dell’ utente, in download è
maggiore rispetto alla velocità di trasmissione possibile per la spedizione di dati da parte dell’ utente, in
upload. Il limite principale ella tecnologia ADSL, che ha avuto il grande merito di costruire il vettore principale
per la diffusione della banda larga in Italia, è legato all’ impiego di un mezzo guidato e alla necessità che tutti
componenti dell’ infrastruttura (cavi,..) siano di qualità sufficiente a trasmettere nell’ intera banda
teoricamente disponibile.
WiMAX: standard di trasmissione dati a microonde che permette di realizzare la copertura a banda larga di
ampie zone territoriali a prescindere dalla conformazione del territorio e dagli ostacoli presenti; può essere
usata per le reti wi-fi.
MODEM: dispositivo che permette di trasferire dati da un calcolatore a un altro utilizzando una connessione
telefonica tradizionale, dunque di tipo ANALOGICO. Nel caso delle linee ADSL, sulla linea telefonica che collega
l’ utente alla centrale di comunicazione della società telefonica transitano sia il traffico dati sia quello voce,
sfruttando la bande di frequenza diversa. Il modem ADSL provvede quindi a gestire il traffico dati senza farsi
influenzare dalle eventuali componenti introdotte nel traffico voce.
RETI LOCALI: mirano a connettere dispositivi posti a distanza ridotta, all’ interno di un edificio, implica l’ utilizzo
di tecnologie diverse da quelle adottate per le reti geografiche. Le LAN hanno ampia larghezza banda, facilità di
connessione, affidabilità all’ interno del sistema, economicità, espandibilità e flessibilità nella modifica delle
dimensioni della rete. Le principali differenze riguardo le tipologie di LAN riguardano: dimensioni della rete. Le
principali differenze riguardo le tipologie LAN riguardano:
1. mezzi di trasmissione utilizzati e la topologia della rete.
2. Metodi di accesso ai mezzi trasmissivi, ossia le regole di accesso al mezzo, che tutte le stazioni collegate
devono rispettare. Due sono le possibilità di scelta: rete clint-server (unicamente collegate
direttamente al serve), rete peer to peer (costituita da un insieme di stazioni connesse in modo
paritetico, non esistono gerarchie tra stazioni per la gestione e il controllo della rete). La prima
possibilità è diversa dalla seconda per: consistenza del software, flessibilità, hardware, memorizzazione
dati, sicurezza, backup.
Per il trasferimento dei dati tra due calcolatori deve esistere un canale di trasmissione che connette le due
diverse stazioni, ma ciò non è sufficiente: il mittente e il destinatario devono accordarsi sulle modalità di
trasferimento dati. I calcolatori cooperati in rete devono cooperare per stabilire una comunicazione: le regole
che formano questa cooperazione sono chiamate protocolli di cooperazione (condividendo uno stesso
protocollo due calcolatori’parlano la stessa lingua’ avendo concordato come comunicare. Si può sviluppare
anche una struttura di protocolli organizzata a livelli o a strati, in cui ogni livello fornisce i servizi necessari a
quelli superiori. Gli elementi chiave di un protocollo sono: sintassi (da eseguire per la formattazione dei blocchi
dei dati), semantica (che riguarda per esempio: le modalità di controllo della trasmissione e gestione degli
errori), la temporizzazione (l’ adattamento della comunicazione alla velocità di trasmissione) e la
sequenzalizzazione delle attività. I 5 livelli sono:
1.livello fisico: definisce l’ interfaccia fisica tra le stazioni per la trasmissione dei dati e il mezzo di trasmissione
2.livello di accesso alla rete: si occupa dello scambio dati fra un sistema finale e la rete cui è collegato,
specificando come organizzare i dati in trame o come trasmetterli sulla rete
3. livello internet ( gestito da protocollo IP)
4.livelo di trasporto (gestito dal protocollo TCP (trasmission control protocol) o host to host
5.livello di applicazione.
Il successo di questa architettura a protocolli si deve alle seguenti ragioni: è un’ eccellente piattaforma per la
realizzazione di applicazione client- server, permette di condividere informazioni tra organizzazione
diversamente connesse alla rete internet, è implementato nella gran parte dei sistemi operativi ed è

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

supportato dai prodotti di bridge e router. Nella LAN i dati vengono trasmessi nella forma digitale, attraverso
un’ opportuna codifica. Ogni LAN è qualificata primariamente dalla sua tipologia, cioè dalla struttura dell’
insieme delle connessioni e del loro numero; può essere a bus, ad anello e a stella. La tipologia a BUS è stata la
prima ad essere utilizzata nella tipologia delle reti locali e richiede un mezzo trasmissivo intrinsecamente
bidirezionale, con trasmissione generalmente in data base (ogni stazione legata alla rete mediante una scheda
di interfaccia di rete chiamata NIC). La LAN può assumere una tipologia a stella: tutte le connessioni fanno capo
ad un nodo centrale che ha il ruolo di server della rete e da cui transitano tutte le comunicazioni. Consente un
controllo centralizzato delle comunicazioni. Tutte le impostazioni di lavoro sono collegate ad un dispositivo
centrale. Nel caso di una configurazione a doppio anello mantiene la funzionalità anche in caso di guasto reti).
Può avere inoltre una struttura ad anello: l’ informazione viene ricevuta a turno da ogni hub (stazione che
verifica se essa è la destinataria del messaggio).
L’ obiettivo specifico della TCP/IP è di nascondere i dettagli delle reti fisiche sottostanti, definendo il formato
degli indirizzi, dei pacchetti e le tecniche di trasferimento. Alcuni elementi inclusi dell’ intestazione TCP solo la
porta di destinazione, il numero d’ ordine nella sequenza, codici di controllo della correttezza (checksum) che
permettono al destinatario di verificare l’ assenza di disturbi che possano aver compromesso la correttezza
della trasmissione. Il protocollo IP definisce uno schema di indirizzamento universale: a ogni stazione collegata
ad una rete TCP/IP è assegnato univocamente un indirizzo di 32 bit, chiamato indirizzo IP (IP address) che viene
rappresentato con una successione di 4 numeri, in forma decimale, separati da un unto (es. 102.54.94.97).
poiché ogni numero di rete deve essere univoco all’ intero insieme di calcolatori connessi a internet, è stata
istituita un’ organizzazione, la IANA ( Internet assigned number authority) proposta ad assegnare un indirizzo IP
garantendone l’ univocità. Al contrario di IP, TCP è un protocollo affidabile: garantisce la consegna di un
messaggio completo di tutte le sue parti e ordinato correttamente; fornisce un campo di controllo che
consente la valutazione della correttezza sia dell’ intestazione TCP sia dei dati. TCP può essere costituito da altri
protocolli (come UDP). La versione attuale di IP ha avuto un notevole successo, ha permesso lo sviluppo
impetuoso di Internet e ha reso possibile la gestione di reti eterogenee mediante la definizione di un formato
uniforme di pacchetti (diagramma IP). U limite evidente degli indirizzi IP è che sono machine- oriented: un
numero binario non è particolarmente facile da ricordare, nemmeno della forma dotted decimal di uso
corrente. Per risolvere questo problema si è diffuso un sistema chiamato Domain Name System DNS che
consente di associare ad ogni indirizzo IP uno o più indirizzi simbolici gestendo contemporaneamente quando
necessario la conversione tra indirizzi DNS e indirizzi IP, il tutto in modo trasparente all’ utente.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

9. LE APPLICAZIONI
Nell’ organizzazione a livelli caratteristica di un sistema informatico, è dunque il livello delle applicazioni l’ unico
con cui usualmente interagisce l’ utente. Il sistema informatico virtuale s presenta come ‘una macchina virtuale
per le applicazioni’: una macchina per elaborare testi quando si opera con un word processor, una macchina
per fare disegni quando si usa un programma di grafica,.. sulla base di un’ adeguata architettura hardware e
software, un programma applicativo può essere interpretato come l’insieme organizzato di 3 componenti:
-sottosistema di interfaccia con l’ utente (IU: user interface): incaricato di acquisire i comandi e i dati che l’
utente fornisce in input al sistema e di presentare in output i risultati dell’ esecuzione del programma.
-sottosistema di logica applicativa (LA, business logic layer) che implementa gli specifici algoritmi di
manipolazione. Dei dati che caratterizzano l’ applicazione.
-sottosistema di gestione dei dati (GD, date layer), che si occupa dell’ organizzazione dei dati, e in particolare
della loro memorizzazione e del loro reperimento efficiente.
IU: un primo modo per realizzare l’ interfaccia utente per questa applicazione è basato su una interazione a
linea di comando. Questo programma opera secondo una logica di interazione IU-LA così schematizzabile:
l’ utente specifica tutti i parametri di input e mette in esecuzione il programma; il programma viene eseguito; il
risultato prodotto nell’ esecuzione viene prestato all’ utente come output del programma; l’ esecuzione
termina.
Sistemi di interfaccia che operano in questo modo vengono chiamati interattivi modali. In questa versione non
è tanto la presentazione grafica, basata appunto su una GUI (graphic user interface), quanto la non modalità
dell’interazione, cioè la possibilità che l’ interfaccia utente offre di immettere i parametri senza una frequenza
prefissata Oggi la gran parte delle applicazioni dotate di un’ interfaccia utente interattiva si presenta in finestre
i cui elementi non solo hanno un’ estetica sempre riconoscibile ma anche operano con funzioni ormai uniformi.
Questo processo di standardizzazione ha prodotto benefici talmente rilevanti da essere progressivamente
esteso anche a elementi non solo visuali del sottosistema IU (es. con F1 chiedo un aiuto al programma in
esecuzione.) Il sottosistema IU da semplice elemento di servizio, come era tradizionalmente, è oggi diventato
una componente critica di molti programmi. Dato che la programmazione è un’ attività tradizionalmente poco
automatica, quindi ad alta intensità di lavoro, l’ obiettivo del riutilizzo del codice è fondamentale. Per poter
scrivere parti in programma adatte ad essere usate più volte in programmi diversi, è necessario innanzitutto
progettarle in modo appropriato e in secondo luogo dotarsi di un meccanismo di assemblaggio dei
sottoprogrammi, in modo da riuscire ad ottenere un effetto analogo nelle costruzioni nel gioco del Lego. La
documentazione della semantica e la sintassi dei vari programmi inclusi in una libreria, costituisce la cosiddetta
interfaccia di programmazione applicativa della libreria, ed è dunque tutto ciò che il programmatore deve
conoscere per poter impiegare la libreria. E’ grazie all’ impiego sistematico di librerie che i programmi possono
essere costruiti in forma modulare, come sistemi che assemblano in modo organico componenti predefiniti. L’
organizzazione per sistemi delle applicazioni si completa arricchendo l’ ambiente di esecuzione con un
programma di servizio chiamato gestione di componenti che tiene traccia di componenti disponibili e coordina
il loro utilizzo da parte delle applicazioni. Il gestore di componenti e l’ insieme di componenti ad esso
amministrato, risiedono in uno strato intermedio, sopra il sistema operativo ma ancora sotto i programmi
applicativi. E’ per questo che alcune volte ci si riferisce ad essi parlando di MIDDLEWARE o anche di
COMPONENTWARE. Tuttavia l’ impiego di un componentware produce due importanti cambiamenti
progettuali:
- Si sfuma la distinzione tra dati e programmi, poiché dei componenti possono essere ospitati in file che
altrimenti sarebbero considerati dei dati.
- Si sfuma la distinzione tra softwrae di base e software applicativo.
Grazie alla presenza di un’ infrastruttura di rete, i sottoinsiemi da cui un’ applicazione è costituita, possono
essere residenti e essere eseguiti anche su calcolatori diversi. È allora necessario disporre anche di un gestore
di componenti distribuiti (DCOM in Windows).Tale organizzazione è quela che rispecchia l’ architettura client-
service: se l’ utente opera con un calcolatore connesso alla rete l’ unico sottosistema che deve essere eseguito

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

localmente è quello incaricato della gestione dell’ interfaccia utente, chiamato componente client dell’ applica
zio ne. I vantaggi di questa architettura sono molteplici: l’ utente deve preoccuparsi solo della parte dell’ intera
applicazione in esecuzione sul suo calcolatore, e può delegare ad altri i problemi di gestione relativi al
sottoinsieme LA e d al sottosistema GD. Il paradigma client server ha costituito per anni il modello di
riferimento per lo sviluppo della stragrande maggioranza delle applicazioni aziendali, poiché consente di
centralizzare sul server tutte le informazioni che necessitano di grande potenza di calcolo e agevola la
manutenzione delle applicazioni. Tuttavia presenta due problemi: è necessario lo sviluppo e il conseguente
onero testing di:
1.apposti protocolli di comunicazione, specializzati per i sistemi su cui l’ applicazioni deve essere eseguita.
2) di client che devono essere ogni volta progettati e realizzati. Il passaggio dalle applicazioni client- server
tradizionali (applicazioni legacy) ad applicazioni web – oriented permette di abbassare i corti di progettazione e
lo sviluppo e di ampliare la possibilità sul lato client. La descrizione generale dell’ architettura client- server si
applica dunque anche sul web; in questo caso il client è il brosce (Mozilla, Firefox) e il server si chiama server
web. Il web può essere inteso come una unica grande applicazione distribuita, costituita dall’ insieme di tutti i
server web accessibili su internet e dai brosce che gli utenti connessi impiegano per navigare. Ai principi
protocolli applicativi di internet è stata associata una porta TCP default, la cui indicazione può essere dunque
omessa in quanto ridondante. (l’ http: hyper text transfer protocoll).
Struttura del sistema e-mal. La scelta di organizzare il sistema di posta elettronica su una architettura client-
serve consente di impiegare i server come intermediari tra i clienti, quindi in particolare come strumenti di
memorizzazione dei messaggi, per ovviare alla temporanea irraggiungibilità del client del destinatario.
Schematizzando:
- Il mittente opera in client e mediante questo invia il messaggio al suo server indicato dalla spedizione.
Il protocollo applicativo impiegato in questa fase è simple mail transfer protocol ( SMTP).
- Il server del mittente invia il messaggio al server che mantiene la mail box del destinatario, ancora
mediante SMTP.

- - il destinatario accede alla sua mail box e ottiene il messaggio in essa contenuta; i protocolli applicativi
impiegati in questa fase sono alternativamente Post Office protocol 3 (POP3) oppure Internet message
acess protocol (Imap). I servizi finalizzati a garantire la sicurezza di tali scambi sono davvero
importanti; occorre garantire: la privatezza dei dati trasmessi, l’ integrità dei dati inviati e idei servizi
richiesti, l’ identità dei partner, la non ripudi abilità degli impegni.

Per soddisfare questi requisiti si adottano tecniche che sono in grado di limitare l’ accesso alle isorse da
parte di utenti e sistemi non autorizzati. Si utilizzano:

 Chiavi simmetriche: la stessa chiave che ha impiegato il mittente per codificare il messaggio dve
essere poi utilizzata dal destinatario per la codifica.
 Chiavi asimmetriche: l’ adozione di questa tecnica prevede che ogni utente disponga di una
propria coppia di chiavi; manterrà la chiave riservata e fornirà l’ latra agli utenti con i quali desidera
comunicare (chiave privata. Chiave pubblica).

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

ESERCIZI DI INFORMATICA

Soluzioni:
1. N° dati= 2numero bit  28= 256 dati
2. N° dati= 2numero bit  26= 64 dati
3. 25= 32 dati 24=16 dati posso rappresentare 30 dati con 5 bit ( 2 sono in eccesso)
4. Gg genaio=31 log231=n° bit 25= 32 dati allora mi servono 5 bit per rappresentare 31 dati
5. Dati: 88 log288=n° bit 26=64 (non bastano) 27=128 la risposta è 7 bit, infatti riesce a rappresentarmi
88 dati ( anche se ne rimangono fuori, bisogna sempre arrotondare per ECCESSO)
6. Dati: 52 log25= n° bit 25= 32 26= 64 (5 bit non bastano allora me ne servono 6)
7. Dati: 8 log28= n° bit 23=8 dati servono allora 3 bit.
Codifica: 000, 001, 010, 100, 110, 101, 011, 111

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

Esercizi di informatica (simulazione)

1. Considerare il numero -5910 e convertirlo in binario (esibire la procedura).

2. Considerare il numero 101112 (in modulo) e convertirlo in decimale (esibire la procedura).

3. Con 8 bit quanti dati diversi si possono rappresentare?


(a) 8 ;
(b) 28 (ovvero 256);
(c) 128.
4. Quale delle seguenti affermazioni è corretta?
(a) la stessa informazione può essere scritta su supporti diversi;
(b) su supporti diversi non può essere scritta la stessa informazione;
(c) l’informazione individua univocamente il supporto sulla quale deve essere scritta.
5. Cosa stampa il seguente programma supponendo che vengano immessi nell’ordine i seguenti valori: 10
20?
main (){
int x,y;
scanf("%d %d",&x,&y);
if (x < y){
x = x+1;
y = y;
}
else{
y= x;
}
printf("%d",y);
}

(a) 10 ;
(b) 20;
(c) 11.

6. Cosa stampa il seguente programma?

main (){
int x,y;
y = 1;
x = 3;
while (y < x){
x = x-1;
if (x == y){
printf("%d",x);
}
}
}

(a) per tre volte viene stampato il valore 1


(b) viene stampato il valore 1 esattamente una volta
(c) vengono stampati nell’ordine i valori 3 2 1

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

1. -5910=?2 5910=1110112 perché 59:2=29 resto 1 complemento a 1 : 000100


29:2=14 resto 1 e aggiungo +1 : 000100 +
14:2=7 resto 0 1=
7:2=3 resto 1 000101
3:2=1 resto1 -59 10=0001012
1:2=0 resto 1

2. 101112= 1*24+ 0*23+ 1*22+1*2+1*20=1*16+1*4+1*2+1*1=16+4+2+1=2310

3. n° dati=2n bit quindi 28=256 dati

4.risposta a: la stessa informazione può essere scritta su supporti diversi

5. x=10 se x < y allora


x = x+1
Y=20 y = y
Altrimenti (cioè se x>y) y=x
Scrivi y
Sostituisco con i dati: 10<20? Si allora x= 10+1=11
Y= 20
Scrivi 20 ( risposta b)

6.x=3 finchè y < x fai x = x-1 se x = y scrivi x (altrimenti ricomincia)


Y=1
finchè 1<3 si allora x=3-1=2 2=1? No allora ricomincio
1<2 sì allora x=2-1=1 1=1? Sì allora scivi x (cioè 1)
Risposta b

7. Che cos’è un programma? (rispondere in massimo 3 righe)


Vedi 1° cap
8. internamente alla CPU c’è una piccola memoria di lettura e scrittura? (risp.a)
(a) sì, è costituita dai registri;
(b) sì, è costituita da una ROM;
(c) sì, è costituita da una RAM;
9. i dati necessari per l’esecuzione di una istruzione da parte della CPU sono reperiti: (risp.a)
(a) nella fase FETCH;
(b) nella fase DECODE;
(c) nella fase EXECUTE.
10. Caratteristica delle memorie ROM è: (risposta c)
(a) non permettere la lettura
(b) non permettere la lettura senza password

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

(c) non permettere la scrittura


(d) permettere la scrittura di dati in ottale (Random Octal Memory).
11. La gestione dei processi: (risposta a)
(a) è compito del Sistema Operativo;
(b) avviene a livello hardware
(c) è compito dell’utente stesso, che decide come utilizzare la CPU
12. Se un processo è nello stato dei processi pronti: (risposta b)
(a) vi rimane sino a quando non è terminato il suo quanto di tempo;
(b) non può transitare nello stato dei processi in attesa;
(c) non potrà più entrare in esecuzione.
13. Un File System (risposta a)
(a) supporta l’identificazione degli accessi al sistema
(b) non è necessaria l’identificazione degli accessi al sistema perché i file non possono essere condivisi
(c) il controllo degli accessi si lascia alla rete, nel caso la macchina venga connessa
14. La topologia (configurazione) a stella può essere adottata da una rete locale? (si)
(a) sì
(b) no
(c) solo se la rete è poi connessa ad una rete più grande
15. Il livello TCP del protocollo TCP/IP ( risposta: c )
(a) si occupa dell’accesso alla rete
(b) si trova a livello applicazione
(c) ha il compito di gestire il trasporto host to host
16. Il DNS (risposta: b))
(a) traduce l’indirizzo macchina IP in una stringa numerica binaria
(b) traduce l’indirizzo macchina IP in un indirizzo simbolico più leggibile
(c) è l’acronimo di Download Numerical System
17. Un router (risposta a)
(a) è un calcolatore dedicato che gestisce l’instradamento nella rete
(b) è un calcolatore dedicato che gestisce l’assegnamento degli indirizzi IP
(c) è sinonimo di host
18. Che cos’è l’indirizzo IP? (dare una riposta concisa e precisa)
Vedi cap8

19. HTTP è: (risposta a)


(a) un protocollo
(b) un linguaggio per scrivere pagine web
(c) un linguaggio di programmazione.
20. I protocolli POP3 e IMAP : (risposta b)
(a) hanno come compito l’invio delle mail;
(b) permettono la lettura della mail depositata sul server;
(c) inviano le mail, purché crittografate

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

INTRODUZIONE AI SISTEMI INFORMATICI


Cap. 1
- Non sono gli strumenti, ma i contenuti a definire la qualità dell’informazione.
- Strumenti con interfaccia: consente di usare tali strumenti senza conoscere i dettagli di funzionamento.
- Il calcolatore digitale ha una peculiarità che lo rende unico nella storia della tecnologia: è un DISPOSITIVO
PROGRAMMABILE, cioè consente di eseguire programmi diversi senza alcuna modifica alla struttura fisica.
- La possibilità di poter modificare il comportamento di un calcolatore, intervenendo solo a livello software e
lasciando inalterato il suo livello hardware ha favorito lo sviluppo di programmi sempre più ricchi di funzionalità e
sempre più facili da usare.

L’ELABORAZIONE DELLE INFORMAZIONI E I SUOI STRUMENTI

- L’informazione può essere anche solo di tipo indicale.


- Per risolvere un problema che comporta la trasformazione di un sistema fisico si possono generalmente dunque
adottare due strategie alternative: INTERVENTO DIRETTO o INTERVENTO GUIDATO DA INFORMAZIONE.
- L’elaborazione dell’informazione può essere condotta “a tavolino” e può essere realizzata sulla base di regole
generali e indipendenti dalla natura degli oggetti (es 2+2 fa sempre 4).
- Nel corso della storia l’uomo ha creato molteplici strumenti che lo supportassero nell’elaborazione
dell’informazione: STRUMENTI FORMALI (consentono di trattare entità di informazione strutturale per via
elaborativa); STRUMENTI MATERIALI (facilitano l’elaborazione materializzando le informazioni).
- Gli attuali sistemi di elaborazione dell’informazione appartengono a questa seconda categoria.
- Nonostante fossero state create le prime calcolatrici meccaniche, si dovette trovare un modo di creare un
dispositivo “di applicabilità generale” (general purpose).
- MACCHINA DI VON NEUMANN (1940): i dati e le istruzioni che operano su questi possono essere codificati in uno
stesso formato, così che un unico dispositivo possa essere impiegato per memorizzare entrambi.
- Questo tipo di calcolatore è costituito da 3 sottosistemi: elaborazione, memorizzazione e interfaccia.
- Il sottosistema di memorizzazione contiene dati e istruzioni; quello di elaborazione (CPU) opera leggendo dalla
memoria le istruzioni e i dati su cui l’istruzione deve operare .
- Nella macchina di Von Neumann infatti il programma non è più parte dell’hardware, ma è integralmente
software.
- Il sottosistema di interfaccia consente agli utenti l’INPUT dei programmi, al calcolatore l’OUTPUT dei risultati
dell’elaborazione.

Cap. 2
- Informatica (definizione della ACM) = studio sistematico degli algoritmi che descrivono e trasformano
l’informazione.
- Informatica = scienza della rappresentazione e dell’elaborazione dell’informazione.

IL CONCETTO DI INFORMAZIONE

- L’informazione è disponibile solo in quanto è accessibile il supporto su cui essa è mantenuta  ogni supporto ha
le sue caratteristiche.
- La stessa informazione può essere scritta su supporti differenti; viceversa uno stesso supporto può portare
differenti informazioni.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- CODIFICA = l’operazione con cui l’informazione viene scritta su un supporto fisico; DECODIFICA = l’operazione con
cui un’informazione viene letta da un supporto fisico.
- L’informazione richiede un supporto fisico, ma non coincide con esso, è una entità extra-fisica  la relazione tra
supporto fisico e informazione è una relazione tra materia e forma.
- Condizione necessaria affinchè un supporto fisico sia in grado di mantenere informazione è perciò che esso possa
assumere configurazioni differenti, a ognuna delle qualità viene assegnata una differente entità di informazione.
- Per interpretare le differenti configurazioni del supporto è necessario un CODICE, cioè una regola, la cui validità è
concordata per convenzione tra tutti coloro che debbano usare quell’informazione di quel supporto. Codice =
relazione che associa a ogni successione di simboli ben formata il dato corrispondente.
- L’informazione complessiva portata dal supporto, chiamata messaggio, si ricava dall’insieme ordinato dei simboli
(le entità di informazione che si corrispondono alle singole configurazioni elementari).

LA CODIFICA DEI DATI E DELLE ISTRUZIONI

- L’unità di elaborazione manipola i dati ed esegue le istruzioni  devono essere in un formato adatto alla
memorizzazione e alla manipolazione.
- Es. per rappresentare i numeri si utilizzano successioni di simboli, scelti da un insieme finito, detto alfabeto. Ad
ogni alfabeto è associato un insieme di regole di composizione, che consentono di identificare dei dati.
Successioni sono associate a dati mediante CODICI (es. posizione delle cifre).
- Dato un alfabeto di n simboli, si ottengono n^k diverse successioni di lunghezza k.

LA CODIFICA BINARIA

- L’alfabeto più semplice per la codifica di dati e istruzioni è costituito da due simboli, “0” e “1”. Un alfabeto di
questo genere è detto BINARIO.
- I dispositivi bistabili, cioè in grado di assumere una tra 2 configurazioni disponibili, vengono usualmente chiamati
BIT  gli elementi dei codici utilizzati dai calcolatori (bit è inoltre l’unità elementare di informazione)
- 8 bit = 1 byte (8 bit = 2^8 = 256 dati diversi).

LA CODIFICA DEI DATI NON NUMERICI

- Nella gran parte delle applicazioni informatiche è necessario trattare con dati non numerici che vengono
generalmente denominate stringhe.
- L’unità elementare elaborata da un calcolatore è un bit, che può assumere il valore 0 o 1.
- Con un singolo bit si possono distinguere due sottoinsiemi, con 2 bit 4 sottoinsiemi, con 3 8 sottoinsiemi (2^1 = 2;
2^2 = 4; 2^3 = 8).
- Dato il numero #S di elementi da identificare, occorre ora determinare la lunghezza k delle successioni richieste
(K = log2 #S).
- Il sistema di codifica più diffuso nella rappresentazione dei caratteri alfanumerici è il cosiddetto codice ASCII
(versione originaria di successioni k = 7; versione estesa copre anche 8 bit) e il codice EBCDIC (8 bit).
- Per rendere possibile la codifica dei caratteri europei è stato istituito un ulteriore standard, UNICODE, basato su
successioni di 16 bit, quindi di 65.535 diversi caratteri.

LA CODIFICA DELLE ISTRUZIONI

- Per rendere possibile l’esecuzione di programmi mediante un calcolare è necessario che questi siano codificati
mediante un linguaggio, chiamato LINGUAGGIO MACCHINA.
- La codifica delle istruzioni segue lo stesso procedimento usato per i caratteri alfanumerici: stabilite quante e quali
sono le istruzioni da codificare, si determina la lunghezza delle successioni di bit e si procede a stabilire una
corrispondenza tra istruzioni e successioni di bit.
- Le istruzioni, oltre al codice operativo, devono contenere ulteriori dati utili a completare l’esecuzione.

LA CODIFICA BINARIA DEI DATI NUMERICI

- Importante: in questo tipo di codifica il valore di ogni cifra dipende dalla posizione assunta nella successioni di
simboli che rappresenta il numero (es. 4243 = 4x10^3+2x10^2+4x10^1+3x10^0).

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- Nel caso della numerazione binaria, l’alfabeto comprende solo due valori 0 o 1. Può essere convertito in base
dieci interpretando ogni cifra della rappresentazione binaria in base dieci.
- Conversione da numero decimale a numero binario: es. 54 = 110110

54:2 = 27 (0)

27:2 = 13 (1)

13:2 = 6 (1)

6:2 = 3 (0)

3:2 = 1 (1)

1:2 = 0 (1)

LA CODIFICA BINARIA DEI NUMERI INTERI

- Il modo più semplice per la codifica in binario dei numeri interi consiste nell’indicarne il segno seguito dal valore
assoluto  questa rappresentazione è chiamata CODIFICA CON MODULO E SEGNO, utilizza il primo bit della
successione per indicare il segno (0 positivo e 1 negativo) e i restanti pe la rappresentazione del valore assoluto
del numero.
- Con n bit, possiamo rappresentare i numeri interi compresi tra -2^n-1 +1 e 2^n-1 -1.

OPERAZIONI ELEMENTARI SUI BIT

Somma binaria:

- 0+0=0
- 0+1=1
- 1+0=1
- 1+1=0

Moltiplicazione binaria:

- 0x0=0
- 0x1=0
- 1x0=0
- 1x1=1

Cap. 3
- Molte azioni che l’uomo compie possono essere interpretate come finalizzate alla soluzione di un problemi. Ogni
problema che richiede elaborazione di informazione è caratterizzato da un insieme di dati di partenza e da un
risultato ricercato, che ne è la soluzione.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- Le fasi di soluzione di un problema sono: analisi e identificazione soluzione di un primo soggetto; descrizione
della soluzione dal primo al secondo soggetto; interpretazione della soluzione del secondo soggetto; attuazione
della soluzione da parte del secondo soggetto.
- I calcolatori sono ESSENZIALMENTE esecutori di soluzioni.

PROBLEMI E ALGORITMI

- Per giungere alla descrivere della soluzione di un problema che sia accettabile per un esecutore, si deve
scomporre il problema in problemi elementari, a ciascuno dei quali corrisponde un’istruzione elementare, che
descrive il problema elementare. Ogni istruzione elementare è associata a un’azione elementare.
- Le azioni elementari vengono interpretate in termini funzionali come delle entità che trasformano i dati che
ricevono in ingresso (input) in risultati (output).
- Si dice soluzione effettiva del problema per l’esecutore una successione di istruzioni tale che l’esecutore sia in
grado di completare, abbiano un ordine fissato per l’esecutore e sia esplicitato il modo in cui un’azione utilizza i
risultati delle azioni precedenti.
- Il linguaggio che l’esecutore è in grado di interpretare deve essere definito in modo completo e non ambiguo
(caratterizzazione sintattica); le azioni che l’esecutore è in grado di compiere devono essere elementari
(caratterizzazione pragmatica); l’insieme delle regole di associazione tra costrutti del linguaggio e azioni deve
essere definito in modo completo e non ambiguo (caratterizzazione semantica).
- Algoritmo = la soluzione di un problema espressa nella forma di un insieme di istruzioni che consentono di
ottenere dei risultati che costituiscono la soluzione del problema.
- Quando come esecutore si impiega un calcolatore, è necessario che l’algoritmo venga tradotto in un linguaggio di
programmazione, cioè in un programma.
- Le fasi di sviluppo di un programma: analisi e identificazione di una soluzione; formalizzazione e definizione
dell’algoritmo; programmazione e traduzione nel linguaggio macchina (eseguito da compilatori o interpreti).

ALCUNI ESEMPI DI ALGORITMI

- Un algoritmo descrive la soluzione non di un singolo problema, ma di una classe equivalente di problemi. Per
questo motivo le istruzioni da cui l’algoritmo è costituito fanno riferimento a VARIABILI (contenitori di dati).
- Ogni variabile è costituita da un NOME, un VALORE e un TIPO (l’insieme dei valori che essa può assumere).
- In un algoritmo i nomi delle variabili possono comparire all’interno di espressioni oppure possono essere usati in
istruzioni di assegnamento.

RAPPRESENTAZIONE ALGORITMI MEDIANTE DIAGRAMMI DI FLUSSO

- Una metodologia utilizzata per descrivere algoritmi fa uso di un linguaggio formale grafico, detto dei diagrammi di
flusso o diagrammi a blocchi.

LE STRUTTURE DATI STATICHE

- Strutture dati e algoritmi costituiscono la natura del programma.


- Aggregando una o più variabili dello stesso tipo in una successione si costruisce un vettore (array). Ogni elemento
del vettore è caratterizzato dal nome del vettore e dalla posizione dell’elemento stesso nella successione, indicata
con un numero intero progressivo detto indice.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- I vettori sono strutture di dati unidimensionali, un singolo indice identifica ogni loro elemento; le matrici invece
sono strutture bidimensionali (coppia ordinata di indici).
- Record: variabili di tipo diverso in una stessa struttura, i cui elementi, chiamati campi, sono individuati non da un
indice, ma da un identificatore alfanumerico.
- Vettori e record sono strutture dati statiche, in quanto la loro struttura interna è fissata al momento della loro
definizione e non può essere modificata durante l’uso.

LE STRUTTURE DATI DINAMICHE

- In una lista, a differenza di un vettore, la posizione di un elemento è definita implicitamente dal vincolo che
impone ad ogni elemento di specificare il riferimento all’elemento successivo. Nella lista si parte dal primo
elemento e si seguono uno per volta i riferimenti, fino a raggiungere l’elemento cercato. L’aggiunta e
l’eliminazione di elementi richiedono lo spostamento solo dei collegamenti tra i nodi.

Cap. 4
- Un programma è dunque un algoritmo scritto in modo da poter essere eseguito (direttamente se il linguaggio
utilizzato è quello macchina, indirettamente se invece è richiesta una fase di traduzione) da un calcolatore.
- Ogni linguaggio di programmazione è caratterizzato da 2 componenti: la sua sintassi (l’insieme delle regole che
specificano come comporre le istruzioni) e la sua semantica (il significato di ogni istruzione ben formata).

I LINGUAGGI DI PROGRAMMAZIONE

- Due tipi di linguaggio di programmazione: linguaggio di BASSO LIVELLO e il linguaggio di ALTO LIVELLO.
- Sono considerati linguaggi di basso livello il linguaggio macchina e i linguaggi di tipo assemblativo, in cui istruzioni
macchina sono sostituite da codici alfanumerici, detti “codici mnemonici”.
- Un programma scritto in un linguaggio di basso livello è direttamente eseguibile dal processore; i linguaggi di alto
livello sono progettati con l’obiettivo di rendere più efficiente lo sviluppo delle applicazioni informatiche.
- Un programma scritto in un linguaggio di alto livello consente di descrivere sia l’algoritmo sia le componenti più
operative di un’applicazione informatica. Un programma è una successione di tali istruzioni, in molti linguaggi di
programmazione, chiamate statement. Mediante un opportuno programma di traduzione, poi, le istruzioni
vengono trasformate in istruzioni scritte in linguaggio macchina per poter essere eseguite.
- Mentre i linguaggi macchina appartengono alla prima generazione, quelli assembly alla seconda, i linguaggi
imperativi o procedurali di uso generale e di alto livello, hanno caratterizzato la terza generazione.
- Ogni linguaggio di alto livello consente di tradurre algoritmi in programmi in accordo ad un determinato “stile di
programmazione”: esistenza di diversi paradigmi di programmazione.

IL PARADIGMA DI PROGRAMMAZIONE IMPERATIVO-PROCEDURALE

- Linguaggi che appartengono a questo paradigma sono considerati procedurali, perché consentono di descrivere
esplicitamente la procedura necessaria per risolvere il problema in esame, e imperativi, perché ogni istruzione
corrisponde all’invocazione di una funzionalità del calcolatore, metaforicamente un “ordine” impartito al sistema.
- Ogni variabile ha associato un tipo, che identifica le proprietà della variabile e le operazioni che possono essere
compiute utilizzando il valore della variabile. Per ogni variabile si possono distinguere la dichiarazione del suo tipo
e l’assegnamento di un valore. La dichiarazione crea un contenitore per memorizzare una variabile del tipo
specificato e associa il nome della variabile a tale contenitore (es. int w). L’assegnamento invece usa il contenitore
per memorizzarvi un valore (es. z=0).
- Le parti fondamentali di un programma sono: identificazione del programma (“main”), le cui istruzioni sono
chiuse tra parentesi graffe; dichiarazione delle variabili utilizzate (indicati tipo e nome); parte esecutiva del
programma, detto corpo del programma. Esistono particolari istruzioni, dette di controllo, che consentono di
modificare il flusso di esecuzione all’interno del programma e che corrispondono alle strutture di controllo.

LE ISTRUZIONI

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- Esistono 3 categorie di istruzioni: istruzioni di ingresso/uscita, istruzioni aritmetico-logiche e istruzioni di


controllo.
- Le istruzioni di ingresso/uscita forniscono al programmatore delle modalità di acquisizione dei dati e di
presentazione dei risultati. Vengono utilizzate rispettivamente le istruzioni “scanf” e “printf”.
- Le istruzioni aritmetico-logiche consentono la manipolazione dei dati e sono quelle che realizzano l’elaborazione
vera e propria. Prendono la forma di assegnamenti: una variabile riceve un valore che è il risultato ottenuto dalla
valutazione di un’espressione che può contenere costanti e variabili (es. z=z+b).
- Le istruzioni di controllo consentono di modificare il flusso di esecuzione delle istruzioni all’interno di un
programma. Si presentano infatti situazioni in cui occorre alterare l’esecuzione puramente sequenziale,
introducendo dei “salti” a istruzioni presenti in un punto qualunque del programma. Strutture di iterazione o cicli
servono a controllare la ripetizione di un blocco di istruzioni finchè una condizione viene verificata.
- Nel ciclo a condizione iniziale la condizione viene controllata prima di eseguire le istruzioni comprese nel ciclo.
- Nel ciclo a condizione finale il controllo della condizione viene effettuato alla fine del corpo del ciclo.

I DATI

- La variabile, oltre al nome e al valore che assume, è caratterizzata anche dal tipo. Alcuni tipi sono di uso comune
che i linguaggi di programmazione già prevedono la loro definizione (tipi predefiniti). Es. i tipi stringa e i tipi data
per la memorizzazione rispettivamente di successioni di caratteri alfanumerici e di date.
- Uno stesso operatore può assumere in questi casi significati alternativi, a seconda del tipo di variabile: un
esempio di operator overloading è il “+” (somma con variabili numeriche; concatena valori con variabili di tipo
stringa; aggiorna la data con variabili di tipo data).
- Con le variabili di struttura ci si può riferire a più valori reciprocamente correlati come se si trattasse di un’unica
variabile aggregata. Un primo strumento per strutturare le variabili è offerto dai vettori (array), che a differenza di
una variabile singola, può contenere un numero n stabilito di elementi.

HTML E LA DEFINIZIONE DI IPERTESTI

- Il linguaggio è stato progettato con lo scopo di struttura l’informazione per renderla appropriatamente accessibile
a essere umani, ponendola in forma “ipertestuale”.
- L’ipertesto è un documento, la cui struttura di consultazione è non lineare. Ogni parte dell’intero documento
(“nodo) può contenere degli “anchor point” per relazioni (“link”) che rimandano ad altre parti del documento
(“nodi target”).
- Gli anchor point sono parti attive, la cui selezione ha come risultato l’attivazione di un link. Le relazioni definite tra
parti di un documento costituiscono esse stesse informazione, propriamente meta-informazione.
- World wide web = unico documento costituito dall’insieme di tutte le pagine web pubblicate nei vari siti attivi in
Internet.
- Multimedialità = l’insieme delle tecnologie finalizzate alla gestione integrata di dati basati appunto su media
differenti. I dati comprendono cinque categorie: testi, singole immagini, immagini in movimento, suoni e
programmi.
- Ipermedia = ipertesti che includono media di natura diversa.
- La capacità di abilitare le applicazioni a interpretare correttamente il contenuto di pagine web e messaggi di posta
elettronica è compito del MIME (text, image..).
- Un file in formato HTML contiene sia del testo, che deve essere visualizzato come tale, sia delle istruzioni (dette
“markup” o “tag”) per la formattazione e l’impaginazione del testo stesso e per l’inclusione di immagini e altri
oggetti multimediali (es. <BR> e <P>, rispettivamente a capo e a capo con salto di linea).
- Il browser si fa carico di interpretare il codice HTML e se incontra un tag <IMG> di accedere al file che contiene
l’immagine e di visualizzarla.

Cap. 6
- Un calcolatore è composto da diverse componenti  ogni componente è contraddistinto da una funzione.
- Le funzioni svolte da un calcolatore sono: ELABORAZIONE DEI DATI; MEMORIZZAZIONE DATI; TRASFERIMENTO
DATI; CONTROLLO.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

1- I calcolatori sono impiegati per elaborare i dati provenienti dall’ambiente esterno e per fornire i risultati ottenuti
all’ambiente. Caratteristiche dell’architettura di elaborazione: flessibilità nel calcolo; modularità della struttura;
scalabilità dei componenti; standardizzazione dei componenti; abbattimento costi; semplicità di installazione e
disponibilità di applicazione a basso prezzo di vendita.
2- La memorizzazione dei dati avviene sia per brevi periodi, che per tempi più lunghi.
3- Un calcolatore deve essere in grado di comunicare con l’ambiente esterno, sia per acquisire dati da elaborare, sia
per trasferire i risultati dell’elaborazione. Questi compiti vengono svolti normalmente da dispositivi ausiliari, detti
periferiche. Le operazioni di trasferimento dei dati tra ambiente e calcolatore da parte delle periferiche, sono
chiamate operazioni di ingresso/uscita (Input/Output).
4- Le operazioni di elaborazione, memorizzazione e trasferimento dei dati, infine, devono essere sottoposte ad un
opportuno controllo. Internamente ad ogni calcolatore è comunque presente un’unità di controllo che coordina
le risorse del calcolatore, al fine di svolgere le operazioni corrispondenti all’esecuzione dei comandi indicati
dall’utente.

ARCHITETTURA DEL CALCOLATORE

- Il componente principale all’interno di un calcolatore è la CPU (central processing unit), a cui sono affidate le
operazioni di controllo e di elaborazione.
- Per la memorizzazione dell’informazione è presente un’unità, chiamata MEMORIA CENTRALE. La memoria può
essere vista come un insieme di celle adiacenti, ognuna caratterizzata da un proprio identificatore univoco,
chiamato indirizzo (memory address), e in cui possono essere scritti o letti dati in formato binario.
- Il collegamento tra queste unità può essere organizzato in modi diversi, ora come ora si sono affermati i BUS o
MASTER SLAVE. Il BUS è una linea alla quale sono contemporaneamente collegate le unità del calcolatore e che
consente il trasferimento di dati tra tali unità. Ogni trasferimento di dati attraverso il bus avviene sotto la
supervisione della CPU, che identifica, mediante il loro indirizzo, la sorgente e la destinazione dei dati e
sincronizza con segnali di controllo i dispositivi che devono colloquiare: ciò per evitare collisioni di dati nel bus.
- Il bus viene di solito integrato nella SCHEDA MADRE (motherboard) del calcolatore, una superficie di materiale
plastico su cui sono spesso montati, oltre al bus, la CPU, la memoria centrale e alcune interfacce di I/O.
- I pregi di un collegamento a bus sono: semplicità; estendibilità; standardizzazione. I difetti sono: lentezza; limitata
capacità; sovraccarico del processore.
- Il bus può essere suddiviso in 3 componenti: il bus dati (utilizzato per trasferire dati); il bus indirizzi (che identifica
la posizione delle celle di memoria in cui la CPU va a leggere o a scrivere); il bus di controllo (in cui transitano i
segnali di controllo).

L’ESECUTORE

- In un programma eseguito da un calcolatore basato sull’architettura di Von Neumann: dati e istruzioni sono
memorizzati in un memoria unica, che permette sia la scrittura che la lettura; i contenuti della memoria sono
indirizzati in base alla loro posizione; le istruzioni vengono eseguite in maniera sequenziale.
- Il linguaggio per cui la CPU si comporta da esecutore è detto LINGUAGGIO MACCHINA. Le istruzioni scritte in
linguaggio macchina sono piuttosto rudimentali. Ogni istruzione è identificata da un codice operativo, mentre gli
operandi indicano gli indirizzi dove recuperare i dati su cui operare e dove copiare i risultati.

LA STRUTTURA DEL PROCESSORE

- La CPU può essere intesa come un dispositivo che opera in modo ciclico, ripetendo fino all’esecuzione dell’ultima
istruzione, le seguenti tre fasi: LETTURA (fetch)  acquisizione dalla memoria di una delle istruzioni del
programma; DECODIFICA (decode)  riconoscimento dell’istruzione e identificazione delle operazioni che
devono essere svolte per completare l’esecuzione; ESECUZIONE (executive)  effettuazione delle operazioni
corrispondenti all’istruzione.
- La CPU si divide in 2 parti principali: l’unità di controllo e il data path. Il data patch comprende tutti i dispositivi in
grado di elaborare i dati (ALU) e alcune unità di memorizzazione temporanea (i registri), in cui i dati da elaborare
e i risultati dell’elaborazione vengono conservati. L’unità di controllo coordina le operazioni di tutto il processore.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- Il ciclo di funzionamento della CPU: prendi l’istruzione corrente dalla moria e mettila nel registro IR; determina il
tipo di istruzione corrente; se l’istruzione usa dei dati presenti in memoria, determinane la posizione; carica i dati
in un registro della CPU; esegui l’istruzione; ripeti il ciclo con l’istruzione successiva.
- Un’architettura semplice, in cui non possono essere effettuate operazioni aritmetico-logiche, viene chiamata
load/store, a indicare rispettivamente le operazioni di caricamento dei dati dalla memoria nei registri (load) e dii
archiviazione dei risultati dai registri nella memoria (store).
- Un processore in un’architettura load/store deve essere in grado di eseguire le seguenti istruzioni: istruzioni
aritmetico-logiche; istruzioni di trasferimento dei dati tra registri e memoria; istruzioni di salto, che permettono di
modificare il flusso di esecuzione delle istruzioni (salto non condizionato e salto condizionato).

LA MEMORIA

- Nell’architettura di Von Neumann l’unità di memoria ha il compito di archiviare in forma digitale i programmi e i
dati su cui opera la CPU, per il tempo di elaborazione. Nei calcolatori attuali la memoria mantiene i dati per
periodi di tempo lunghi, fungendo da archivio digitale.
- Per poter essere efficiente nell’esecuzione dei programmi, la memoria dovrebbe essere veloce come la CPU, per
questo avviene la suddivisione della memoria in due categorie: la memoria centrale, destinata a contenere i
programmi in esecuzione e i relativi dati, agendo come supporto alla CPU (velocità); la memoria di massa,
destinata a contenere grandi moli di dati che non vengono utilizzati frequentemente, ma devono essere
memorizzati in modo permanente (stabilità).
- Le caratteristiche di questa memoria sono: stabilità e costo del bit). I principali parametri per descrivere una
memoria sono: Volatilità, le memorie volatili mantengono l’ informazione solo finché vengono alimentate ( se il
computer si spegne, la perdono); Velocità di accesso (per non rallentare la CPU), in base ad essa si calcola la
rapidità della memoria nella realizzazione di operazioni scrittura/lettura; Velocità di trasferimento dati (quantità
dati trasferibili in unità di tempo); Capacità, numero di bit che si possono memorizzare (valutata in byte); Costo
per bit, calcolato come rapporto costo dell’ unità di memoria/sua capacità espressa in bit.
- Nel passaggio da una tecnologia all’altra (memorie elettroniche/memorie magnetiche/memorie ottiche) si può
notare che al crescere della velocità di accesso crescono anche i costi di memorizzazione per bit. La memoria
centrale viene realizzata con tecnologie elettroniche, la memoria di massa con tecnologie magnetiche e ottiche.
- 3 tipi di memoria: memoria interna alla CPU (i registri); memoria esterna alla CPU (memoria centrale); memoria
calcolatore ausiliaria (memoria di massa).
- Per valutare le prestazioni di un’unità di memoria si usano di solito 3 parametri: tempo di accesso, ciclo di
memoria e velocità di trasferimento.
- Un’ulteriore classificazione è riferita al metodo di accesso alle celle: accesso sequenziale, dati in fila (la lettura di
uno non presuppone la lettura di tutti quelli precedenti); accesso casuale, l’accesso ad una cella non richiede la
lettura delle precedenti (es. la RAM); accesso misto, l’indirizzo di una cella non consente di determinare con
precisione la collocazione fisica sul dispositivo di memorizzazione; accesso associativo, metodo ad accesso
casuale che effettua un confronto tra alcuni bit in posizioni specifiche.
- RAM: MEMORIA CENTRALE, mantiene dati e istruzioni dei programmi in esecuzione, è una memoria ad accesso
casuale ed è di tipo volatile. ROM: memoria non volatile (read only memory) elettronica e permanente, non è
riscrivibile, è usata per sola lettura. FLASH: memoria non volatile, utilizzata nei cellulari, mp3, usb, è elettronica e
riscrivibile.
- Per gerarchia di memoria si intende i modi in cui sono combinate le diverse tecnologie disponibili, in modo da
aumentare le prestazioni e ridurre i costi. Si possono considerare due livelli adiacenti: memoria grande e lenta
non volatile (costosa e più vicina alla CPU) e memoria piccola e veloce (più economica, se il dato s trova qui passa
direttamente alla CPU). I dati vengono organizzati in BLOCCHI di dimensioni prefissate. Quando si cera una parola,
prima si verifica se il blocco in cui essa è contenuta si trova nella memoria veloce, altrimenti si accede alla
memoria grande e si aspetta più tempo.
- Il principio di località: località spaziale e località temporale. Questo principio afferma che le informazioni usate
più recentemente e quelle in posizioni contigue verranno molto probabilmente utilizzate nel prossimo futuro.

I DISCHI E I NASTRI MAGNETICI

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- Nastri magnetici: primi dispositivi (simili ai nastri impiegati nelle audio e videocassette); le informazioni vengono
registrate in formato digitale associando ad ogni byte un bit di parità per verificare la correttezza della
registrazione. Le informazioni vengono scritte e lette a blocchi (chiamati record fisici, separati tra loro da spazi
appositi, chiamati inter-record gap).
- Dischi magnetici: tracce concentriche, il materiale magnetico viene steso su entrambe le facce di un supporto in
forma circolare. Le informazioni sono memorizzate sul disco, in cerchi concentrici (TRACCE), tutti della stessa
lunghezza, corrispondente alla dimensione della testina, che si sposta ma non tocca e guarda se le celle hanno
carica positiva o negativa. L’insieme delle tracce è suddiviso in settori e ogni settore ospita un blocco di dati
(record), separati da spazi vuoti (gap).
- Le unità di memoria a dischi tradizionalmente disponibili sono in Hard disk (alloggiato in un disk drive) e Floppy
disk (funzionano come i dischi fissi con la differenza che ogni unità contiene un solo disco, inserito in una
confezione rigida, che protegge la superficie magnetica quando il disco viene estratto dall’unità di
lettura/scrittura). Il limite dei floppy disk era rappresentato dalla loro scarsa capacità, ormai inadeguata per i
media e i programmi.

I DISCHI OTTICI

- Accanto ai dischi magnetici sono ormai diffusi i dischi ottici (CD-DVD in cui la luce viene e non viene riflessa): la
lettura avviene utilizzando un raggio laser che esplora la superficie e identifica il valore dei bit in base alla
riflessione del fascio luminoso. I CD sono diversi dai DVD perché i DVD hanno solchi più piccoli per far starcene di
più: sono costituiti da pit e land con dimensioni minori e spirali serrata (cambia il modo di scrittura).I blue-ray
sono avvenuti con cinema ad alta definizione del 2006 e utilizza u tipo di laser diverso. Ottici riscrivibili: CD-RW/
DVD-RW/ DVD+RW7 DVD-RAM.

L’INTERFACCIA DI I/O

- Una delle funzionalità principali di un calcolatore è la comunicazione con l’ambiente esterno con gli utenti,
attraverso dei dispositivi di ingresso/uscita (es. tastiera, video) che prendono il nome di PERIFERICHE. Ogni
periferica viene controllata tramite un’ opportuna interfaccia, che ha il compito di tradurre i segnali interni al
calcolatore in un formato appropriato per la periferica stessa (realizzate tramite schede).
- Il collegamento delle schede all’interno del calcolatore al bus avviene per mezzo di connettori, mentre il
collegamento con le periferiche avviene attraverso porte di i/o.
- La trasmissione dei dati tra interfaccia ingresso/uscita e periferica può avvenire secondo due modalità: seriale
(byte trasmesso in bit per volta) o parallela (byte e bit sono trasmetti contemporaneamente). I seriali permettono
di ottenere prestazioni superiori ai sistemi di connessione paralleli.
- Ogni dispositivo di ingresso/uscita, che stabilisce un’interfaccia tra bus e periferica, è dotato di due registri,
chiamati registro dati (dove transitano i dati che vengono scambiati) e registro di controllo (fornisce una serie di
informazioni sullo stato delle periferiche).
- Operazioni I/O GESTITE: gestione input- output il programma controlla lo stato della periferica e se può inviare
nuovi dati.
- Operazioni di I/O con accesso diretto alla memoria (DMA: direct memory access) il programma decide quali dati
vanno inviati e i dati vengono trasferiti senza l’intervento della CPU.

LE PRINCIPALI PERIFERICHE

- Video e tastiera: ingresso (tastiera) con la pressione di un tasto, l’ unità centrale identifica il segnale, uscita
(monitor). Gli schemi utilizzati nei sistemi informatici si possono dividere in 2: video basato su tubi a raggi catodici
CRT (cathode ray tube) e video basato su schemi a cristalli liquidi (LCD: Liquid Crystal display). In entrambi i casi lo
schermo è costituito da pixel. Al video è associata la memoria RAM, gestita come matrice di bit. Gli LCD offrono
minor ingombro, peso ridotto e minor assorbimento di potenza.
- Dispositivi di puntamento: sistema di interfaccia grafica (GUI: Graphical user interface) che visualizzano sullo
schermo dei riferimenti ai comandi che possono essere eseguiti. L’ utente (questo dispositivo è creato per gli
utenti meno esperti) deve solamente spostare il puntatore (es. mouse) in modo da poter selezionare l’ entità
grafica prescelta, sovrapponendole tale puntatore. I mouse possono essere meccanici ottici, touchpad (si

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

identifica il movimento di un polpastrello sullo schermo) pointstick (piccoli perni inseriti tra i tasti della tastiera,
capaci d individuare la direzione della pressione esercitata su di essi).
- Stampanti: periferica che permette di riportare su carta i risultati di un’ elaborazione. Sono a getto d’ inchiostro
(inkjet) che hanno grande successo commerciale perché basso prezzo d’acquisto, a laser che offrono una qualità
di stampa elevata, e a laser a colori .
- Musica, immagini, video (nuove periferiche): macchine fotografiche digitali (permettono il trasferimento dei dati)
lo stesso nelle videocamere digitali; i DVD; l’ evoluzione della musica digitale, che a portato all’ introduzione di
nuovi formati (mp3,WMA..) , alla disponibilità sempre più diffusa di Pc che permette la distribuzione di file
digitali, alla riduzione continua dei costi delle unità di memoria di massa non volatili, basate su tecnologie
magnetiche (dischi fissi ) o ottiche.

Cap. 7
- I componenti fisici da cui i sistemi informatici sono costituiti vengono resi accessibili agli utenti e ai programmi
applicativi attraverso STRUMENTI SOFTWARE, spesso essi comprendono anche programmi di utilità, che mirano a
semplificare l’interazione dell’utente con il sistema. Questo complesso di programmi viene indicato in senso lato
come SISTEMA OPERATIVO.

LE FUNZIONI DEL SISTEMA OPERATIVO

- Un sistema operativo, oltre alla sua funzione principale di fornire dei servizi ai programmi applicativi e agli utenti,
rendendo utilizzabili le risorse fisiche presenti nel sistema informatico, deve inoltre: garantire la correttezza e la
precisione nell’elaborazione e nella trasmissione dell’informazione; garantire la presenza di una rete che
permetta di accedere alle applicazioni da ogni luogo e in ogni momento; garantire affidabilità, disponibilità e
sicurezza dei sistemi; assicurare la privatezza dei dati; consentire la realizzazione di soluzioni aperte che
permettano cioè il funzionamento in uno stesso sistema di componenti hardware e software.
- Il sistema operativo rappresenta quindi un’infrastruttura software che si pone come interfaccia fra l’infrastruttura
hardware e l’utente o il software applicativo e che serve a facilitare l’utilizzo e la gestione delle varie risorse.
- Il sistema operativo può essere inteso come un insieme di moduli software che virtualizzano le caratteristiche
dell’hardware sottostante, offrendo di esso la visione di una macchina astratta, virtuale.
- Le funzioni di servizio del S.O. sono: il controllo dell’esecuzione di applicazioni; l’accesso ai dispositivi di I/O;
l’archiviazione di dati e programmi; il controllo di accesso; la contabilizzazione; la gestione di malfunzionamenti.

GLI ELEMENTI DEL SISTEMA OPERATIVO

- Un sistema di gestione del processore (controlla la PC e definisce quali programmi sono da eseguire); un sistema
di gestione della memoria (controlla l’allocazione della memoria di lavoro ai diversi programmi in esecuzione); un
sistema di gestione delle periferiche (garantire l’accesso ai dispositivi di I/O); un sistema di gestione dei file (per
archiviare e reperire i dati); un sistema di gestione degli utenti e dei relativi comandi (permette agli utenti di
interfacciarsi in maniera intuitiva alle funzionalità del sistema); un sistema di gestione della rete (consente di
interfacciarsi a risorse collegate via rete e di comunicare).
- Un sistema operativo è dunque un insieme di programmi, impiegato per controllare altri programmi, eseguiti
dallo stesso processore.
- Analogia tra il sistema controllore (sistema operativo) e il sottosistema controllato (le applicazioni) : i programmi
applicativi hanno accesso ad un insieme ridotto di risorse, perché possono utilizzare solo un sottoinsieme di
istruzioni del processore con esecuzione in modalità utente, mentre al sistema operativo sono riservate le
istruzioni con esecuzione in modalità supervisore; i programmi applicativi non possono stabilire autonomamente
quando e come accedere alle risorse di sistema: è il sistema operativo stesso che definisce in che ordine e come
soddisfare le richieste che riceve.

IL MODELLO A STRATI

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- Anche il sistema operativo può essere caratterizzato funzionalmente come un insieme di processi, e in particolare
come la combinazione di un insieme di processi di servizio e di un gestore, detto nucleo o kernel, che opera come
sistema di controllo dei processi.
- Il modello a strati è strutturato in una successione di strati, ognuno dei quali costruito a partire da quelli
sottostanti. Le funzioni di gestione delle risorse vengono svolte direttamente dai processi utente. Il nucleo è
semplice e contiene solo i dati necessari a descrivere i processi e le procedure di gestione della concorrenza.
- Grazie a questa struttura le funzioni realizzate dal S.O. sono ripartite in componenti fra loro relativamente
indipendenti e implementate dai processi gestiti dal nucleo. L’unico componente dipendente dalle caratteristiche
hardware del calcolatore.
- I sistemi operativi attualmente diffusi hanno risentito di questa impostazione, essendo strutturati su un modello
evoluto, in cui ogni strato corrisponde ad una macchina virtuale che usa i servizi del livello sottostante per fornire
altri di tipo più astratto.
- I diversi moduli del sistema operativo virtualizzano specifiche risorse fisiche: il nucleo consente ad ogni processo
di considerare il processore completamente dedicato alla sua esecuzione, il modulo della memoria consente di
gestire la memoria centrale come se fosse totalmente dedicata al processo, il gestore delle periferiche permette
al processo di poter interagire con le periferiche in modo astratto, tramite file e il gestore dei file consente al
processo di accedere ai file indipendentemente dalla struttura fisica del disco.
- Il nucleo che interagisce direttamente con l’hardware e si occupa sia dell’esecuzione dei programmi sia della
risposta agli eventi esterni generati dalle periferiche. Lo scopo principale del nucleo è gestire i processi
corrispondenti ai programmi che sono contemporaneamente attivi. Gestisce il contesto di esecuzione dei vari
processi e attua una politica di alternanza (scheduling) nell’accesso alla CPU da parte dei processi in esecuzione.
- Il gestore della memoria ha il compito di controllare la memoria centrale. Il gestore della memoria consente ai
programmi di lavorare in un proprio spazio di indirizzamento virtuale, e di ignorare quindi le effettive zone di
memoria fisica occupata.
- Il gestore delle periferiche rende disponibili ai processi periferiche astratte e ne virtualizza le interfacce e le
specifiche operazioni di I/O mediante i driver di periferica.
- Il gestore dei file (filesystem) si occupa di organizzare dati e programmi in contenitori logici, detti file, ognuno
identificato da un nome e accessibile tramite comandi ad alto livello che rendono trasparenti agli utenti le
operazioni per l’allocazione e l’accesso alla memoria di massa.
- L’interpreta dei comandi è un modulo direttamente accessibile all’utente e che ha la funzione di interpretare i
comandi che gli giungono e di attivare i programmi corrispondenti. Le operazioni che esso svolge in modo
trasparente all’utente sono: lettura della memoria di massa; allocazione della memoria centrale; caricamento del
programma; creazione e attivazione del processo corrispondente.

I PROCESSI

- L’ architettura Von Neumann è basata sul principio dell’ esecuzione sequenziale di operazioni elementari.
Elaborazione parallela: utile quando devono scrivere una lettera due persone contemporaneamente (sennò non
sarebbero in grado senza un sistema che opera in parallelo sui dati). Il concetto di elaborazione parallela si
riferisce specificatamente ai dati, alle istruzioni, ai programmi (es. si può ascoltare musica dal computer mentre
scrivo un documento).
- Le condizioni che un sistema operativo deve soddisfare sono: efficienza (occorre assicurare un impiego ottimale
delle risorse, soprattutto le costose come la CPU); interattività (poiché molti sistemi sono concepiti per un’
interazione diretta con l’utente), sincronizzazione/cooperazione (nell’ intento di aumentare l’ impiego della CPU
molte attività al livello di programma vengono paralizzate).
- Le condizioni di parallelismo a livello di programma vengono descritte facendo riferimento ai PROCESSI: ogni
processo è dunque caratterizzato, non solo da un programma eseguibile e da i relativi dati, ma anche dalle
informazioni relative al suo contesto necessarie per l’esecuzione del programma.

LA GESTIONE DEI PROCESSI

- Il componente in grado di gestire i processi è detto comunemente processore. Nel caso sia presente una sola CPU
simula il parallelismo tra processi. Il processore ha la possibilità di lavorare in due modalità di esecuzione diverse:

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

la modalità utente (possono essere eseguite solo alcune istruzioni) e la modalità supervisore (il processore ha
accesso a tutta la memoria ed è in grado di eseguire tutte le istruzioni).
- Nella gestione dei processori da parte del sistema operativo, ogni processo può trovarsi in uno dei quattro stati
seguenti: esecuzione in modalità utente (con il processore a disposizione per l’ esecuzione del proprio codice);
esecuzione in modalità supervisione (cioè in esecuzione di istruzioni privilegiate o di funzionalità del sistema
operativo); pronto ( in grado e in attesa di essere eseguito non appena il processore diverrà disponibile, processo
messo in coda); in attesa (in grado di essere effettivamente eseguito dal processore, in attesa del verificarsi di un
evento esterno).
- Un processo in esecuzione in modalità utente cambia stato e passa in esecuzione il modalità supervisore
attraverso una SVC, una previa richiesta di un servizio al sistema operativo oppure la rilevazione da parte del
processore di una richiesta di interruzione (interrupt), proveniente in genere da una periferica.
- Un processo è in stato d’ attesa per un evento (es. per arrivo di un carattere da tastiera), passerà in stato di
pronto quando la tastiera segnalerà al processore l’arrivo di tale carattere mediante una richiesta di interruzione.
- Quando un processo termina l’ esecuzione in modalità supervisione sarebbe pronto per tornare in esecuzione in
modo utente, il sistema operativo valuta se spostarlo nello stato di pronto per dare ad altri processi l’accesso al
processore.
- Tra i sistemi in stato di pronto il sistema operativo valuta quale mandare in esecuzione, la politica più semplice è
quella del FIFO, first in first out.

LA GESTIONE DELLA MEMORIA

- Per superare l’ apparente incompatibilità fra la dimensione della memoria fisica e lo spazio complessivo richiesto
dai programmi che devono essere eseguiti in modo concorrente e dai dati relativi, sono state messe a punto
diverse tecniche. Le varie soluzioni sono basate su una combinazione delle seguenti strategie, che vengono
attuate dal componente del sistema operativo chiamato gestore della memoria (per consentire un utilizzo
ottimale della memoria disponibile): consentire il caricamento di un programma a partire da un indirizzo
qualunque della memoria; ridurre la necessità di spazio tenendo in memoria solo una posizione dei programmi e
dati; condividere parte delle istruzioni del codice eseguibile fra diversi processi corrispondenti a uno stesso
programma.
- Queste strategie vengono messe in atto dal componente del sistema operativo chiamato gestore della memoria,
che garantisce ai vari processi uno spazio di indirizzamento virtuale in cui lavorare, che può essere superiore alla
memoria fisica del calcolatore.
- Miglioramenti dell’ uso della memoria: tecnica swapping: applicata trasferendo su disco i dati relativi ai processi
in stato d’ attesa o di pronto per l’ esecuzione; suddividere il programma in un certo numero di sezioni, di
dimensioni fisse e uguali fra loro, dette pagine logiche e organizzando anche la memoria fisica in pagine fisiche;
tecnica della memoria virtuale: permette di operare con programmi la cui dimensione supera quella detta
memoria fisica, poiché per la loro esecuzione, non è necessario che siano contenuti interamente in memoria
centrale.

LA GESTIONE DELLE PERIFERICHE

- I comandi indipendenti della struttura hardware delle periferiche in questione sono realizzati facendo uso dei
meccanismi di gestione di basso livello che comprendono: controller (dispositivo hardware, effettuare a livello
fisico le operazioni di trasferimento dei dati con le periferiche) e driver (programma software, finalizzati alla
gestione delle periferiche).
- I primi dipendono dalle caratteristiche fisiche delle periferiche che gestiscono; lo scopo del driver è di mascherare
le caratteristiche specifiche del controller. I driver non sono solo uno strumento per semplificare la
programmazione del sistema o per aumentare il suo livello di standardizzazione: essi forniscono la visione di una
periferica più astratta e potente rispetto a quella esistente.
- I sistemi Plug&Play consentono al driver l’installazione automatica; un sistema PnP consente di aggiungere (Plug)
nuove periferiche al sistema che possono essere immediatamente utilizzate (Play) senza necessità dell’intervento
da parte dell’utente per la selezione e l’installazione dei driver.

IL FILESYSTEM

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- Le operazioni di base del file system sono, oltre che gestire la memoria di massa: recuperare dati
precedentemente memorizzati; modificare/aggiornare dei dati presenti; eliminare dei dati e copiare dei dati.
- I dati contenuti nella memoria di massa vengono strutturati e gestiti in modo efficiente mediante la loro
organizzazione in file, contenitori logici identificati mediante un nome (filename) per facilitarne la manipolazione
da parte degli utenti. I filename sono generalmente composti da due parti: il nome vero e proprio e l’estensione,
separati da un puntino.
- I file vengono collocati in contenitori logici, chiamati direttori, cataloghi o cartelle (directory), organizzati secondo
una struttura ad albero. Il filesystem contiene una directory, detta radice (root) dell’albero, che può contenere dei
file, ma anche delle altre directory (subdirectory), ognuna delle quali è a sua volta il contenitore per file e per
riferimenti ad altre directory.
- Ciascun file quindi viene individuato univocamente dal suo nome completo, o percorso assoluto (pathname),
ottenuto scrivendo ordinatamente i nomi dei vari nodi che si incontrano a partire dalla radice, intervallati da un
carattere di separazione.

Cap. 8
- Una rete di calcolatori può essere intesa come una serie di calcolatori autonomi, collegati tra loro mediante una
rete di comunicazione. Gli utenti di una rete di calcolatori sono in grado di interagire in modo esplicito con la rete.
- I vantaggi apportati alle reti sono: condivisione tra gli utenti della rete, indipendentemente dalla loro locazione
fisica, di risorse sia software che hardware (es. software: programma dati. Hardware: stampanti,..);
miglioramento dell’ affidabilità del sistema complessivo; comunicazione tra gli utenti in forma
sincronica/asincronica; pubblicazione di risorse informative nella forma di documentazione statistica o di
applicazioni eseguite su calcolatori remoti.
- La condivisione tra gli utenti della rete è diventata il mezzo principale per condividere l’informazione e le risorse
fisiche in ambito lavorativo. Questo modo di organizzare l’informatica aziendale, definito downsizing, ha portato
alla creazione di grandi reti di calcolatori private.
- Reti calcolatori si classificano in base a due parametri: tipologia di connessione (multipunto, ovvero broadcast e
di tipo punto a punto) e estensione della rete (esistono reti di tipo: LAN cioè locali che hanno un’ estensione
limitata, MAN ovvero metropolitane, che hanno grandi dimensioni, le WAN o geografiche, che hanno ampie
dimensioni, le INTERNETWORK o reti di reti che sono collegamenti a più reti diverse, tipo internet).
- Le reti broadcast sono caratterizzate da canali di trasmissione condivisi da tutti i calcolatori della rete. Ogni
calcolatore deve essere identificato univocamente da un indirizzo di rete. Le reti punto a punto sono invece
costituite da più connessioni individuali tra coppie di calcolatori. La comunicazione avviene tra dispositivi
connessi attraverso un canale di trasmissione diretto, che realizza perciò una connessione dedicata.
I MEZZI DI TRASMISSIONE
- I mezzi di trasmissione (canale di trasmissione: supporto fisico utilizzato per la trasmissione fra trasmettitore e
ricevitore) si dividono in 2 classi principali: mezzi guidati (linee che portano il segnale fino al ricevitore (segnali
elettrici/ ottici)); mezzi non guidati (basati sull’ irradiazione di segnali elettromagnetici nello spazio).
- Le caratteristiche e le qualità di trasmissione sono determinate dalle caratteristiche sia del mezzo sia del segnale,
in particolare dalle seguenti caratteristiche: valore della capacità del canale, grado di attuazione del segnale,
interferenze tra segnali, numero di ricevitori.
- I mezzi guidati sono costituiti da doppio telefonico o cavo coassiale o fibra ottica (la velocità di trasmissione
dipende dalla distanza).
- Nei mezzi non guidati i segnali vengono ricevuti tramite antenne: l’antenna del trasmettitore irradia nello spazio
onde elettromagnetiche, che l’antenna ricevente capta. Esempio: microonde, onde radio, umts.
IL MULTIPLEXING
- Multiplexing: il concetto di multiplexing si applica quando un dispositivo (multiplexer) assolve la funzione di
gestire più segnali provenienti da più trasduttori. Il multiplexer ha la funzione di convogliare su un’unica linea le
informazioni presenti sui propri ingressi. Tramite il multiplexing un sistema di misura è in grado di instradare in
modo sequenziale molteplici segnali in un singolo digitalizzatore, offrendo un metodo a basso costo per

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

aumentare il numero di canali del sistema; è vantaggioso nelle applicazioni con un numero elevato di canali
analogici o da sensore da acquisire.
LE RETI GEOGRAFICHE
- Wide Area Network (WAN) può essere intesa come rete di trasmissione tra calcolatori fisicamente distanti tra
loro, collegati attraverso mezzi di trasmissione dedicati. Una rete geografica può essere rappresentata come la
composizione di tre livelli di rete.
- Il livello più interno è costituito da una rete di trasmissione (si occupa del trasferimento delle informazioni tra
diversi nodi); al secondo livello si trova la vera e propria rete di calcolatori, composta dai calcolatori (chiamati
host) collegati agli IMP e il cui scopo è di consentire l’esecuzione delle applicazioni. Al terzo livello si pone infine la
rete degli utenti.
- dati immessi nella rete da un host e vengono instradali alla destinazione passando da IMP a IMP, spesso
transitano attraverso linee ad alta velocità (dorsali).
- Le reti commutate hanno quindi l’indubbio vantaggio di costi inferiori rispetto alle reti dedicate, ma non
forniscono lo stesso livello di privatezza dei dati e spesso nemmeno di prestazioni.
- Le reti geografiche si caratterizzano in base alla strategia utilizzata per instradare i segnali: comunicazione a
circuito (crea tra sorgente e destinatario un canale logico temporaneo dedicato costruito da una successione di
connessioni tra nodi della rete, così che ogni nodo della rete instrada i dati lungo il canale predisposto in uscita,
senza alcun ritardo); comunicazione di pacchetto (si basa sull’invio di pacchetti di dati di dimensioni ridotte,
generalmente dell’ordine dei Kilobyte).
- Questa tecnica ha enormi vantaggi perché: le linee sono utilizzate in modo più efficiente, la comunicazione di
pacchetto consente un collegamento efficiente anche tra calcolatori caratterizzati da velocità di trasmissione
differenti, in caso di traffico elevato il trasmettitore può inviare i pacchetti al nodo direttamente connesso (con
avviene con le comunicazioni di circuito), è inoltre possibile gestire comunicazioni a priorità diversa. L’invio dei
pacchetti di uno stesso messaggio all’interno della rete può essere gestito secondo due approcci: a diagrammi (i
pacchetti vengono trattati in modo indipendente l’un dall’altro) o a circuito virtuale (prima della spedizione dei
pacchetti si stabilisce un cammino tra sorgente e destinazione).
- I criteri per scegliere quale sia la tecnica di commutazione migliore in un determinato contesto sono vari. Per la
trasmissione di segnali che dovrebbero giungere al destinatario in modo continuo e regolare (video, voce) sono
meglio le reti a comunicazione a circuito; qualora il flusso del trasmettitore non sia continuo (canali fisici)
risultano più efficienti le comunicazioni di pacchetto.
DSL, WiMAX E MODEM
- DSL: rete più diffusa al mondo che sfrutta il doppino telefonico in rame, realizzata per supportare le
comunicazioni telefoniche tradizionali e basata su linee analogiche. Tali connessioni sono spesso realizzate in
modo da essere sempre attive, fornendo una connessione permanente alla rete. La tecnologia ADSL si basa su un
collegamento asimmetrico (perché la velocità di trasmissione dei dati dalla rete dell’ utente, in download è
maggiore rispetto alla velocità di trasmissione possibile per la spedizione di dati da parte dell’utente, in upload). Il
limite principale ella tecnologia ADSL, che ha avuto il grande merito di costruire il vettore principale per la
diffusione della banda larga in Italia, è legato all’ impiego di un mezzo guidato e alla necessità che tutti
componenti dell’ infrastruttura (cavi,..) siano di qualità sufficiente a trasmettere nell’intera banda teoricamente
disponibile.
- WiMAX: standard di trasmissione dati a microonde che permette di realizzare la copertura a banda larga di ampie
zone territoriali a prescindere dalla conformazione del territorio e dagli ostacoli presenti; può essere usata per le
reti wi-fi.
- MODEM: dispositivo che permette di trasferire dati da un calcolatore a un altro utilizzando una connessione
telefonica tradizionale, dunque di tipo ANALOGICO. Nel caso delle linee ADSL, sulla linea telefonica che collega
l’utente alla centrale di comunicazione della società telefonica transitano sia il traffico dati sia quello voce,
sfruttando la bande di frequenza diversa. Il modem ADSL provvede quindi a gestire il traffico dati senza farsi
influenzare dalle eventuali componenti introdotte nel traffico voce, a differenza del modem tradizionale.
LE RETI LOCALI
- Mirano a connettere dispositivi posti a distanza ridotta, implica l’utilizzo di tecnologie diverse da quelle adottate
per le reti geografiche. Tradizionalmente, le LAN utilizzano un approccio di tipo broadcast: non esistono cioè nodi
intermedi di commutazione (IMP), ma ogni stazione include un trasmettitore/ricevitore, che comunica su un
canale di trasmissione condiviso con tutte le stazioni della rete.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- Le LAN hanno: ampia larghezza banda, facilità di connessione, affidabilità all’interno del sistema, economicità,
espandibilità e flessibilità nella modifica delle dimensioni della rete.
- Le principali differenze riguardo le tipologie LAN riguardano: mezzi di trasmissione utilizzati e la topologia della
rete; metodi di accesso ai mezzi trasmissivi, ossia le regole di accesso al mezzo, che tutte le stazioni collegate
devono rispettare; l’architettura di rete e i metodi di comunicazione, ovvero il software di rete.
I MEZZI DI TRASMISSIONE E LA TOPOLOGIA DELLA RETE
- Nelle LAN i dati vengono trasmessi in forma digitale, attraverso un’opportuna codifica. Ogni LAN è qualificata
primariamente dalla sua topologia, cioè dalla struttura dell’insieme delle connessioni e dal loro numero. Esistono
tre topologie principali: A BUS, A STELLA, AD ANELLO.
- La topologia a bus  il bus trasmette in broadcast: in ogni istante una sola stazione trasmette e tutte le altre
ricevono. Ogni stazione è collegata alla rete mediante una scheda di interfaccia di rete.
- La topologia a stella  tutte le connessioni fanno a capo ad un unico nodo centrale, che ha il ruolo di server della
rete e da cui transitano tutte le comunicazioni. Questa topologia consente un controllo centralizzato delle
comunicazioni.
- La topologia ad anello  prevede una connessione circolare punto a punto tra le stazioni collegate.
L’informazione transita nell’anello in una direzione e viene ricevuta a turno da ogni stazione, che verifica se essa è
la destinataria del messaggio.
LE TIPOLOGIE DI RETE
- Due sono le possibilità di scelta: rete client-server (unicamente collegate direttamente al serve), rete peer to peer
(costituita da un insieme di stazioni connesse in modo paritetico, non esistono gerarchie tra stazioni per la
gestione e il controllo della rete).
- La prima possibilità è diversa dalla seconda per: consistenza del software, flessibilità, hardware, memorizzazione
dati, sicurezza, backup.
L’ARCHITETTURA DEL SOFTWARE DI RETE
- Per il trasferimento dei dati tra due calcolatori deve esistere un canale di trasmissione che connette le due diverse
stazioni, ma ciò non è sufficiente: il mittente e il destinatario devono accordarsi sulle modalità di trasferimento
dati. I calcolatori cooperati in rete devono cooperare per stabilire una comunicazione: le regole che formano
questa cooperazione sono chiamate protocolli di cooperazione (condividendo uno stesso protocollo due
calcolatori “parlano la stessa lingua” avendo concordato come comunicare). Si può sviluppare anche una
struttura di protocolli organizzata a livelli o a strati, in cui ogni livello fornisce i servizi necessari a quelli superiori.
- In un sistema organizzato a livelli, la trasmissione dell’informazione avviene simulando la connessione tra i livelli
corrispondenti (peer) dei due sistemi che si scambiano blocchi formattati di dati.
- Gli elementi chiave di un protocollo sono: sintassi (da eseguire per la formattazione dei blocchi dei dati),
semantica (che riguarda per esempio le modalità di controllo della trasmissione e gestione degli errori), la
temporizzazione (l’adattamento della comunicazione alla velocità di trasmissione e la sequenzializzazione delle
attività.
- Uno degli obiettivi principali dei protocolli TCP/IP è quello di consentire l’interoperabilità tra reti fisiche diverse, in
modo da poter realizzare una internet.
- TCP/IP è impostato su un’architettura di 5 livelli: livello fisico (definisce l’ interfaccia fisica tra le stazioni per la
trasmissione dei dati e il mezzo di trasmissione); livello di accesso alla rete (si occupa dello scambio dati fra un
sistema finale e la rete cui è collegato, specificando come organizzare i dati in trame o come trasmetterli sulla
rete); livello internet ( gestito da protocollo IP); livello di trasporto (gestito dal protocollo TCP (trasmission control
protocol) o host to host); livello di applicazione (specifica come un’applicazione può utilizzare l’insieme dei
protocolli sottostanti).
- Il successo di questa architettura a protocolli si deve alle seguenti ragioni: è un’ eccellente piattaforma per la
realizzazione di applicazione client- server, permette di condividere informazioni tra organizzazione diversamente
connesse alla rete internet, è implementato nella gran parte dei sistemi operativi ed è supportato dai prodotti di
bridge e router.
- Per identificare in modo non ambiguo i vari dispositivi connessi ad internet è necessario definire uno schema di
indirizzamento generale: sono necessari due livelli di indirizzo. Ogni calcolatore collegato ad una sottorete
necessita di un indirizzo globale unico, che sarà usato da IP per l’instradamento e la consegna. Inoltre ogni
applicazione all’interno di un host deve avere un indirizzo che sia unico all’interno dell’host, per consentire a TCP
di consegnare i dati al processo giusto.

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

- L’ obiettivo specifico della TCP/IP è di nascondere i dettagli delle reti fisiche sottostanti, definendo il formato degli
indirizzi, dei pacchetti e le tecniche di trasferimento. Alcuni elementi inclusi dell’ intestazione TCP solo la porta di
destinazione, il numero d’ordine nella sequenza, codici di controllo della correttezza (checksum) che permettono
al destinatario di verificare l’ assenza di disturbi che possano aver compromesso la correttezza della trasmissione.
Il protocollo IP definisce uno schema di indirizzamento universale: a ogni stazione collegata ad una rete TCP/IP è
assegnato univocamente un indirizzo di 32 bit, chiamato indirizzo IP (IP address) che viene rappresentato con una
successione di 4 numeri, in forma decimale, separati da un unto (es. 102.54.94.97). poiché ogni numero di rete
deve essere univoco all’ intero insieme di calcolatori connessi a internet, è stata istituita un’ organizzazione, la
IANA ( Internet assigned number authority) proposta ad assegnare un indirizzo IP garantendone l’ univocità.
- Al contrario di IP, TCP è un protocollo affidabile: garantisce la consegna di un messaggio completo di tutte le sue
parti e ordinato correttamente; fornisce un campo di controllo che consente la valutazione della correttezza sia
dell’ intestazione TCP sia dei dati. TCP può essere costituito da altri protocolli (come UDP). La versione attuale di
IP ha avuto un notevole successo, ha permesso lo sviluppo impetuoso di Internet e ha reso possibile la gestione di
reti eterogenee mediante la definizione di un formato uniforme di pacchetti (diagramma IP).
INDIRIZZI NUMERICI E INDIRIZZI SIMBOLICI
- Un limite evidente degli indirizzi IP è che sono machine- oriented: un numero binario non è particolarmente
facile da ricordare, nemmeno della forma dotted decimal di uso corrente. Per risolvere questo problema si è
diffuso un sistema chiamato Domain Name System DNS che consente di associare ad ogni indirizzo IP uno o più
indirizzi simbolici gestendo contemporaneamente quando necessario la conversione tra indirizzi DNS e indirizzi IP,
il tutto in modo trasparente all’ utente.

Cap. 9
- Nell’ organizzazione a livelli caratteristica di un sistema informatico, è dunque il livello delle applicazioni l’ unico
con cui usualmente interagisce l’ utente. Il sistema informatico virtuale si presenta come “una macchina virtuale
per le applicazioni”: una macchina per elaborare testi quando si opera con un word processor, una macchina per
fare disegni quando si usa un programma di grafica.
- Sulla base di un’ adeguata architettura hardware e software, un programma applicativo può essere interpretato
come l’insieme organizzato di 3 componenti: sottosistema di interfaccia con l’ utente (IU: user interface):
incaricato di acquisire i comandi e i dati che l’ utente fornisce in input al sistema e di presentare in output i
risultati dell’ esecuzione del programma; sottosistema di logica applicativa (LA, business logic layer) che
implementa gli specifici algoritmi di manipolazione. Dei dati che caratterizzano l’applicazione; sottosistema di
gestione dei dati (GD, date layer), che si occupa dell’ organizzazione dei dati, e in particolare della loro
memorizzazione e del loro reperimento efficiente.

IL SOTTOSISTEMA IU

- Compito della componente di IU di un programma applicativo è di gestire l’interazione del programma con
l’utente. Un primo modo per realizzare l’ interfaccia utente per questa applicazione è basato su una interazione a
linea di comando. Questo programma opera secondo una logica di interazione IU-LA così schematizzabile:
l’utente specifica tutti i parametri di input e mette in esecuzione il programma; il programma viene eseguito; il
risultato prodotto nell’ esecuzione viene prestato all’ utente come output del programma; l’ esecuzione termina.
- Sistemi di interfaccia che operano in questo modo vengono chiamati interattivi modali. In questa versione non è
tanto la presentazione grafica, basata appunto su una GUI (graphic user interface), quanto la non modalità
dell’interazione, cioè la possibilità che l’ interfaccia utente offre di immettere i parametri senza una frequenza
prefissata Oggi la gran parte delle applicazioni dotate di un’ interfaccia utente interattiva si presenta in finestre i
cui elementi non solo hanno un’ estetica sempre riconoscibile ma anche operano con funzioni ormai uniformi.
Questo processo di standardizzazione ha prodotto benefici talmente rilevanti da essere progressivamente esteso
anche a elementi non solo visuali del sottosistema IU (es. con F1 chiedo un aiuto al programma in esecuzione.)
- Il sottosistema IU da semplice elemento di servizio, come era tradizionalmente, è oggi diventato una
componente critica di molti programmi. Dato che la programmazione è un’ attività tradizionalmente poco
automatica, quindi ad alta intensità di lavoro, l’obiettivo del riutilizzo del codice è fondamentale. Per poter
scrivere parti in programma adatte ad essere usate più volte in programmi diversi, è necessario innanzitutto

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

progettarle in modo appropriato e in secondo luogo dotarsi di un meccanismo di assemblaggio dei


sottoprogrammi, in modo da riuscire ad ottenere un effetto analogo nelle costruzioni nel gioco del Lego. La
documentazione della semantica e la sintassi dei vari programmi inclusi in una libreria, costituisce la cosiddetta
interfaccia di programmazione applicativa della libreria, ed è dunque tutto ciò che il programmatore deve
conoscere per poter impiegare la libreria.
- E’ grazie all’ impiego sistematico di librerie che i programmi possono essere costruiti in forma modulare, come
sistemi che assemblano in modo organico componenti predefiniti. L’ organizzazione per sistemi delle applicazioni
si completa arricchendo l’ ambiente di esecuzione con un programma di servizio chiamato gestione di
componenti che tiene traccia di componenti disponibili e coordina il loro utilizzo da parte delle applicazioni. Il
gestore di componenti e l’ insieme di componenti ad esso amministrato, risiedono in uno strato intermedio,
sopra il sistema operativo ma ancora sotto i programmi applicativi. E’ per questo che alcune volte ci si riferisce ad
essi parlando di MIDDLEWARE o anche di COMPONENTWARE. Tuttavia l’impiego di un componentware produce
due importanti cambiamenti progettuali: si sfuma la distinzione tra dati e programmi, poiché dei componenti
possono essere ospitati in file che altrimenti sarebbero considerati dei dati; si sfuma la distinzione tra software di
base e software applicativo.
- Grazie alla presenza di un’ infrastruttura di rete, i sottoinsiemi da cui un’ applicazione è costituita, possono essere
residenti e essere eseguiti anche su calcolatori diversi. È allora necessario disporre anche di un gestore di
componenti distribuiti (DCOM in Windows).Tale organizzazione è quela che rispecchia l’ architettura client-
service: se l’ utente opera con un calcolatore connesso alla rete l’ unico sottosistema che deve essere eseguito
localmente è quello incaricato della gestione dell’ interfaccia utente, chiamato componente client dell’ applica zio
ne. I vantaggi di questa architettura sono molteplici: l’ utente deve preoccuparsi solo della parte dell’ intera
applicazione in esecuzione sul suo calcolatore, e può delegare ad altri i problemi di gestione relativi al
sottoinsieme LA e d al sottosistema GD. Il paradigma client server ha costituito per anni il modello di riferimento
per lo sviluppo della stragrande maggioranza delle applicazioni aziendali, poiché consente di centralizzare sul
server tutte le informazioni che necessitano di grande potenza di calcolo e agevola la manutenzione delle
applicazioni. Tuttavia presenta due problemi: è necessario lo sviluppo e il conseguente onero testing di: apposti
protocolli di comunicazione, specializzati per i sistemi su cui l’ applicazioni deve essere eseguita; di client che
devono essere ogni volta progettati e realizzati. Il passaggio dalle applicazioni client- server tradizionali
(applicazioni legacy) ad applicazioni web – oriented permette di abbassare i corti di progettazione e lo sviluppo e
di ampliare la possibilità sul lato client. La descrizione generale dell’ architettura client- server si applica dunque
anche sul web; in questo caso il client è il browser (Mozilla, Firefox) e il server si chiama server web. Il web può
essere inteso come una unica grande applicazione distribuita, costituita dall’ insieme di tutti i server web
accessibili su internet e dai browser che gli utenti connessi impiegano per navigare. Ai principi protocolli
applicativi di internet è stata associata una porta TCP default, la cui indicazione può essere dunque omessa in
quanto ridondante. (l’ http: hyper text transfer protocol).
- Struttura del sistema e-mail. La scelta di organizzare il sistema di posta elettronica su una architettura client-
server consente di impiegare i server come intermediari tra i clienti, quindi in particolare come strumenti di
memorizzazione dei messaggi, per ovviare alla temporanea irraggiungibilità del client del destinatario.
Schematizzando:
- Il mittente opera in client e mediante questo invia il messaggio al suo server indicato dalla spedizione. Il
protocollo applicativo impiegato in questa fase è simple mail transfer protocol ( SMTP).
- Il server del mittente invia il messaggio al server che mantiene la mail box del destinatario, ancora mediante
SMTP.
- Il destinatario accede alla sua mail box e ottiene il messaggio in essa contenuta; i protocolli applicativi impiegati
in questa fase sono alternativamente Post Office protocol 3 (POP3) oppure Internet message acess protocol
(Imap). I servizi finalizzati a garantire la sicurezza di tali scambi sono davvero importanti; occorre garantire: la
privatezza dei dati trasmessi, l’ integrità dei dati inviati e idei servizi richiesti, l’ identità dei partner, la non ripudi
abilità degli impegni.
- Per soddisfare questi requisiti si adottano tecniche che sono in grado di limitare l’ accesso alle risorse da parte di
utenti e sistemi non autorizzati. Si utilizzano: chiavi simmetriche: la stessa chiave che ha impiegato il mittente per
codificare il messaggio deve essere poi utilizzata dal destinatario per la codifica; chiavi asimmetriche: l’adozione
di questa tecnica prevede che ogni utente disponga di una propria coppia di chiavi; manterrà la chiave riservata e
fornirà l’altra agli utenti con i quali desidera comunicare (chiave privata. Chiave pubblica).

Scaricato da Gianni Sini ([email protected])


lOMoARcPSD|27411908

Scaricato da Gianni Sini ([email protected])

Potrebbero piacerti anche