Sei sulla pagina 1di 32

Appunti di

Fondamenti di Informatica

Roberto Tedesco
1. Dati e Codifiche
Informatica: Tecnologia che consente il trattamento automatico dellinformazione e dei dati
con elaboratori.

Dato: Rappresentazione PAROLA SCONOSCIUTA di un fenomeno, descrizione.

ICT (Information Comunication Technology): Insieme delle tecnologie che consentono di


elaborare e trasmettere linformaizione.

Bit: Binary digit.

Lalfabeto del calcolatore composto da due numeri, 0 e 1, ed lunit elementare di


informazione. Pi bit un calcolatore ha a disposizione, pi dati pu rappresentare:

n bit => 2n dati rappresentabili


n dati rappresentati => log2(n) bit usati

Byte - 8 Bit

Segnale Analogico: Segnale continuo nel tempo che pu assumere tutti gli infiniti valori
delle grandezza fisica osservabile che rappresenta. Varia allinterno di un ben definito Range. I
valori utili che lo rappresentano sono continui (infiniti) e non numerabili.

Segnale Digitale: Segnale discreto nel tempo che in un determinato range di tempo pu
assumere solo un numero discreto (numerabile e finito) di valori. I vantaggi che esso presenta
sono:
Impiego unico linguaggio binario
Qualit costante nel tempo
Possibilit di compressione (vantaggio economico)

Discretizzare: Considerare un valore in un determinato istante

Sistemi di Convertibilit Analogico-Digitale


Campionamento: Processo di conversione di un segnale tempo-continuo in un segnale
tempo-discreto. Lampiezza del segnale continuo viene considerata ad intervalli di tempo
regolari (T=Periodo di Campionamento)
Quantizzazione: Processo di conversione di un segnale a valori continui in uno a valori
discreti. Maggiore il numero dei bit usati nella quantizzazione, minore lerrore che si
commette (errore di quantizzazione): si riduce infatti la distanza media tra il valore
campionato ed il corrispondente valore quantizzato.
Frequenza di Campionamento: Misurata in Fotogrammi Per Secondo, FPS.
Sampling: Periodo di Campionamento, linverso della frequenza e rappresenta il tempo
necessario al campionamento.

Quando si compiono errori nel campionamento si verifica una Perdita di Informazione.


La comparsa di elementi non presenti nel segnale digitale prende il nome di Aliasing

Locchio Umano ha una frequenza di campionamento di 10 Hz.

Teorema di Nyquist-Shannon
Dato un segnale con lungezza donda B, finita e nota, la frequenza minima di
campionamento per la corretta ricostruzione del segnale deve essere pari almeno a 2B.

Ci implica che un segnale campionato con frequenza fc avr massima frequenza risolubile
pari a (fc)/2

Codifica dei Dati: Rappresentazione dei Caratteri


Codice ACII: (American Standard Code for Information Interchange)

I Caratteri possono essere di 3 tipi:


Di Comando: Codici di trasmissione o di controllo
Caratteri Alfanumerici: Lettere dellalfabeto, maiuscole o minuscole
Segni: Punteggiatura ed operatori aritmetico-logici

Ogni carattere occupa un byte, composto da 8 Bit. Di questi 8, uno utilizzato per controlli
ed quindi indisponibile, gli altri sono usati per la rappresentazione. La codifica ASCII
concede quindi di rappresentare un numero di caratteri pari a 27=128. Successivamente alla
codifica ASCII stata introdotta la codifica UNICODE, basata su una rappresentazione a 16
bit.

Codifica dei Suoni: Algoritmi di Compressione per File Audio


Codifica della voce: Pulse Code Modulation (PCM) - Impiegata per trasmissioni
telefoniche, lavora con una frequenza di campionamento pari a 8 kHz ed opera una
quantizzazione su 8 bit. In un secondo si generano 64000 bit (8 bit di quantizzazione
generati 8000 volte in un secondo). Affinch tutti i dati giungano dallaltra parte del mondo,
la velocit deve essere la stessa.
Codifica della musica: Compact Disk (CD) - Il campionamento della musica aviene a
44100 Hz, ed effettuato in modo che la musica possa essere riprodotta in modalit
Stereo. Per il campionamento di ogni canale vengono utilizzati 16 bit. In un secondo
vengono generati 0,17 Mb (16 bit di quantizzazione x generati 44100 volte al secondo x 2
volte dovute alla riproduzione stereo) e ci comporta che una canzone di 4 minuti
occuperebbe 41 Mb. Si quindi introdotta la Compressione Mp3, di tipo Lossy, la quale
sfrutta i limiti dellorecchio umano per ridurre la quantit di informazioni da memorizzare
escludendo suoni che lorecchio umano percepisce poco.

Codifica delle Immagini


Le operazioni di Puntizzazione si operano dello spazio e nel tempo.
Pixel: Picture Element
Il campionamento dellimmagine si compone della suddivisione di una immagine in Pixel. La
risoluzione di una immagine si misura in dpi (dots per inch, un pollice corrisponde a 2,54 cm).
Bitmap: Utilizzata per la rappresentazione dei colori, sfrutta 32 bit, ognuno dei quali dedicato
ad un colore, Rosso, Blu, Giallo (RGB, sistema additivo). In informatica si usa il CMY, un
sistema sotrattivo composto da ciano, magenta e giallo

Parametri importanti nella codifica di immagini sono:


Risoluzione - Misurata in dpi (dot per inch, pixel per pollice quadrato; un pollice
corrisponde a 2,54 cm)
Dimensione - Base ed altezza del rettangolo che contiene limmagine
Numero di Colori o Toni di Grigio

Gli standard pi usati per la codifica delle immagini sono:


TIFF - Tagget Image File Format
JPEG
PNG - Portable Network Graphics

Le Tecniche di Compressione delle immagini sono:


Lossless - Adatta ad immagini con ampie aree monocromatica, non comporta perdite di
bit
Lossly - Comporta perdita di bit

Codifica dei Video


La codifica dei video avviene secondo i seguenti standard:
MPEG - Loperazione di codifica coinvolge una serie di fotogrammi, detti frame. Di questi,
solo alcuni contengono limmagine per intero, e prendono il nome di key-frame. Ta due
key-frame consecutivi si trovano una serie di frame intermedi i quali registrano le solo
variazioni tra un key-frame ed il successivo. La velocit di scorrimento dei frame si misura in
FPS (frame per second)
Quicktime/Avi - Formati di codifica derivati dallMPEG sviluppati rispettivamente da Apple
e Windows, si basano sulla necessit di possedere lintera sequenza dei frame prima che
questa posse essere riprodotta
Realvideo - Formato di codifica sviluppato per lo streaming video, esso permette
lesecuzione del file anche in assenza di determinati frame: il download effettuato
comunque seguendo lordine imposto, ma se ad un determinato istante uno dei frame
dovesse risultare mancante, la riproduzione continua saltando quel frame. Una volta che la
riproduzione ha avuto termine, i file dei frame possono essere eliminato o no, a discrezione
del distributore.
2. Algebra di Boole
Caratterizzazione dellAlgebra di Boole
Sia S un insieme di elementi:
Ogni elemento pu assumere solo valori 1 o 0
Devono esistere almeno 2 elementi
Deve esistere una operazione logica di somma tra gli elementi di S
Deve esistere una operazione logica di prodotto tra gli elementi di S
Deve essere verificata la propriet distributiva delloperazione di somma rispetto al prodotto
Devono esistere gli elementi neutri di somma e prodotto
Deve esistere un numero tale che y =0 e y+ =1. detto Complemento.
Operazioni Logiche

A B OR AND NOR NAND XOR

0 0 0 0 1 1 0

0 1 1 0 0 1 1

1 0 1 0 0 1 1

1 1 1 1 0 0 0

A NOT

0 1

1 0

Funzione Logica
Una variabile y una funzione se esiste un criterio che alle x variabili associa uno ed un solo
valore

Propriet dellAlgebra di Boole


Lalgebra di Boole dotata delle seguenti propriet:

PROPRIET SOMMA PRODOTTO

IDEMPOTENZA A+A=A AA=A

ELEMENTO NEUTRO A+0=A A 1=A

ELEMENTO NULLO A+1=1 A0=0

COMPLEMENTO A+A=1 AA=0


PROPRIET SOMMA PRODOTTO

ASSORBIMENTO A+(AB)=A A(A+B)=A

DISTRIBUTIVA A+(BC)=(A+B)(A //
+C)

Dimostrazioni di alcune Propriet


Assorbimento A(A+B)=A
A(A+B)=AA+AB=A+AB=A(1+B)=A
Assorbimento A+(AB)=A
A+(AB)=A(1+B)=A
Distributiva A+(BC)=(A+B)(A+C)
(A+B)(A+C)=AA+AB+AC+BC=A+AB+AC+BC=A(1+B)+AC+BC=A+AC+BC=A(1+C)
+ +BC=A+BC

Leggi di De Morgan
(A+B)!=A!+B!
(AB)!=A!B!

Half Adder

A B CARRY SUM

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

Full Adder
3. Architettura del Calcolatore
Distinzioni
PC - Personal Computer, usati per lelaborazione di testi, navigazione su internet, musica
Workstation - Computer usati per il calcolo e la programmazione
Mainframe - Computer usato per la gestione di grandi reti di apparecchiature
Network Computer - Anche chiamati Server, rete di computer che condividono dati,
risorse e dischi

Architettura di Von Neumann


Secondo Von Neumann, larchitettura di un computer pu essere cos riassunta:
CPU - Central Processing Unit
RAM - Random Access Memory
ROM - Read Only Memory
I/O - Input/Output Device
Bus Dati - Usato per trasferire dati. E Bidirezionale

Bus Dati

CPU ROM RAM I/O

Bus Indirizzi

Altri Bus sono il Bus Indirizzi e le Linee di Controllo (Linee su cui viaggiano segnali che
mettono in comunicazione la CPU coi vari componenti)

Architettura e Bit
Esistono Architetture a 64 bit o a 32 bit. Lunica differenza sta nel numero di linee
microscopiche che formano i bus dati. E importante che larchitettura del calcolatore sia tutta
a 32 o a 64 bit.
Schematizzazione della memoria RAM di una macchina a 32 bit

32 Colonne

Ogni riga invece rappresenta le Locazioni di Memoria. Il Bus Indirizzi ha un singolo verso,
che va dalla CPU ai Componenti in quanto essa lunica che ha accesso alla scrittura dei
bus indirizzi. Di conseguenza, solo la CPU pu assegnare bus indirizzi.

Schema della CPU


CPU

REGISTRI ALU CU
(controll unit)
Locazione di (aritmetic control unit)
Detiene il controllo di
memoria interna,
tutte le operazione
memorizzano i
che avvengono nella
dati temporanei
CPU e Controlla
che tutt venga svolto
correttamente
A e B Registri
R Risultato

Registri
Esistono due tipologie di registri, quelle visibili allutente (il programmatore) o quelli non visibili
allutente. Ad esempio, la PSW (Process Status Word) un registro che interviene quando il
processore esegue delle operazioni mascherando il bus di controllo (ignora fino al termine
delle operazioni i segnali delle componenti).

Abbiamo inoltre una serie di Registri di Scambio dati tra CPU e Memoria:
Memory Data Register (MDR) - Contiene i dati da inviare o inviati dalla RAM
Memory Address Register (MAR) - Contiene gli indirizzi di memoria

La Controll Unit prende i dati dalla MDR e gli indirizzi dalla MAR trascrivendoli rispettivamente
sul Bus Dati e sul Bus Indirizzi

Esistono anche dei Registri che svolgono funzioni analoghe a quelle svolte dalle MDR e MAR
ma lavorando su dispositivi I/O
I/O Data Register (IODR) - Contiene i dati da inviare o inviati dalla RAM
I/O Address Register (IOAR) - Contiene gli indirizzi di memoria

Sono invece dei Buffer Register:


Programm Counter (PC) - Contiene lindirizzo di memoria delloperazione successiva che
la CPU eseguir
Instruction Register (IR) - Contiene lindirizzo di memoria delloperazione in esecuzione

Parametri Fondamentali per la CPU


Clock - Misurati in GHz, non costituisce un parametro di confronto tra processori
MPS (Milioni di operazioni Per Secondo) - Costituisce un parametro di confronto tra
processori

Schema di Interazione tra CPU e Registri

MAR MDR

Registri Generali IR PC
CONTROLL
UNIT
Registri Generali

ALU
PSW
Internal Bus

Istruzioni
I programmi sono sequenze di istruzioni, comandi che possono eventualmente operare su
dei dati. Ci sono pi tipi di comandi:
Trasferimento - Dal processore alla memoria e viceversa, dal processore alle periferiche
Input/Output e viceversa
Elaborazione Dati - Operazioni logico-aritmetiche
Controllo - Modifica la sequenza in esecuzione
Il set di istruzioni dipende dal processore e prende il nome di RISC (Redacter Instrucion Set
Computer)

Lesecuzione delle istruzioni avviene secondo le seguenti fasi:


Instruction Fetch - La CPU preleva dalla memoria listruzione indicata dal PC e la carica
nellIR. il valore del PC viene incrementato di 1.
Instrucion Decode - Prelievo delloperazione da eseguire e determinazione degli operatori
mediante la conoscenza dei codici operativi
Instrucion Execute - Esecuzione delloperazione
Memory Access - Accesso alla memoria, se necessario. Precede o sostituisce la 3.
Whrite Back - Scrittura del Risultato

Ad ogni istruzione assegnato un codice binario. Prende il nome di Dump della Memoria la
stampa o la visualizzazione a video del contenuto della memoria.

Formati
0 3 4 15
OP. CODE ADDRESS INSTRUCTION FORMAT

0 1
S MAGNITUDE INTEGER FORMAT

Interrupt e Trap
Sebbene lesecuzione delle istruzioni sia sequenziale, la realizzazione di un simile
comportamento del tutto ideale in quanto possono verificarsi degli eventi inattesi detti
Interrupt. Ne esistono di due tipi:
Interrupt - Interrupt propriamente detto, causato da dispositivi esterni. E un segnale
asincrono, che pu quindi arrivare in qualsiasi momento
Trap - Causati a livello software, molto spesso dovuti agli stessi programmi in esecuzione

Sono usati per migliorare lefficienza dellelaborazione dati, tuttavia linterruzione non pu
essere gestita in qualsiasi momento in quanto se questa si verificasse durante lInstruction
Fetch o durante lInstruction Decode si perderebbero dati irrecuperabili. E necessario quindi
un organo che provveda al mascheramento dellinterrupt quando opportuno
Gli interrupt possono essere cos classificati:
Programma (Errore di esecuzione, overflow)
Timer (Operazione pianificata, Timer Shot)
I/O (Interruzione dovuta a dispositivi I/O)
Errore Hardware
Problemi Fisici (Caduta di tensione)

Lunico momento in cui possibile gestire linterrupt quindi tra lInstruction Execute di una
operazione e lInstruction Fetch della successiva.
Linguaggi di Programmazione
Linguaggio Assembly - Linguaggio che ha una corrispondenza di 1 a 1 col linguaggio
macchina
Linguaggio C - Linguaggio di pi alto livello rispetto al linguaggio macchina che prescinde
dal tipo di macchina in quanto usa un linguaggio simbolico

N.B. non esistono memorie in grado di operare alla stessa velocit del processore
(Fenomeno del Collo di Bottiglia)

ROM
Contiene informazioni di base tra cui il BIOS (Basic Input Output System) che esegue la
ricognizione degli hardware connessi al pc. Verifica anche la presenza del S.O. Esistono
anche le memorie EPROM, che sono programmabili.

RAM
Nella RAM vengono memorizzati i programmi in esecuzione ed i dati su cui essi lavorano. I
principali parametri di una RAM sono:
Capacit di memoria (in GB)
Frequenza di lavoro (In MT/s, Milioni di Trasferimenti al Secondo)
Dimensione della parola
Frequenza del Front Side Bus
Numero di Trasferimenti per Ciclo

Moltiplicando gli ultimi tre parametri, si ha il Troughput, che consente una comparazione con
la CPU.

I parametri di Dimensione, Costo e Velocit sono cos connessi tra di loro:


+ Velocit => + Costo al Bit
+ Dimensione => - Velocit di Accesso
+ Dimensione => - Costo al Bit

Gerarchia delle Memorie

REGISTRI

CACHE

CD-ROM

NASTRI

VELOCITA DIMENSIONE
Memoria CACHE $
Tipo di memoria molto costosa e per questo in genere molto piccola. Si usa per tentare di
compensare la differenza di velocit tra il processore e la RAM. Ci sono due criteri con i quali
scegliere quali risorse allocare nella CACHE:
Principio di Localit Spaziale - E probabile che lindirizzo di memoria successivo sia
allocato nei pressi di quello appena preso in considerazione
Principio di Localit Temporale - E probabile che in un certo istante il programma in
esecuzione sia lo stesso che era in esecuzione allistante precedente

Se un dato presente nella memoria centrale piuttosto che nella memoria CACHE, si perde
tempo a cercarlo in questultima, senza trovarlo: si verificato un Miss e la presenza della
CACHE risultata inutile. In caso contrario si verifica un Hit con notevole risparmio in termini
di tempo.

Affinch la CACHE non risulti mai piena, necessario scegliere un Blocco Vittima da
Scartare. Esistono diverse modalit per la scelta del blocco vittima, lalgoritmo ideale ed
irrealizzabile quello detto di Belady che consiste nello scartare i blocchi che serviranno il pi
in l possibile; ma ci richiederebbe di sapere a priori le operazioni che si compiranno. Un
efficiente algoritmo quello detto LEAST RECENTLY USED che consiste nelleliminare il
blocco pi vecchio, ossia quello che nella sequenza posto ad un maggior numero di step
dal blocco che vogliamo inserire. Tuttavia, possono insorgere dei problemi se il blocco vittima
prescelto contiene un blocco non ancora salvato e quindi presente nella sola CACHE.
Esistono due politiche attuabili:
Whrite Back - Al decorrere di un determinato lasso temporale il contenuto della RAM viene
aggiornato a quello della CACHE. Ladozione di tale politica pu portare al fenomeno della
Perdita di aggiornamento
Whrite Through - Ad ogni modifica della CACHE da parte della CPU anche la RAM viene
aggiornata. Tali scritture avvengono alla velocit della RAM sebbene le letture avvengano
alla velocit della CACHE.

Schema di un Processore DUAL-CORE

CPU CPU VEL. MEMORIE


$L1: 16-64 kb ++ Vel
IL1 DL1 IL1 DL1 $L2: 1-2 mb ++ + Vel
$L3: 4-6 mb ++ + Vel
RAM: 4-6mB + Lenta

$ L2 SUDDIVISIONE $L1
IL1: Parte di $L1 dedicata agli
indirizzi
ID1: Parte di $L1 dedicata ai
dati
$ L2

RAM
Il dato viene prima cercato nella CACHE di livello 1, se assente la ricerca prosegue nella
CACHE di livello 2, se non viene ancora trovato si cerca nella CACHE di livello 3, e se ancora
il dato risulta assente lo si cerca nella RAM.

Tassonomia di Flynn
Single Instruction Single Data (SISD) - Rappresentativa dellarchitettura di Von
Neumann, macchine di tale tipologia possono svolgere una sola operazione alla volta su un
solo gruppo di dati
Single Instruction Multiple Data (SIMD) - In ogni istante svolge una singola istruzione su
gruppi di dati multipli
Multiple Instruction Single Data (MISD) - In ogni istante svolge istruzioni multiple su un
solo gruppo di dati. Attualmente macchine di questo tipo non hanno alcuna applicazione
pratica
Multiple Instruction Multiple Data (MIMD) - In ogni istante svolge istruzioni multiple su
gruppi di dati multipli. Possono essere formate da pi SISD Fortemente Accoppiate (Pi
CPU collegate ad una stessa RAM) o Debolmente Accoppiate (Ogni RAM ha la sua CPU
dedicata)

I moderni pc sono basati sullarchitettura Simmetric Multi-Process, derivata


dallarchitettura di Von Neumann e che permette di svolgere pi operazioni
contemporaneamente vantando le seguenti caratteristiche:
Parallelismo
Disponibilit
Crescita Incrementale
Scalabilit

Dispositivi di Input/Output
Dispositivi esterni che vengono collegati tramite Porte di Comunicazione oppure
Direttamente sulla Scheda Madre. Le tecniche di gestione dellInput/Output sono:
Programmato (Busy Wait): Il dispositivo di I/O interpellato in maniera continuativa sino a
quando non disponibile. Tale tecnica da evitare in quanto impedisce alla RAM lo
svolgimento di altre operazioni
Interrupt Driven: Il dispositivo viene interpellato e gli viene chiesto di avvisare quando
risulta pronto. I Bus risultano in questo modo ancora occupati
Direct Memory Access (DMA) - Il dispositivo di I/O accede direttamente alla RAM senza
passare dalla CPU. Tale tecnica consente di lasciare liberi i Bus in quanto la periferica
montata direttamente sui Bus. E assimilabile alla presenza di un processore dedicato alla
periferica. Il DMA pu essere configurato in modalit Single Bus, in cui i bus vengono usati
due volte poich linformazione viaggia dellI/O al DMA e poi dal DMA alla RAM (il DMA
opera il furto dei cicli alla CPU); in modalit Single Bus con Controller, in modo da
riuscire a gestire pi periferiche I/O in modo che le informazioni viaggiono direttamente
dallI/O al DMA e poi sui Bus per raggiungere la memoria; o in modalit Doppio Bus, che
prevede un Bus dedicato ai dispositivi di I/O.

Scheda Video
Ha il compito di visualizzare i dati in memoria sullo schermo. Pu essere Integrata ossia fissa
sulla scheda madre in modo che sia la CPU a svolgere i compiti assegnati alla scheda
grafica; oppure Dedicata ossia dotata di una memoria video che immagazzina informazioni
relative alla visualizzazione grafica del dato elaborato.

Scheda Audio
Valgono le stesse considerazioni esposte per la Scheda Video

Monitor
Parametri Fondamentali:
Contrasto: Rapporto tra la luminosit del bianco e la oscurit del nero. Maggiore il
contrasto e migliore la visualizzazione
Linearit dei Grigi: Legge di variazione di tonalit dal bianco al nero
Angolo di visualizzazione
Tempo di Risposta: Tempo necessario al passaggio da un fotogramma allaltro. Tanto pi
maggiore, maggiori dettagli si coglieranno.

Hard Disk
Numero variabile di piatti di materiale ferromagnetico o vetro, i cui parametri fondamentali
sono:
Dimensioni Fisiche: 2,5 Per pc portatili, 3,5 per desktop
Capacit in GB
Velocit di Rotazione: in Rotazioni Per Minuto (RPM). Influisce sul Seek Time e sul
Rotational Delay (vedi dopo)
Seek Time: Tempo impiegato dalla testina per raggiungere, a partire dalla posizione di
riposo, la traccia di interesse
Rotational Delay: Tempo in cui la testina si posiziona sul settore di interesse
Transfer Time: Tempo necessario al trasferimento dati
Access Time: Somma di Seek Time e Rotational Delay

Si tratta di una memoria permanente il cui principio di funzionamento basato sulla


polarizzazione di elementi del disco stesso. La lettura avviene facendo scorrere gli elementi
polarizzati vicino a cavi che, percossi da campi magnetici, saranno attraversati da correnti. I
piatti sono suddivisi in Tracce e Settori. Questi ultimi rappresentano lunit minima che pu
essere letta o scritta. Ogni disco pu essere letto da entrambi i lati ricorrendo a pi testine
montate su uno stesso braccio meccanico. La scrittura di dati che occupano pi settori
avviene sugli stessi cilindrici ovvero sui settori contemporaneamente intercettati sugli altri
piatti dalle molteplici testine montate sullo stesso braccio.

Classificazione degli Hard Disk


EIDE o PATA - Privi di DMA, hanno un controllore integrato alla scheda madre. Si
suddividono in 3 categorie in base alla velocit di trasferimento: ATA3 (16 mb/s), ULTRA
DATA (33 mb/s), SATA (250 mb/s).
SCSI - Dotati di DMA, raggiungono velocit di 640 mb/s

Operazioni possibili sugli Hard Disk


Deframmentazione - Riordino dei file, affinch i file frammentati relativi ad un unico
oggetto di trovino in settori adiacenti
Formattazione Fisica (o di basso livello) - Suddivisione dellHard Disk in Tracce e Settori
Formattazione Logica (o di alto livello, FAT32 o INODE) - Organizza logicamente un Hard
Disk affinch risulti accessibile ad un Sistema Operativo
Cancellazione dei File - Cancellazione di una stringa che contiene gli indirizzi di un File

Stampanti
Inkjet - Getto ad inchiostro realizzato con dispositivo termico (pi preciso, ma crea
londulazione del foglio) o dispositivo piezoelettrico (meno preciso ma non crea
londulazione del foglio)
Laserjet - Rullo di vetro caricato elettricamente e ricoperto di polvere magnetica la quale
rimane impressa sul foglio in seguito della pressione del rullo sul foglio stesso. Stampanti di
questo tipo sono pi costose ma hanno uno costo duso inferiore ed una vita pi lunga.
4. Sistemi Operativi
I Sistemi Operativi
Le funzioni svolte dai sistemi operativi sono :
Gestione delle periferiche I/O
Gestione della memoria
Gestione delle risorse hardware di un calcolatore

Gli obbiettivi d'uso di un sistema operativo sono:


Convenienza nell'uso del calcolatore rispetto ai potenziali utenti
Efficienza
Capacit di evolversi

importante per un sistema operativo, che esso risulti trasparente.

Il Sistema Operativo come Interfaccia


Nasconde dettagli Hardware al programmatore
Fornisce un'interfaccia per poter usare il sistema (interfaccia grafica o interfaccia Linux)

Servizi offerti dal Sistema Operativo


Creazione ed esecuzione di programmi
Accesso ai dispositivi di I/O ed ai file
Rilevazione e correzione degli errori
Contabilit e Statistiche d'uso

Il Kernel
Moduli del sistema operativo il cui utilizzo di maggiore importanza. Vengono caricati nella
memoria centrale all'avvio del computer

Il Sistema operativo dirige la CPU nell'utilizzo di risorse del sistema e nella temporizzatore
dell'esecuzione dei programmi; decide quando un programma pu usare una risorsa,
sebbene il processore stesso sia una risorsa!

Multi-Tasking
Capacit della RAM di svolgere pi operazioni contemporaneamente. La gestione
dell'esecuzione affidata al Sistema Operativo, che opera tramite i WAIT, momenti durante i
quali i programmi sono in fase di attesa.

Processo
Un processo un programma in esecuzione. composto da:
Codici di Istruzioni
Dati (Variabili, Spazio di lavoro, Buffer)
Contesto di esecuzione (informazioni necessarie al sistema operativo per gestire il
processo. composto dal contenuto dei registri della CPU, dalle priorit, dallo stato di
esecuzione e dallo stato di attesa di un dispositivo I/O
Struttura di un Sistema Operativo
Abbandonato l'ormai obsoleto Schema a Cipolla, i moderni sistemi operativi adottano uno
Schema Modulare, ossia composto da moduli l'uno indipendente dall'altro (ma in costante
comunicazione) ognuno dei quali chiamato a svolgere una particolare funzione.

Descrizione e controllo dei processi in ambiente multi-programmi


Modello a due Stati
Il modello a due stati si compone per l'appunto di due soli stati, lo stato di Running, assunto
dai processi in esecuzione e quello di Not Running. Il passaggio da Running a Not Running
prende il nome di Pausa, il passaggio da Not Running a Running prende invece il nome di
Allocazione. Questo modello non massimizza l'efficienza.
Il sistema operativo ha inoltre necessit di tenere traccia delle operazioni che svolge. Tale
azione svolta dal Process Controll Block (PCB):

Identificatore del processo (Process Identificator, PID) - un valore numerico


Informazioni sullo stato del processo - Costituiti da Registri visibili all'utente che
dipendono dall'architettura del calcolatore; dai Registri di controllo, come il PC; dai Registri di
stato, che contengono flag per le abilitazioni degli Interrupt
Informazioni di controllo del processo - Costituite dalla schedulazione e dalla
informazioni di stato del processo, dalle priorit nelle code di scheduling; dalla struttura dati
(puntatori ad altri processi); dalla comunicazione tra i processi; dai privilegi in relazione all'uso
della memoria, dalla gestione della memoria e dai suoi limiti in materia di indirizzi accessibili e
dalla contabilizzazione della memoria stessa.

Creazione e terminazione dei processi


La creazione dei processi pu avvenire ad opera:
Di richieste dal terminale e quindi dall'utente
Del sistema operativo, che genera un processo sulla base della richiesta di un'altro
processo utente
Di un processo Padre che genera un processo figlio

La terminazione di un processo pu invece avvenire ad opera:


Di un End (terminazione normale)
Dell'utente che provoca l'uscita dall'applicazione
Del superamento del tempo massimo
Di una mancata disponibilit della memoria
Del fallimento di una operazione
Della terminazione del Genitore
Di una richiesta da parte del Genitore

Modello a 5 Stati (Domanda quasi certa all'esame)


Nel modello a 5 stato si attua la suddivisione dello stato di Not Running in Ready e Blocked.
Esso si compone dei seguenti stati:
New - Presa di coscienza delle risorse necessarie (in maniera analoga al PID) e loro
associazione
Ready - Indica che il processo pronto ad essere eseguito dalla CPU. In questa fase esiste
un ordine tra i processi
Running - Il processo in esecuzione
Blocked - Il processo in attesa che si verifichi un evento esterno rispetto all'architettura di
Von Neumann
Exit - Rilascio delle risorse impegnate. Il Sistema operativo mantiene alcune informazioni
per la contabilit

Admit Dispatch Release


New Ready Running Exit

Event Open

t
ai
tW
en
Ev

Blocked

Gestione dei processi da mandare in esecuzione


La scelta del processo da mandare in fase di running affidata al Dispatcher, un modulo del
sistema operativo che si occupa anche del salvataggio. Il Dispatcher opera la requisizione
dell'utilizzo della CPU al processo in esecuzione allo scadere di uno prestabilito intervallo di
tempo, riportando poi il processo nello stato di Ready. Questa operazione viene compiuta in
base al concetto di Prelazione. I processi possono passare nello stato di Exit da qualsiasi
fase, a causa dei pi svariati fattori. Ci che differenzia lo stato di Ready da quello di Blocked
sta nella disponibilit che il processo attende: nello stato di Ready il processo in attesa della
sola disponibilit della CPU, mentre i processi in fase di Blocked, oltre a poter essere
innumerevoli, attendono la disponibilit di una qualsiasi risorsa.

Context Switch
Operazione svolta dal Dispatcher, riguarda il passaggio dell'utilizzo della CPU da un
processo ad un altro. Di seguito la lista delle operazioni da svolgere:
Salvare il contesto del processo che abbandona la CPU
Cambio del valore di stato nel Programm Controll Block del processo che abbandona la
CPU
Spostare il PCB in una nuova coda oppure deallocare le sue risorse
Aggiornamento delle strutture dati della gestione della memoria
Selezione di un nuovo processo per lo stato di Running
Aggiornamento del suo stato nel PCB
-Ripristino del contesto

Il tempo necessario per effettuare il Controll Switch, detto Controll Switch Time definito
come Overhead, in quanto il sistema non svolge alcuna operazione utile all'avanzamento del
programma. Esso dipende dalla complessit del sistema operativo e dall'hardware, nostro
obbiettivo tentare di ridurlo.
Poich l'operazione di Context Switch svolta dal sistema operativo, si dice che esso
eseguito da Supervisore mentre i processi sono eseguiti in modalit Utente. Durante il
Controll Switch nessun processo in esecuzione. Il Controll Switch parte del kernel.

Scheduling
Lo scheduling a breve termine, operato dal dispatcher, eseguito molto frequentemente ed
invocato ogniqualvolta si verificano eventi quali:
Clock Interrupt
I/O Interrupt
O.S. Calls

Lo scheduling della CPU riguarda la sequenza di elaborazione della CPU.

Esistono varie tecniche di gestione del passaggio dallo stato di Ready a quello di Running:
Non Preemptive - Senza prelazione, strutturato in modo che un processo abbandoni la
CPU solo nel momento in cui ha terminato la sua operazione o se si verifica uninterruzione
da parte di periferiche I/O
Preemptive - Con prelazione, strutturato in maniera tale che un processo in running
possa essere interrotto o spostato nello stato di ready dal sistema operativo. La gestione
con prelazione se da un lato impedisce la monopolizzazione della CPU da parte di un
processo, dallaltro implica la necessit di una sincronizzazione tra processi che
condividano dei dati.

Nello Scheduling della CPU con Priorit un Numero di Priorit viene associato a ciascun
processo e la CPU viene allocata al processo che ha il numero pi basso. Se la gestione
poi preemptive, pu succedere che la CPU venga requisita per lazione di un processo con
numero di priorit pi basso. Le priorit possono essere definite internamente al SO facendo
riferimento a dati numerici oppure esternamente al SO in base alla rilevanza del processo o
alla sua criticit.

Tipologie di Scheduling
First Come First Served (FCFS) - Scheduling senza prelazione strutturato in maniera tale
che ogni processo che entra in coda in ready, e che quando la CPU cessa di essere usata
da un processo essa si allocata a quello che da pi tempo in coda. Questo genere di
scheduling favorisce i processi CPU Bound sfavorendo quelli I/O Bound o che comunque
usano poca CPU causando anche un pi elevato tempo media di attesa in coda. Adottare
una simile tipologia di scheduling comporta il cosiddetto Effetto Convoglio, ossia che tutti
i processi in coda attendano che il processo CPU Bound cessi. La resa del sistema
diminuita, inoltre lo sfruttamento dei componenti minore
Round Robin (Time Slice) - Scheduling con prelazione strutturato in modo che luso della
CPU venga requisito in base al superamento di un quanto prestabilito in clock (clock
interrupt). Al verificarsi dellinterrupt il processo in esecuzione viene spostato in ready
(gestita FIFO). Il tempo medio di attesa in coda definito dalla relazione (n-1)q dove q
rappresenta il quanto ed n il numero di processi. Va da se che per q troppo grandi si
degenera in FCFS, mentre per q troppo piccoli si verificano troppo context switch:
necessario trovare un compromesso.
A Code Multiple - La coda viene suddivisa in Foreground (Interactive), gestita in Round
Robin, e Background (Batch), gestita in FCFS. Anche alle code si applica il time slice (ad
esempio 80% del tempo va al foreground e il 20% del tempo a background)

Thread
I thread, anche chiamati Light Weight Process, sono dei processi che non possiedono
risorse, e lelemento che viene allocato solo una sequenza di istruzioni. E una traccia in
esecuzione di uno o pi programmi. I processi vengono solitamente suddivisi in thread (linee
di esecuzione) eseguibili separatamente. E detta Multi-Threading la capacit di un
processore di eseguire pi thread contemporaneamente.
Singolo processo, singolo thread - (MS-DOS)
Processi multipli, singolo thread - (UNIX)
Multi-Thread - (Windows, Mac)

Ogni processore in grado di svolgere un singolo processo.


I vantaggi dei thread sono:
Minore tempo di creazione rispetto al processo
Minore tempo di terminazione rispetto al processo
Minore tempo di switch rispetto al processo
Condivisione di memoria e files tra thread relativi ad uno stesso processo: lo scambio di dati
avviene senza lintervento del kernel
Possibilit di essere eseguiti su ogni processore disponibile
Possibilit di eseguire thread relativi allo stesso processo da due diversi processori
Dati e risorse condivise tra i processori

Si definisce Simultaneous Multi-Threading la schedulazione di pi thread e lesecuzione


contemporanea volta alla continua operativit dellunit di operazione. Svolgere pi
operazioni contemporaneamente non possibile per un Processore, ma se le operazioni
relative ad un processo vengono svolte ad incastro con le altre, ossia mentre altri processi
sono in fase di attesa possibile massimizzare la resa. Tale operazione di chiama Pipeline.

Gestione della Memoria


Il sistema operativo deve svolgere le seguenti operazioni relativamente alla memoria:
Isolare i processi in modo che ognuno abbia la sua area dedicata in memoria
Allocare e gestire autonomamente la memoria in modo che la gerarchia delle memorie sia
trasparente allutente
Supportare la programmazione modulare variando la dimensione dei programmi
Proteggere e controllare laccesso gestendo le aree di memoria condivise tra i processi
Effettuare la memorizzazione a lungo termine

La necessit di queste operazioni soddisfatta dalla Memoria Virtuale, strutturata in modo


che i programmatori indirizzino la memoria con riferimenti logici ignorando gli aspetti fisici,
quando un programma in esecuzione ad esempio, solo una sua parte risiede in memoria
centrale: ci comporta la possibilit si eseguire programmi pi grandi rispetto alla disponibilit
della RAM.
File System
Le applicazioni di un calcolatore necessitano di memorizzare e rintracciare informazioni di
varia natura: per sopperire a questa necessit stato ideato il file system, una struttura ad
albero che fa riferimento ad una directory radice (root).

I file, oltre al loro contenuto, sono correlati di informazioni complementari che il File System
gestisce:
Struttura
Nome
Tipo di accesso
Protezione

I nomi dei file hanno due parti, il Nome vero e proprio e lEstensione. Ogni file composto
da un Header, che comprende dimensione, codifica del file e data; e della Informazioni che
costituiscono i dati veri e propri.

La Directory composta da un Nome, un Puntatore ad unaltra Struttura, e degli


Attributi.

I file possono avere Path Relativi allambiente in cui si trovano, o Path Assoluti ossia legati
alla Root.
5. Analisi e Programmazione
Algoritmo: Elenco finito di istruzioni seguendo le quali possibile risolvere dei problemi. Un
algoritmo non pu essere compreso dal calcolatore. Un Programma un insieme di
istruzioni comprensibili dal calcolatore; un Linguaggio di Programmazione ci che
permette di rendere comprensibile un algoritmo ad un calcolatore.

Problema--->Analisi--->Algoritmo--->Programmazione--->Programma--->Elaborazione(<---Dati)--->Risultati

In definitiva un algoritmo una successione di istruzioni o passi che definiscono le operazioni


da eseguire; un insieme finito di passi che portano alla realizzazione di un compito. Esso
acquisisce dati e comunica messaggi.

Le sue propriet fondamentali sono:


Sequenza Finita
Deve Portare ad un Risultato
Le istruzioni non devono essere ambigue, non devono dare luogo a paradossi e non
devono entrare in contraddizione luna con laltra. Il significato deve essere univoco per
ogniuno degli esecutori.

Programmazione: Attivit attraverso la quale un individuo definisce le operazioni utili ed


esegue determinate azioni sui dati al fine di risolvere un problema. Il risultato della
programmazione il codice sorgente tradotto poi in linguaggio macchina da un interprete, il
Compilatore.

Variabile: Coppia composta da un nome ed un valore. Si immagina come un secchio sul


quale scritto un nome e che pu avere un contenuto.

Costante: Dato invariabile dutante lesecuzione di un algoritmo.

Istruzioni
Le istruzioni si suddividono in:
Istruzioni Operative - Producono un risultato
Istruzioni di Controllo - Controllano il verificarsi di determinate condizioni che
determinano il flusso di istruzioni da eseguire. Il controllo pu essere Condizionato, ossia
che avviene solo al verificarsi di determinate situazioni, Non Condizionato, ossia che
avviene a prescindere
Istruzioni di Ingresso ed Uscita - Istruzioni volte alla comunicazione con lesterno;
Istruzioni di Inizio e Fine esecuzione

Vettori
Un vettore, o Array, un insieme finito di elementi omogenei tra loro. La sua dimensione
costituisce un limite invalicabile

Diagramma a blocchi: (Flowchart): Costituisce un formalismo per la descrizione di algoritmi.


Descrive il flusso delle operazioni da eseguire per la realizzazione delloperazione descritta
dallalgoritmo.
Cicli o Loop
Strutture che descrivon situazioni in cui uno stesso gruppo di operazioni viene eseguito pi
volte.
Condizione di fine Ciclo: Viene verificata ogni volta che si esegue il ciclo.
Istruzione di Inizializzazione: Assegna valori iniziali alla variabile che controlla literazione
del ciclo

Funzioni e Procedure
Funzione
TIPO NOMEFUNZIONE(lista dei parametri formali)
Procedura:Funzione che non restituisce alcun valore.
void NOMEFUNZIONE (lista dei parametri formali)

I File - Struttura di Record Sequenziale(per leggere un record devo leggere prima tutti gli
altri )
Di Testo: Contengono testo con codifica ASCII
Binari: Sequenze di bit con codifica da specificare

Operazioni da compiere per lutilizzo di un file in un programma in C


Definire un puntatore di tipo FILE
Eseguire la funzione fopen
FILE *=fopen(nomefile.txt,modo)
(modo pu assumere i valori r, reading; w, whriting; a, append; r+, reading +
whriting)
Sui file possibile operare le seguenti funzioni:
Lettura - fscanf(p,%s,&x)
Scrittura - fprintf(p, %s, x)
Chiusura - fclose(p)
6. Reti
Una Rete di Calcolatori un insieme di calcolatori indipendenti, collegati tra di loro per lo
scambio dei dati. Sono progettate sul modello di CLIENT/SERVER e di PRODUTTORE/
CONSUMATORE. I nodi che offrono servizi prendono il nome di Server, quelli che se ne
avvalgono di Client.

PRO:
Economicit: pochi calcolatori di grande potenza svolgono le funzioni di server e i singoli
calcolatori individuali quello di client
Aumento delle performance dei singoli calcolatori individuali

Client/Server
Laccesso da porta di un client ai servizi di un server pu essere libero o controllato dal
server. Un nodo pu essere contemporaneamente sia client che server

Classificazioni delle Reti per Estensione


Rete Locale (Local Area Network, LAN) - Rete privata che collega tra loro calcolatori ed
apparecchi di uno stesso ufficio o dipartimento
Rete Metropolitana (Metropolitan Area Network, MAN) - Versione ingrandita ed estesa ad
una citt di una rete LAN
Rete Geografica (Wide Area Network, WAN) - Copre una intera nazione o continente

Internet Work: Connessione tra le diverse reti. Spesso abbreviato in internet; Internet
una delle tante reti internet esistenti ed a diffusione mondiale.

Caratteristiche delle Reti:


Mezzo di trasmissione utilizzato
Topologia
Comunicazione

Mezzo di trasferimento utilizzato


Mezzo fisico tramite il quale i bit viaggiano sotto forma di segnale analogico o digitale.
Rappresentano il canale di trasmissioni, e sono rappresentati da cavi telefonici o cavi
coassiali. Poich i calcolatori funzionano solo con segnali digitali, necessario che ad ogni
capo del mezzo sia connesso uno strumento in grado di eseguire la conversione da digitale
ad analogico (invio) e viceversa (ricezione). Le prestazioni di un mezzo di trasmissione si
misurano in bit per second, bps.

Modulazione
Le seuqunze di bit vengono convertite in segnale analogico (e quindi continuo) di
trasmissione. Si utilizzano segnali periodici detti portanti e i bit vengono codificati variando
ampiezza, frequenza o fase dei segnali portanti.

Demodulazione
Conversione opposta alla modulazione, avviene in ricezione.
Il dispositivo che opera la modulazione e la demodulazione prende il nome di modem.

Doppino Telefonico: Coppia di cavi in rame isolati ed intrecciati. Il segnale viaggia


sottoforma di differenza di potenziale elettrico in forma analogica o digitale. Raggiunge
velocit di trasmissione pari a 56 kbps in analogico e 4 mbps in digitale.

Cavo Coassiale: Cavo in rame portante centrale,isolato e dotato di una calza per
lisolamento da interferenze esterne ed isolato esternamente. Impiega come segnale unonda
elettromagnetica e raggiunge velocit di 10-12 Mbps.

Fibra Ottica: Fasci di fibre ottiche allinterno di materiale riflettente. Il segnale utilizzato , in
questo caso unonda elettromagnetica nello spettro del visibile (luce) emessa da dispositivi in
grado di produrre segnali ottici (diodi fotoelettrici). La propagazione di un segnale ottico pu
avvenire in maniera Monomodale, in cui presente un solo raggio ottico; e Multimodale in
cui molti raggi ottici sono posti allinterno dello stesso filo. Tra i vantaggi della fibra ottica
abbiamo la velocit, dellordine dei Gbps, unattenuazione del segnale quasi nulla,
immunit ai disturbi elettromagnetici, sicurezza della rete, la quale non trasporta
energia, e sicurezza dal punto di vista della privacy. Tra gli svantaggi abbiamo il costo, e
la difficolt di messa in posa.

Il Modem ADSL
Il doppino telefonico stato progettato per la comunicazione vocale che utilizza frequenza
fino ai 4000 Hz. I vecchi modem, sfruttando la stessa banda di frequenza della trasmissione
vocale, inpedivano limpiego simultaneo di Internet e Telefono. In seguito si comprese che era
possibile sfruttare frequenze di trasmissioni pi alte, rendendo possibile tale utilizzo
simultaneo. Ci per garantito solo allinterno dellUltimo miglio, ossia la distanza che va
dal domicilio dellutente fino alla centrale telefonica. Le prestazioni ottenibili sono legate alla
distanza dalla centrale, dalla presenza di interferenze e dal numero di utenti connessi. In
questo modo viaggiano segnali digitali

Sistemi Wireless
Infrarossi: Necessita che i calcolatori siano in vista luno con laltro. Molto usato in ambito
militare poich difficilmente intercettabile.
Wireless-Fidelity (Wi-Fi): Wireless LAN, con una portata di 35/100 metri. Per aumentare il
range di connettivit di un singolo Access Point va aumentata la potenza dello stesso;
tuttavia essa non pu superare dei ben delimitati valori imposti dalla legge (100 mW) per
ragioni di sicurezza legati al rischio elettromagnetico quindi si procede ad inserire pi
access point connessi tra loro.
Wi-Max: Estensione metropolitana del Wi-Fi, raggiunge i 70 Mbps.
Reti Cellulari: GSM, GPRS, UMTS

Topologia della Rete


Forma geometrica assunta dalla rete. Ogni calcolatore costituito da un punto chiamato
Nodo.
Rete a Stella

In questo tipo di topologia, lelaboratore centrale svolge la funzione di


distribuire i pacchetti smistandoli. Ha il vantaggio di gestire la comunicazione
in modo semplice, ma risulta essere molto vulnerabile per via del fatto che in
seguito ad un possibile problema al Centro-Stella lintera comunicazione
risulta inabilitata.

Rete ad Anello (RING)

In questo tipo di topologia ogni nodo spedisce i dati al nodo subito


adiacente, il quale verifica di essere il destinatario ed in caso contrario
spedisce a sua volta il pacchetto al nodo ad esso adiacente, il quale a sua
volta ripeter la stessa procedura. Questa topologia ha lo svantaggio di
essere parecchio lenta

Topologia a Bus

Topologia simile a quella per mezzo della quale nellarchitettura di


Von Neumann le singole componenti sono connesse. Presenta lo
svantaggio che in generale ed in un determinato istante il bus
occupato da solo 2 nodi, quello che invia e quello che riceve.

Il problema : come collegare tra loro le diverse reti, le quali differiscono per mezzo e
topologia? Si fa ricorso ad un Hub, un nodo che smista i dati tra le diverse reti. Ne esistono
di due tipi, Attivi, che amplificano il segnale; e Passivi, che non lo fanno.

La topologia delle reti internet definita Irregolare in quanto essa eterogenea. Ci


costituisce un vantaggio perch in caso di interruzioni di collegamenti, ce ne sono altri
disponibili.

Protocolli

Insieme di regole che controlla lo scambio di dati. Ci sono diversi tipi ISO-OSI
di protocolli, ma tutti fanno riferimento allo Standard ISO-OSI
(International System Organization Open System Interconnection, 7 APPLICAZIONE
interconnessione tra sistemi aperti e quindi non-proprietari) che 6 PRESENTAZIONE
5 SESSIONE
organizzato su 7 livelli e che definisce per ognuno di essi degli
4 TRASPORTO
standard e delle funzioni. Lo scopo di ogni livello quello di fornire al
3 NETWORK
livello superiore dei servizi mascherando la maniera in cui essi sono 2 DATA LINK
stati ottenuti ma passando dei dati ai livelli sottostanti fino al 1 FISICO
raggiungimento del livello fisico che effettua la trasmissione.

Livello 1 - Fisico
Costituito dal Canale di Comunicazione, si occupa del trasferimento di sequenze di bit sul
mezzo stesso.
Livello 2 - Datalink
Livello Hardware, si occupa della trasmissione di pacchetti, di cui deve identificare inizio e
fine. Gestisce il controllo del flusso e gli eventuali errori di trasmissioni effettuando, se
necessario, la ritrasmissione dei pacchetti.

Livello 3 - Network
Si occupa dellinstradamento dei pacchetti. Ha il compito di conoscere la topologia della rete
(sino al server del provider) in modo da poter individuare il cammino migliore per ogni
pacchetto.

Il Relayng, linoltramento effettuato ad opera delle Entit di Relayng, i quali sono in grado
di inoltrare i dati ad altre entit, le quali a loro volta o conoscono il percorso che i dati devono
seguire o sono a loro volta entit di relayng. Il Relayng pu avvenire a diversi livelli del
protocollo ISO-OSI, ed in base ad esso lentit che lo opera acquista nomi diversi:
Repeater se il relayng avviene al livello Fisico
Bridge se il relayng avviene al livello Datalink
Router se il relayng avviene al livello Network
Gateway se il relayng avviene al livello Applicazione

Il router inteso come oggetto fisico, anchesso un nodo, ma dispone dei soli primi 3 livelli.
Esso opera per mezzo di tabelle che descrivono la topologia della rete e che in base alla loro
natura statica o dinamica ne prende il nome:
un Router Statico un router la cui tabella invariabile nel tempo. Qualora sulla rete si
dovesse verificare un guasto, esso non in grado di rendersene conto e continuer ad
inviare pacchetti senza che questi giungano a destinazione.
un Router Dinamico un router la cui tabella cambia in maniera periodica e in base a
degli algoritmi di routing viene sempre cercata la strada pi efficiente.

Tipi di Collegamento tra Reti


Simplex - I dati fluiscono sempre nella stessa direzione
Half-Duplex - I dati fluiscono in entrambe le direzioni, ma mai contemporaneamente
Full-Duplex - I dati fluiscono in entrambe le direzioni, anche contemporaneamente

Pacchetti: Hanno tutti le stesse dimensioni.

Livello 4 - Trasporto
Fornisce un canale sicuro per il trasferimento dei dati end to end, svincolando tutti gli strati
superiori dai problemi di rete. Una tipica funzione adattare la dimensione dei frammenti
forniti dagli strati superiori (FILES) a quella richiesta dalla rete (PACCHETTI). Le due operazioni
mutue si chiamano Frammentazione e Riassemblamento. I pacchetti possono non
rispettare lordine di invio.

Livello 5 - Sessione
Si occupa dellorganizzazione del dialogo e della sincronizzazione tra due programmi e del
conseguente scambio di dati. Una sessione deve essere individuata, eventualmente
interrotta, e ripresa per far fronte a vari eventi catastrofici. Permette la chiusura ordinata
(SOFT) della conversazione, garantendo che tutti i dati inviati siano giunti a destinazione.
Individua punti di sincronizzazione e sottopone a turno (tokon) il diritto.
Livello 6 - Presentazione
Adotta il formato dei dati usato dai due calcolatori preservandone il significato. Ogni
interlocutore ha una sua sintassi locale e durante il dialogo bisogna concordare una sintassi
di trasferimento. Gestisce la sintassi dellinformazione da trasferire. Abbiamo tre diverse
sintassi:
A strato - Definizione formale dei dati che gli applicativi si scambiano
Concreta Locale - Si occupa di come i dati sono rappresentati localmente
Di trasferimento - Si occupa di come i dati sono codificati durante il trasferimento

Qual la parte pi significativa della parola? A seconda di questa definizione capiamo in che
modo dobbiamo leggere la parola (Sistemi di Griglia).

Livello 7 - Applicazione
Rappresenta il programma applicativo che per svolgere i suoi compiti ha bisogno di
comunicare con le altre applicazioni.

Ogni livello del modello ISO-OSI ha limpressione di dialogare con il corrispondente livello del
destinatario tramite linterfaccia fornita dal livello sottostante. (Macchina Astratta).

Messaggi e Pacchetti
La comunicazione tra nodi avviene mediante lo scambio di messaggi, secondo protocolli
comuni. I messaggi vengono suddivisi in pacchetti, sequenza di byte, in genere di lunghezza
fissa e composti da byte di controllo allinizio (header), byte di controllo alla fine (tail) e dati al
centro. I Byte di Controllo contengono dati circa:
Inizio del pacchetto
Mittente
Destinatario
Controllo di Correttezza
Fine del pacchetto

Controllo di Correttezza: Meccanismi che consentono di rilevare se uno o pi bit sono stati
alterati durante la trasmissione

Incapsulamento (o Imbustamento): operazione di inserimento di un Payload (carico) di un


livello N del modello ISO-OSI tra un Header ed un Tail del livello N-1. Il pacchetto di un livello
diventa quindi il Payload del livello inferiore e cos via.

Tipologie di Protocolli
Per tutti i livelli superiori al livello fisico sono definite due modalit operative:
Connessa (Connession Orientated) - Costituita da tre momenti principali, ossia creazione
della connessione (si concorda lo scambio dei dati e vengono definiti gli indirizzi delle
Entit); trasferimento dei dati (i pacchetti inviati sono ricevuti nello stesso ordine. In caso
di errore la connessione pu essere riavviata o terminata. Per verificare che tutti i pacchetti
giungano a destinazione correttamente, un servizio utilizza degli schemi di numerazione dei
pacchetti e di verifica dellavvenuta corretta ricezione, gli ACK, acknowledgment); chiusura
della connessione
Non Connessa (Connessionless) - La spedizione di un pacchetto non seguita da alcun
riscontro diretto. Il pacchetto deve contenere lindirizzo completo del destinatario e non pu
fare riferimento a pacchetti precedenti o successivi.

TCP/IP - Protocolli della Rete Internet


Il protocollo della rete Internet racchiude i 7 livelli del protocollo ISO-OSI in 4 livelli:
Applicazione - Corrispondente ai livelli Applicazione, Presentazione e Sessione
Trasporto
Network
Host-Rete - Corrispondente ai livelli Datalink e Fisico

IP (Internet Protocol) - Livello 3, rete. Gestisce il routing dei singoli pacchetti (dinamico). Pu
modificare una route se una connessione viene interrotta oppure in base alle condizioni di
traffico. E molto affidabile ed ogni nodo ha un suo indirizzo IP a 4 byte. E quindi composto
da 4 numeri, ognuno dei quali compreso tra 0 e 255. I primi due numeri indicano una rete, il
terzo numero una sottorete ed il quarto numero identifica la posizione del calcolatore
allinterno della rete stessa.

Router: Dispositivo che si occupa di instradare i pacchetti tra due o pi sottoreti limitrofe con
rispettivo indirizzo oppure a sottoreti non limitrofe tramite tabelle di instradamento.

A ciascun indirizzo numerico assegnato un nome simbolico. La trasformazione da indirizzo


simbolico a indirizzo numerico operata dai DNS (Domain Name System), calcolatori che
detengono tabelle di conversione.

TCP (Transfer Control Protocol) - Livello 4, trasporto. I dati sono suddivisi in pacchetti di
identica dimensione. Si tratta di un protocollo orientato alla connessione ed ogni pacchetto
inviato separatamente: i pacchetti di uno stesso messaggio possono seguire percorsi diversi.
Il controllo degli errori avviene tramite Checksum. I Numeri di porta permettono
lidentificazione allinterno dellindirizzo IP dellapplicazione di livello superiore che deve
interagire. Un Host ha di solito diverse porte attive:

ACRONIMO NOME APPLICAZIONE NUMERO DI PORTA

HTTP HyperText Transfer Accesso Pagine Web 80


Protocol

SMTP Simple Mail Transfer Invio Email 25


Protocol

POP3 Post Office Protocol Ricezione Mail 110

IMAP Internet Mail Access Ricezione Mail 143


Protocol

FTP File Transfer Protocol Accesso a File Remoti 21

TELNET Terminal Emulation Accesso a Terminali 23


Protocol Remoti

DNS Domain Name System Traduzione di Nomi 42


Servizi Offerti dalla Rete Internet
Terminale Remoto - Permette di accedere ad una qualsiasi maccina sulla rete e di interagirvi
come se fosse un terminale direttamente connesso. Permette lavvio e lesecuzione di
processi sul nodo su cui si connessi, ma per accedere a questo servizio necessario
avere i permessi di accesso, ovvero essere utenti di entrambi i nodi.
Trasferimento di File - I dati vengono trasferiti in blocco da un calcolatore ad unaltro. Si
segue un approccio Client/Server in cui il nodo il client il nodo locale da cui si richiede il
servizio mentre il server il nodo remoto da cui o su cui si intende inviare il file. Non
necessario essere utenti del nodo remoto.
Posta Elettronica - Linvio di messaggi avviene tramite una sola porta, la SMTP, mentre la
ricezione pu avvenire attraverso 2 protocolli diversi, il POP3 e lIMAP. Per quanto riguarda
lAccesso alla posta sia on-line che offline, mentre il POP3 agisce in modo che il client
si connetta per scaricare i nuovi messaggi e poi si disconnetta, lIMAP fa in modo che il
client sia sempre connesso. Per quanto concerne lUtilizzo da parte di pi utenti della
casella di posta, mentre il POP3 non lo consente, lIMAP si. La maggior parte delle email
sono trasmesse nel formato MIME strutturato in modo che ogni ramo abbia un contenuto
diverso. La porta IMAP4 consente di scaricare anche solo uno solo dei singoli rami alla
volta.
WWW (World Wide Web) - Sistema per la gestione di documenti ipertestuali e multimediali i
quali possono essere dislocati su diversi nodi: appositi software detti Brosware
provvedono alla visualizzazione degli stessi. Esso si basa su 3 standard: il sistema di
indirizzi URL (Uniform Resource Locator), un sistema di indirizzi che individua ogni risorsa
sulla rete e specifica il protocollo necessario per accedervi; protocollo di comunicazione
HTTP; ed un linguaggio per la relizzazione degli ipertesti, lHTML (HyperText Markup
Language).
7. Sicurezza Informatica
Firma Digitale: Consente di scambiare documenti elettronici dando loro piena validit legale.
Deve garantire 3 propriet:
Autenticit - Il destinatario pu verificare lidentit del mittente
Non Ripudio - Il mittente non pu disconoscere un documento da lui firmato
Integrit - Il destinatatio non pu modificare un documento altrui

Tali propriet sono garantite da:


Possesso del dispositivo di firma, detenuto solo dal titolare del certificato
Possesso del PIN (Personal Identificator Number) solo da parte del titolare
Esistenza di un ente certificatore in grado di verificare la veridicit delle informazioni riportate

Il Certificatore un ente riconosciuto dallo Stato, oppure accreditato presso il CNIPA


(Centro Nazionale per lInformatica nella Pubblica Amministrazione). In tal caso viene detto
Ente Accreditato.

Il Kit per la firma digitale comprende:


Dispositivo di generazione della firma
Lettore di smartcard (se il dispositivo una smartcard)
Software per linterazione col dispositivo

N.B. Il Certificato ha una scadenza

I Formati della Firma digitale


Formato pkcs#7 - meglio noto come p7m, quello previsto dallordinamento giuridico
Formato PDF - la firma va implementata secondo norma di legge
Formato XML - firma meno invasiva

Crittografia Asimmetrica
Ogni titolare dispone di due chiavi, una privata, custodita sulla smartcard (o USB) il cui
accesso possibile solo con il PIN ed usata per la generazione della firma; una pubblica,
custodita e pubblicata dallente certificatore, viene usata per verificare la firma. Le due chiavi
sono correlate in maniera univoca e dalla chiave pubblica non possibile risalire alla chiave
privata.

Processo di Firma
Viene calcolata limpronta digitale del documento con un algoritmo di Hash che
restituisce una stringa funzione del documento.
La Stringa viene cifrata usando lalgoritmo a chiave asimmetrica usando la chiave privata. Il
risultato la firma digitale del documento.
La firma viene allegata al documento
Al documento allegato il certificato e la chiave pubblica
Il documento trasmesso al destinatario
Posta Elettronica Certificata (PEC) - Permette di dare ad un messaggio di posta
elettronicalo stesso valore legale di una raccomandata AR. La PEC pu aggiungere la
certificazione del contenuto del mittente solo se in combinazione con la firma elettronica
certificata. Al momento dellinvio di una mail PEC il gestore PEC del mittente invia a
questultimo una ricevuta che costituir la prova dellavvenuta (o mancata) trasmissione del
messaggio con la precisa indicazione temporale del momento in cui la mail srara inviata. Il
gestore del destinatario, dopo aver depositato il messaggio PEC nella casella, fornir al
mittente una ricevuta di avvenuta consegna con lindicazione temporale di quando la
consegna avvenuta. Se il destinatario non dispone di una casella PEC il mittente non
ricever alcuna documentazione circa lavvenuta ricezione. Questo servizio pu essere
erogato solo da gestori accreditati presso il CNIPA e tramite domini dedicati. La PEC
garantisce i livelli minimi di sicurezza stabiliti dalla legge e lopponibilit a terzi delle operazioni
di invio e ricezione. Non garantisce circa lavvenuta lettura