Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Scheduling e Gestione dei Processi nel Sistema Operativo - Prof. Raul Marini, Schemi e mappe concettuali di Informatica per la ricerca sociale

Una panoramica dettagliata delle macro tipologie di scheduler e gestione dei processi nel sistema operativo. Esplora il ruolo del scheduler, la gestione della memoria, del file system, della memoria virtuale e della paginazione, oltre a tecnologie hardware e software, base di dati, protocolli di comunicazione e topologie di rete. Inoltre, viene discusso l'apprendimento supervisionato e non supervisionato, la tecnologia trasmissiva, la dimensione di internet e l'architettura di rete. Utile per studenti universitari di informatica o ingegneria informatica che studiano i sistemi operativi.

Tipologia: Schemi e mappe concettuali

2022/2023

Caricato il 22/01/2024

evandro-carlo-ciaccia
evandro-carlo-ciaccia 🇮🇹

1 documento

1 / 16

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
I
n
f
orm
a
t
ica
N
oz
i
on
i
i
mport
a
nt
i
B
i
t
e
c
o
dice
bi
n
a
r
i
o
U
n
i
t
à
f
on
da
m
e
nt
ale
della
m
acchi
n
a
è
il
BIT
,
ci
o
è
il
BINAR
Y
DIGIT
,
che
r
a
ppr
e
s
e
nt
a
l
ʼ
un
i
t
à
p
i
ù
p
icc
o
la
alla
ba
s
e
dell
ʼ
i
n
f
orm
a
t
ica
,
il
t
a
ss
ell
o
che
c
ost
i
tu
i
s
ce
qu
al
s
ia
s
i
da
to
.
O
g
n
i
da
to
elab
or
a
to
s
a
r
à
c
omposto
da
BIT
.
N
ella
m
acchi
n
a
s
i
ha
nno
c
omp
le
ss
i
v
a
m
e
nt
e
220
s
i
m
b
o
li
.
P
e
r
r
a
ppr
e
s
e
nt
a
r
e
tutt
i
e
220
i
s
i
m
b
o
li
s
i
de
vono
us
a
r
e
8
bi
t
che
c
orr
i
spon
d
ono
ad
1
b
yt
e
,
i
n
s
e
qu
e
nz
e
di
v
e
rs
e
.
Q
u
i
n
di
:
1
b
yt
e
=8
bi
t
,
che
p
e
rm
e
ttono
di
ott
e
n
e
r
e
220
c
om
bi
n
a
z
i
on
i
di
v
e
rs
e
(
a
o
g
nun
a
delle
qu
ali
c
orr
i
spon
de
un
ca
r
a
tt
e
r
e
sp
ecific
o
).
TABELLA ASCII
:
T
abella
che
c
orr
i
spon
de
a
o
g
n
i
c
om
bi
n
a
z
i
on
e
un
v
al
or
e
(
e
s
.
un
a
da
t
a
c
om
bi
n
a
z
i
on
e
c
orr
i
spon
de
r
à
alla
le
tt
e
r
a
A
).
I
v
al
or
i
di
0
e
1
,
che
c
ost
i
tu
i
s
c
ono
le
d
u
e
un
i
t
à
su
lle
qu
ali
s
i
f
on
da
il
c
o
dice
bi
n
a
r
i
o
,
v
e
n
g
ono
le
tt
i
e
di
st
i
nt
i
i
n
ba
s
e
alla
c
orr
e
nt
e
ele
ttr
ica
e
alla
diffe
r
e
nz
a
di
pot
e
nz
iale
.
C
om
e
s
i
fa
a
r
ichiede
r
e
qu
a
nt
i
1
e
qu
a
nt
i
0
s
i
n
ece
ss
i
t
a
no
ott
e
n
e
r
e
p
e
r
f
orm
a
r
e
un
a
s
e
qu
e
nz
a
bi
n
a
r
ia
?
C
on
un
t
e
mpo
,
de
tto
C
l
o
ck
.
C
l
o
ck
:
C
icl
o
che
de
t
e
rm
i
n
a
o
g
n
i
qu
a
nto
il
c
omput
e
r
c
ontro
lla
s
e
la
t
e
ns
i
on
e
ele
ttr
ica
s
i
trov
a
sopr
a
o
sotto
la
so
glia
.
M
acchi
n
a
di
V
on
N
e
um
a
nn
L
a
m
aggi
or
p
a
rt
e
dei
c
omput
e
r
f
unz
i
on
a
no
s
ec
on
d
o
l
'
a
r
chi
t
e
ttur
a
di
V
on
N
e
um
a
nn
.
I
l
mo
dell
o
s
i
ba
s
a
su
ci
nqu
e
c
ompon
e
nt
i
f
on
da
m
e
nt
ali
:
la
CP
U
,
l
'
un
i
t
à
di
m
e
mor
ia
,
l
'
un
i
t
à
di
i
nput
e
l
'
un
i
t
à
di
output
e
il
b
us
.
CP
U
CP
U
:
C
e
ntr
al
P
ro
ce
ss
i
n
g
U
n
i
t
;
è
c
ost
i
tu
i
t
a
dall
'
AL
U
,
dalla
C
U
e
dai
r
egi
str
i
.
B
us
I
b
us
sono
i
m
e
zz
i
a
str
a
tt
i
a
ttr
a
v
e
rso
i
qu
ali
i
da
t
i
v
e
n
g
ono
tr
a
sm
e
ss
i
da
un
a
p
a
rt
e
del
c
omput
e
r
all
'
al
tr
a
,
c
onn
e
tt
e
n
d
o
d
unqu
e
i
c
ompon
e
nt
i
i
nt
e
rn
i
alla
CP
U
e
alla
m
e
mor
ia
.
U
n
i
t
à
di
m
e
mor
ia
(
RAM
)
L
'
un
i
t
à
di
m
e
mor
ia
è
c
ost
i
tu
i
t
a
dalla
RAM
(
R
a
n
d
om
A
cce
ss
M
e
mory
)
.
S
i
tr
a
tt
a
di
un
t
i
po
di
m
e
mor
ia
vo
l
t
a
t
ile
(
ovv
e
ro
che
n
ece
ss
i
t
a
dell
'
ali
m
e
nt
a
z
i
on
e
ele
ttr
ica
c
ont
i
nu
a
al
fi
n
e
di
m
a
nt
e
n
e
r
e
m
e
mor
i
zz
a
t
e
le
i
n
f
orm
a
z
i
on
i
)
all
'
i
nt
e
rno
della
qu
ale
v
e
n
g
ono
i
mm
aga
zz
i
n
a
t
e
le
i
n
f
orm
a
z
i
on
i
di
c
u
i
un
pro
g
r
a
mm
a
ha
bi
so
g
no
d
ur
a
nt
e
l
'
e
s
ec
uz
i
on
e
;
è
ca
su
ale
i
n
qu
a
nto
s
i
può
accede
r
e
ai
da
t
i
da
e
ss
a
c
ont
e
nut
i
i
n
qu
al
unqu
e
or
di
n
e
s
i
trov
i
no
e
non
so
l
o
i
n
s
e
qu
e
nz
a
.
M
o
d
u
l
o
i
nput
-
output
D
unqu
e
:
i
da
t
i
i
n
i
nput
(
e
s
.
mous
e
,
t
a
st
ie
r
a
)
a
rr
i
v
a
no
alla
RAM
;
dalla
RAM
sono
le
tt
i
dalla
C
U
,
che
da
le
i
n
dica
z
i
on
i
all
'
AL
U
p
e
r
la
l
oro
elab
or
a
z
i
on
e
;
da
lì
,
i
da
t
i
elab
or
a
t
i
torn
a
no
alla
RAM
e
r
ie
s
c
ono
i
n
output
(
e
s
.
mon
i
tor
).
AL
U
(
A
r
i
t
h
m
e
t
ic
L
o
gic
U
n
i
t
)
:
S
i
o
cc
up
a
di
e
s
eg
u
i
r
e
le
op
e
r
a
z
i
on
i
l
o
giche
ed
a
r
i
tm
e
t
iche
.
C
U
(
C
ontro
l
U
n
i
t
)
:
L
ʼ
un
i
t
à
di
c
ontro
ll
o
è
not
a
a
n
che
c
om
e
ce
ntr
ali
n
a
ed
è
e
ss
e
nz
ial
m
e
nt
e
r
e
spons
abile
della
s
e
qu
e
nz
a
di
elab
or
a
z
i
on
e
dei
c
om
a
n
di
.
R
egi
str
i
:
I
r
egi
str
i
sono
p
icc
o
le
m
e
mor
ie
a
c
u
i
s
i
può
accede
r
e
i
n
mo
d
o
p
a
rt
ic
o
la
rm
e
nt
e
r
a
p
id
o
g
r
a
z
ie
alla
l
oro
pross
i
m
i
t
à
all
ʼ
un
i
t
à
di
calc
o
l
o
.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica Scheduling e Gestione dei Processi nel Sistema Operativo - Prof. Raul Marini e più Schemi e mappe concettuali in PDF di Informatica per la ricerca sociale solo su Docsity!

Informatica

Nozioni importanti

Bit e codice binario Unità fondamentale della macchina è il BIT , cioè il BINARY DIGIT , che rappresenta lʼunità più piccola alla base dellʼinformatica, il tassello che costituisce qualsiasi dato. Ogni dato elaborato sarà composto da BIT.

Nella macchina si hanno complessivamente 220 simboli. Per rappresentare tutti e 220 i simboli si devono usare 8 bit che corrispondono ad 1 byte , in sequenze diverse. ⇩ Quindi: 1 byte=8 bit , che permettono di ottenere 220 combinazioni diverse (a ognuna delle quali corrisponde un carattere specifico).

TABELLA ASCII : Tabella che corrisponde a ogni combinazione un valore (es. una data combinazione corrisponderà alla lettera A).

I valori di 0 e 1 , che costituiscono le due unità sulle quali si fonda il codice binario , vengono letti e distinti in base alla corrente elettrica e alla differenza di potenziale.

Come si fa a richiedere quanti 1 e quanti 0 si necessitano ottenere per formare una sequenza binaria? Con un tempo, detto Clock. Clock : Ciclo che determina ogni quanto il computer controlla se la tensione elettrica si trova sopra o sotto la soglia.

Macchina di Von Neumann La maggior parte dei computer funzionano secondo l' architettura di Von Neumann. Il modello si basa su cinque componenti fondamentali: la CPU , l' unità di memoria , l' unità di input e l' unità di output e il bus.

CPU

CPU : Central Processing Unit; è costituita dall' ALU , dalla CU e dai registri.

Bus I bus sono i mezzi astratti attraverso i quali i dati vengono trasmessi da una parte del computer all'altra, connettendo dunque i componenti interni alla CPU e alla memoria.

Unità di memoria (RAM) L'unità di memoria è costituita dalla RAM (Random Access Memory). Si tratta di un tipo di memoria voltatile (ovvero che necessita dell'alimentazione elettrica continua al fine di mantenere memorizzate le informazioni) all'interno della quale vengono immagazzinate le informazioni di cui un programma ha bisogno durante l'esecuzione; è casuale in quanto si può accedere ai dati da essa contenuti in qualunque ordine si trovino e non solo in sequenza.

Modulo input-output Dunque: i dati in input (es. mouse, tastiera) arrivano alla RAM ; dalla RAM sono letti dalla CU , che da le indicazioni all' ALU per la loro elaborazione; da lì, i dati elaborati tornano alla RAM e riescono in output (es. monitor).

ALU (Arithmetic Logic Unit) : Si occupa di eseguire le operazioni logiche ed aritmetiche. CU (Control Unit) : Lʼunità di controllo è nota anche come centralina ed è essenzialmente responsabile della sequenza di elaborazione dei comandi. Registri : I registri sono piccole memorie a cui si può accedere in modo particolarmente rapido grazie alla loro prossimità allʼunità di calcolo.

Firmware Il firmware è un tipo di software che fornisce istruzioni operative ai componenti hardware di un dispositivo, consentendone il funzionamento di base. Poiché il firmware viene installato dal produttore e in genere non può essere rimosso, viene talvolta definito software integrato. Esso ha la funzione di fare da tramite tra l'hardware e il software. In altre parole, si tratta di un programma, ovvero di una sequenza di istruzioni , integrato direttamente in un componente elettronico programmato (es. telecomando).

Il tipo più conosciuto di firmware è quello della scheda madre di un PC , ovvero l' UEFI (che dal 2010 ha sostituito il BIOS), responsabile del corretto avvio del computer.

Software Si definisce software un insieme di componenti logiche necessarie per svolgere un insieme di compiti specifici utilizzando un dispositivo elettronico, l' hardware.

Esistono tre tipi di software :

Sistema operativo Un sistema operativo (OS) è un programma che funge da intermediario tra un utente e l'hardware di un computer. Viene utilizzato per gestire e organizzare le risorse hardware e software di un computer e fornire una piattaforma per l'esecuzione di applicazioni. Esempi di sistemi operativi sono IOS e Android; i due non sono interscambiabili.

Le sue funzioni sono:

I sistemi operativi possono essere:

Inoltre può essere:

Un sistema operativo è composto dai seguenti elementi : Kernel Il kernel è il nucleo centrale del sistema operativo: su di esso si appoggiano le altre funzioni del sistema operativo stesso. In base alla struttura interna dell'OS e del suo kernel si distinguono tre macro tipologie differenti:

Scheduler Si tratta di un componente di un sistema operativo, ovvero un programma che implementa un algoritmo di scheduling (pianificazione) il quale, dato un insieme di richieste di accesso a una risorsa (ovvero ogni componente fisico o

software di sistema : quello relativo al sistema operativo ; software di base : insieme dei programmi e delle procedure di utilità generale impiegabili da altri programmi software applicativo : relativo ai programmi applicativi (applicazioni) progettati per particolari funzioni che possono essere ad esempio la scrittura, l'elaborazione di immagini, la gestione dei dati e altro.

gestione dei componenti hardware; esecuzione dei programmi; interazioni con le periferiche; interazioni con gli utenti.

mono-task : l'OS consente l'esecuzione di un solo programma per volta; multi-task : l'OS consente l'esecuzione di più programmi contemporaneamente (es. Windows, Apple OS X); multi-threading : un programma viene suddiviso in più thread distinti, eseguiti contemporaneamente sulla stessa CPU.

mono utente : non distingue l'utente che utilizza il computer; un solo utente; multi utente : riconosce gli utenti e assegna a ognuno di loro file sulla memoria secondaria e processi in esecuzione.

OS a kernel monolitico : implementano direttamente una completa astrazione rispetto all'hardware sottostante; OS a microkernel : forniscono un insieme ristretto e semplice di astrazione dell'hardware e usano software (chiamati device driver o server ) per fornire maggiori funzionalità.

La memoria secondaria, per ragioni fisiche e tecnologiche, ha un tempo di accesso e di trasferimento dei dati molto più alti rispetto alla memoria primaria.

Gestore della protezione e della sicurezza In un sistema multi-task e multi-utente il sistema operativo si occupa della protezione delle risorse : essa è diretta a salvaguardare la riservatezza delle risorse dai processi e dagli utenti.

La protezione è basata su:

Interfaccia utente L'OS offre delle funzioni alle applicazioni per costruire gli strumenti di dialogo e interazione con l'utente.

L' user interface può essere:

Viene definita usabilità di un'interfaccia la misura dell'efficacia, dell'efficienza e della soddisfazione con cui gli utenti possono compiere determinati compiti in un certo contesto utilizzando tale interfaccia.

Es. L'interfaccia di un iMac o di un computer Windows sono relativamente semplici da comprendere dagli utenti con meno esperienza.

I sette principi di Norman Elaborati dall'informatico e psicologo cognitivo Donald Norman , i sette principi di Norman sono sette concetti volti a trasformare compiti difficili in compiti facili.

Essi sono:

Sistemi informativi (Information and communication technology) Produrre un'informazione e mandarla a qualcuno richiede tre elementi fondamentali :

Un sistema informativo(SI) può essere definito come un sistema ICT che ha il compito di organizzare e gestire le informazioni necessarie per perseguire gli obiettivi di una determinata realtà o organizzazione. In altre parole, esso può essere definito come lʼinsieme di apparecchiature, procedure e persone che hanno il compito di raccogliere , selezionare , archiviare e comunicare le informazioni/dati riguardanti lʼattività di una determinata realtà/organizzazione (azienda, struttura sanitaria, industria).

autenticazione , ovvero l'accertamento dell'identità di un utenteM autorizzazione , ovvero l'accertamento del diritto di accedere a una risorsa da parte di un utente o di un processo.

alfanumerica : il sistema operativo offre un modello astratto di terminale per presentare le informazioni su uno schermo in grado di visualizzare caratteri alfabetici numerici ed acquisire lʼinput attraverso una tastiera; Graphical User Interface (GUI): il sistema operativo offre un insieme di funzioni ai programmi con cui possono costruire unʼinterfaccia utente grafica, basata su elementi quali le finestre e le icone ; lʼinput avviene anche mediante il mouse (o un trackpad o un touch-screen ) e non solo la tastiera.

conoscenza : usare sia la conoscenza presente nel mondo sia quella "nella testa"; semplificazione : semplificazione della struttura dei compiti; visibilità : rendere visibili gli elementi correlazione : impostazione semplice delle correlazioni; vincoli : sfruttamento dei vincoli, sia naturali che artificiali; errore : lasciare un margine di errore; standard : quanto tutto il resto non serve, aderire agli standard.

tecnologie hardware e software : ogni sistema di IT/ITC è costituito fisicamente da un insieme di elaboratori (PC, workstation, servers, ecc.) e da un insieme di applicazioni (programmi di analisi, manipolazione, gestione); base di dati : il ciclo di vita di un'informazione è sempre gestito attraverso una base di dati, ossia un archivio elettronico che ha il compito di salvaguardare ogni singola informazione in essa contenuta; protocolli di comunicazione/trasmissione : per condividere le informazioni è necessario che i diversi elaboratori che si trovano distanti tra loro abbiano a disposizione un metodo per comunicare: questo metodo è fornito dai protocolli di rete che consentono la comunicazione e lo scambio di informazioni.

Un SI ha quale scopo primario quello di mettere a disposizione delle diverse classi di utenza tutte le informazioni necessarie atte al perseguimento delle proprie attività.

Un SI è caratterizzato dalle seguenti componenti costitutive:

Interazione uomo-macchina Uomo L' end-user , ovvero l'utente dell'applicazione mobile, utente del videogioco, utente dell'applicazione desktop. Ha le abilità di fornire un input e di ricevere un output.

Macchina Qualsiasi tipo di dispositivo , come desktop, laptop, smartphone ecc.

Interfaccia Una specifica parte di software che permette la comunicazione tra uomo e macchina. Essa può essere trasparente all'utente (es. Kinect) o non trasparente (es. Facebook, Excel)

Database

Modello entità-relazione (ER) Sono tre gli elementi su cui si fonda il modello ER:

Entità : sono oggetti del mondo reale di cui vogliamo memorizzare informazioni. Esse possono essere sia concrete che astratte. Esempi di entità sono i dipendenti e i clienti di un'azienda, i prodotti in un magazzino, un viaggio, le fermate dell'autobus, ecc.

Relazioni : sono collegamenti tra due o più entità.

Attributi : caratteristiche di entità e relazioni. Ad esempio, gli attributi di un cliente potrebbero essere nome completo, indirizzo, numero di telefono ecc. Gli attributi hanno un dominio , ovvero l'insieme di valori che l'attributo può avere, e dipende dall'attributo stesso.

es. Il totale del conto bancario di un cliente dovrà essere un numero maggiore o uguale a 0,

gli attributi possono essere di diversi tipi:

⇨ Dunque un database è l'insieme di entità e relazioni appartenenti al mondo reale di cui vogliamo memorizzare informazioni.

Dipendenza funzionale Una dipendenza funzionale è una proprietà emergente delle relazioni in una base di dati relazionale, descrivibile come un legame sistematico tra le istanze degli attributi compresi in una relazione. Una dipendenza funzionale si scrive nel modo seguente: XY E viene letto come X determina Y , dove il primo è determinate e il secondo il dipendente.

Le dipendenze funzionali sono utili per evitare dati non corretti all'interno del database; ad esempio, fanno in modo che la data di nascita determini la data di morte, o data di nascitadata di morte

dati : la componente principale del SI, acquisiti e inizialmente allo stato grezzo; informazioni : ottenute mediante l'elaborazione dei dati grezzi; persone : ovvero i destinatari, fruitori o creatori dei dati e dunque delle informazioni; strumenti : insieme di dispositivi in grado di trasferire le informazioni sia localmente che da remoto; processi/procedure : insieme di attività che permettono di acquisire ed elaborare i dati.

semplice : attributi che non possono essere divisi in altri attributi (es. età, stipendio); multiplo : attributi che possono assumere valori multipli (es. elenco degli esami di uno studente); composto : attributi suddivisibili in più parti (es. indirizzo, che può essere suddiviso in via, CAP, numero civico, ecc.); opzionale : attributi non necessari (es. numero della patente di guida, dato che non tutti hanno conseguito la patente).

Per ripassare diagramma stickman : slides da 141 a 146 delle slides riassuntive

Machine learning (ML) Il machine learning insegna ai computer a imparare dall'esperienza. Gli algoritmi di apprendimento automatico utilizzano medi computazionali per ricavare le informazioni direttamente dai dati senza basarsi su un'equazione predeterminata come modello.

Il ML è applicato nella finanza computazionale, nell'elaborazione delle immagini e visione artificiale, per il riconoscimento facciale, per la biologia computazionale e per il NLP.

Rete di calcolatori Una rete di calcolatori (connessioni tra computers) è un insieme di dispositivi hardware e software collegati l'uno con l'altro da appositi canali di comunicazione, che permette il passaggio da un utente all'altro di risorse (foto, video, audio), informazioni e dati in grado di essere pubblicati e divisi.

Le applicazioni sono molteplici: viene utilizzata dalle applicazioni domestiche (e-commerce, intrattenimento interattivo, comunicazione da persona a persona), nelle applicazioni mobile (Whatsapp, Google Maps) e nelle applicazioni aziendali (resource sharing, Microsoft Azure).

Modello client-server La maggior parte di queste applicazioni si basano su un modello client-server , ovvero una struttura applicativa distribuita nella quale genericamente un computer client , o terminale , si connette ad un server per la fruizione di un certo servizio. Un server gestisce la maggior parte dei processi e memorizza tutti i dati , mentre un client richiede dati o elaborazioni; quindi il server manda i risultati dell'elaborazione al client.

Tipi di network Le reti si possono classificare in base a diversi fattori. I principali sono:

Tipi di network in base alla tecnologia di trasmissione :

Tipi di network in base alla topologia (slide 160) Esistono cinque tipi di topologie di rete , ovvero quattro tipi di rappresentazioni del modo in cui i vari nodi (elaboratori, sottoreti, ecc.) che la compongono sono collegati:

Tipi di network in base alla scala (dimensione)

Un algoritmo di apprendimento supervisionato prende un insieme noto di dati di input e risposte note ai dati (output) e forma un modello per generare previsioni ragionevoli per la risposta ai nuovi dati; l' apprendimento non supervisionato trova modelli nascosti o strutture intrinseche nei dati. È usato per trarre inferenze da set di dati costituiti soltanto da dati di input, senza risposte.

tecnologia trasmissiva : come vengono inviati i messaggi all'interno della rete; dimensione : in base all' estensione geografica della rete; topologia : la configurazione geometrica dei collegamenti tra i vari componenti della rete.

point-to-point : connette individualmente coppie di macchine; broadcast : le reti hanno un solo canale di comunicazione che è condiviso tra tutte le macchine della rete.

hub ; ring ; mesh ; stella ; tree.

La distanza è la metrica usata per classificare queste reti; si tratta di un fattore rilevante, in quanto cambiano notevolmente le tecnologie e le topologie della rete in base alla sua dimensione. Se i processori si trovano a 10 m di distanza, saranno probabilmente nella stessa stanza (es. local area network, LAN ); se si trovano a 1.000km di distanza saranno probabilmente situati nello stesso continente (es. wide area network, WAN ); se si trovano a 10.000km di distanza sono nello stesso pianeta ( internet ).

WAN : si estendono a livello nazionale, continentale e mondiale. Le reti WAN sono formate principalmente da due elementi:

Le WAN non sono LAN più grandi, infatti:

Internet Internet è una collezione di reti diverse collegate tramite un gateway , ovvero un dispositivo di rete che collega due reti informatiche di tipo diverso. Bisogna immaginare un gruppo di LAN collegate da una WAN.

Ogni rete utilizza hardware diversi e soprattutto protocolli diversi per gestire la comunicazione al suo interno; quando si connettono reti diverse nascono problemi di incompatibilità (di hardware e di protocolli).

Gerarchia di protocolli La comunicazione tra le varie entità all'interno delle reti è gestita da un protocollo di rete. Protocollo di rete : definizione formale a priori delle modalità di interazione che due o più apparecchiature elettroniche collegate devono rispettare per instaurare una comunicazione. Il protocollo interessa il software.

Per ridurre la complessità dei protocolli di rete, generalmente questi sono suddivisi in livelli. Due tipi di reti diverse possono differire per numero di livelli, nome dei livelli, contenuto dei livelli e funzionalità dei livelli.

Lo scopo di ogni livello è quello di offrire alcuni servizi ai livelli più alti, nascondendo a questi ultimi come questi servizi sono realmente svolti; ovvero, i livelli superiori vedranno solo i risultati dei livelli inferiori. I dati che arrivano dal livello inferiore a quello superiore sono elaborati in maniera da risultare comprensibili a quest'ultimo; inoltre, oltre ai dati, il livello inferiore fornisce anche delle informazioni di controllo usate per il monitoraggio del processo di comunicazione.

Al di sotto del livello 1 c'è il mezzo fisico , attraverso il quale i dati vengono trasferiti dall'host 1 all'host 2. Quando arrivano all'host 2, i dati vengono passati da ogni livello (a partire dal livello 1) a quello superiore, fino a raggiungere l'ultimo livello (nel caso della figura, il livello 5).

Fra ogni coppia di livelli adiacenti è definita una interfaccia , che caratterizza:

Vi sono due principali classi di servizi offerti da un livello a quello superiore:

L'insieme dei livelli e dei protocolli definisce l' architettura di rete , ovvero l'architettura software che definisce il complesso delle funzionalità logiche della rete stessa , cioè come sono strutturate e interconnesse tra loro.

host : elaboratori su cui girano i programmi; subnet : insieme di connessioni i tra i vari hosts.

gli host e la sottorete sono di proprietà e di gestione di persone o organizzazioni diverse; gli host possono formare una LAN; la subnet è generalmente posseduta e gestita da una compagnia telefonica o da un internet service provider.

le operazioni primitive che possono essere richieste al livello sottostante; i servizi che possono essere offerti dal livello sottostante.

servizi connection oriented : basati sulla connessione tra nodo sorgente e nodo ricevente; questa si stabilisce per lo scambio e si rilascia al termine di esso; servizi connectionless : passaggio dell'informazione da nodo sorgente a nodo ricevente attraverso nodi terzi.

In particolare, il suo obiettivo è quello di trasmettere un flusso di dati non strutturati attraverso un collegamento fisico , occupandosi della forma e dei livelli di tensione del segnale. Ha a che fare con le procedure meccaniche ed elettroniche necessarie a stabilire, mantenere e disattivare un collegamento fisico.

Semplicemente: si occupa di controllare la rete , gli hardware che la compongono e i dispositivi che permettono la connessione. Gli aspetti del progetto sono volti a garantire che se parte un 1, arrivi effettivamente un 1 e non uno 0.

Si caratterizzano, tra gli altri:

2. Data link Lo scopo di questo livello è far si che un mezzo fisico trasmissivo appaia, al livello superiore, come una linea di trasmissione esente da errori di trasmissione non rilevati. In particolare, il suo obiettivo è quello di permettere il trasferimento affidabile di dati attraverso il livello fisico. Invia frame di dati con la necessaria sincronizzazione ed effettua un controllo degli errori e delle perdite di segnale. Tutto ciò consente di far apparire, al livello superiore, il mezzo fisico come una linea di trasmissione esente da errori di trasmissione.

Questo livello:

3. Network Lo scopo di questo livello è controllare il funzionamento della subnet di comunicazione. In particolare, il suo obiettivo è quello di rendere i livelli superiori indipendenti dai meccanismi e dalle tecnologie di trasmissione usate per la connessione e prendersi carico della consegna a destinazione dei pacchetti.

È responsabile di:

4. Transport Lo scopo di questo livello è di accettare dati dal livello superiore, spezzettarli in pacchetti, passarli al livello network e assicurarsi che arrivino alla peer entity che si trova all'altra estremità della connessione. In particolare, il suo obiettivo è quello di permettere un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra due host. È il primo livello realmente end-to-end , cioè da host sorgente a destinatario.

È responsabile della creazione di connessioni di livello network (attraverso i servizi del livello network ) per ogni connessione di livello transport richiesta.

5. Session Il compito principale del quinto strato è quello di coordinare il dialogo tra utenti basandosi sul servizio offerto dal livello di trasporto, offrendo i medesimi servizi offerti da quest'ultimo. L'obiettivo di questo livello è quello di controllare la comunicazione tra applicazioni. Instaurare, mantenere e abbattere connessioni (sessioni) tra applicazioni cooperanti. Si occupa anche della sincronia di invio/ricezione messaggi. 6. Presentation Si occupa della sintassi e della semantica delle informazioni da trasferire. L'obiettivo di questo livello è quello di trasformare i dati forniti dalle applicazioni in un formato standardizzato e offrire servizi di comunicazione comuni, come la crittografia , la compressione del testo e la riformattazione. 7. Application L'obiettivo di questo livello è quello di offrire una funzione di interfaccia tra utente e macchina.

le tensioni scelte per rappresentare 0 e 1; la durata (in microsecondi) di un bit ; se adoperare la trasmissione simultanea in due direzioni oppure in una sola; la forma dei connettori.

spezzetta i dati provenienti dal livello superiore in frame ; invia i frame in sequenza; aspetta un acknowledgement frame ( ack ) per ogni frame inviato.

routing : scelta ottimale del percorso di rete da utilizzare per garantire la consegna delle informazioni dal mittente al destinatario, scelta svolta dal router ; conversione dei dati nel passaggio fra una rete ed un'altra con diverse caratteristiche.

Fornisce un insieme di protocolli che operano a stretto contatto con le applicazioni. I protocolli delle applicazioni tipiche di questo livello realizzano operazioni come, ad esempio:

Modello TCP/IP A livello concettuale, i livelli del modello TCP/IP hanno la seguente correlazione con quelli del modello OSI:

Somiglianze :

Differenze :

TCP/IP viene considerato uno standard de facto , mentre OSI viene considerato lo standard de iure.

Modello OSI modificato Per comprendere meglio le tecnologie e i protocolli usati realmente nelle reti che ci circondano, si può analizzare il seguente modello OSI modificato.

A differenza del modello di riferimento OSI classico, che non specifica i reali protocolli e dettagli implementativi di ciascun livello, in questo modello modificato invece si discute più nel dettaglio dei protocolli tipicamente usati per realizzare ciascuno dei suoi livelli. Molti di questi protocolli appartengono al modello TCP/IP.

trasferimento file; terminale virtuale; posta elettronica.

sono entrambi basati sul concetto di pila di protocolli indipendenti; i vari livelli di entrambi hanno funzionalità simili.

OSI nasce come modello di riferimento, i protocolli vengono solo successivamente; TCP/IP nasce coi protocolli, il modello di riferimento viene a posteriori.

Le responsabilità di questo livello sono:

Una subnet (sottorete, parte della suddivisione di una singola rete IP) può essere organizzata con due tipi di funzionamento interno:

Algoritmi di routing La funzione principale del livello network è di instradare i pacchetti sulla subnet, tipicamente facendo fare loro molti hop (letteralmente, salti) da un router ad un altro.

Un algoritmo di routing è quella parte del software di livello network che decide su quale linea di uscita instradare un pacchetto che è arrivato:

Gli algoritmi possono essere:

Controllo della congestione Quando troppi pacchetti sono presenti in una parte della subnet, si verifica una congestione che degrada le prestazioni. Ciò dipende dal fatto che, quando un router non riesce a gestire tutti i pacchetti che gli arrivano, comincia a perderli , e ciò causa delle ritrasmissioni che aggravano ancor di più la situazione.

Ci sono due approcci a questo problema:

Internet Internet è una collezione di sistemi autonomi connessi gli uni con gli altri. Al suo interno si possono distinguere alcune componenti:

Ciò che tiene tutto insieme è il protocollo di livello network dell'architettura TCP/IP , e cioè il protocollo IP ( Internet Protocol ), un protocollo datagram (ovvero connectionless e non affidabile). Il protocollo opera come segue: riceve i dati dal livello transport e li incapsula in pacchetti che poi instrada sulla subnet, eventualmente frammentandoli lungo il viaggio; arrivato a destinazione, riassembla (se necessario) i pacchetti, estrae da questi i dati del livello transport e consegna al livello transport i dati nell'ordine in cui sono arrivati.

Indirizzo IP

conoscere la topologia della rete; scegliere di volta in volta il cammino migliore ( routing ); gestire il flusso dei dati e le congestioni (flow control e congestion control); gestire le problematiche derivanti dalla presenza di più reti diverse lungo il cammino dei pacchetti (internetworking).

operare per connessioni ( circuiti virtuali ): la subnet stabilisce un circuito virtuale (un cammino prestabilito tra la sorgente e la destinazione) e tutti i router lungo il cammino memorizzano la parte di loro competenza di tale cammino, instradando automaticamente i pacchetti che contengono l'identificatore di tale circuito virtuale; operare in modo connectionless ( datagram ): in questo caso i router si limitano semplicemente a instradare ogni pacchetto in base al suo indirizzo di destinazione, decidendo di volta in volta come farlo proseguire in base a delle tabelle di instradamento che indicano, per ogni possibile destinazione, quale linea in uscita utilizzare; in questo caso i pacchetti viaggiano indipendentemente e vengono rimessi in ordine dal livello network solo a destinazione.

in una subnet non orientata alla connessione ( connectionless ) l'algoritmo viene applicato ex novo a ogni pacchetto ; in una subnet basata su circuiti virtuali (quindi orientata alla connessione ) l'algoritmo viene applicato solo allʼinizio della creazione del circuito.

non adattivi (static routing) : le decisioni di routing sono prese in anticipo, all'avvio della rete, e sono comunicate ai computers; adattivi (dynamic routing ): le decisioni di routing sono riformulate a seconda delle condizioni (traffico, topologia di rete, ecc.) molto spesso.

open loop (senza controreazione): cerca di impostare le cose in modo che la congestione non avvenga, ma poi non effettua azioni correttive in caso avvenga. closed loop (con controreazione): tiene sott'occhio la situazione della rete, intraprendendo le azioni inopportune se necessario.

backbones principali (linee ad alta velocità); reti regionali (USA); reti nazionali (Europa e resto del mondo); reti locali.

I dispositivi collegati alla rete che usano il protocollo IP vengono identificati univocamente grazie a un indirizzo particolare chiamato indirizzo IP. Esso è formato da 32 bit e codifica due cose:

Per permettere una migliore organizzazione della rete, gli indirizzi disponibili sono stati suddivisi in classi in base alle dimensioni del network da gestire. Le classi sono cinque (A, B, C, D, E) e di queste solo le prime tre possono essere utilizzate per assegnare indirizzi agli hosts.

Per quanto riguarda il collegamento tra due router , esso non avviene direttamente, ma attraverso una subnet (un network può essere diviso in varie subnet) che li collega.

4. Livello transport Il compito di questo livello è quello di fornire un trasporto di dati affidabile ed efficace dall'host di origine a quello di destinazione, indipendentemente dalla rete utilizzata.

Questo è il livello dove si gestisce per la prima volta una conversazione diretta , senza intermediari, fra sorgente e destinazione. Da ciò discende che questo livello è presente solo sugli hosts e non nei router della subnet di comunicazione.

Le funzioni di questo livello sono, inoltre:

5. Livello application Nel modello di architettura ISO/OSI modificato (e anche nell'architettura TCP/IP) sopra il livello transport si trova il livello application , nel quale viene effettivamente svolto il lavoro utile per l'utente. In questo livello si trovano diverse tipologie di oggetti, tra cui protocolli di supporto come il DNS e HTTP.

DNS (Domain Name System) Dal momento che riferirsi a una risorsa (che sia un host o l'indirizzo di posta elettronica di un utente) utilizzando un indirizzo IP numerico è estremamente scomodo, si è creato un meccanismo tramite il quali tali risorse possono essere identificate tramite un nome logico , cioè una stringa di caratteri più comprensibili per un essere umano, come ad esempio:

La corrispondenza tra gli indirizzi IP e i nomi logici si effettua mediante l'uso del Domain Name System , uno schema generico di denominazione basato sul concetto di dominio la cui funzione è quella di protocollo per il mantenimento e distribuzione delle informazioni sulle corrispondenze.

Esempi di domini sono:

A sinistra, esempi di top-level domain (USA). A destra, top-level domain per diverse nazioni.

HTTP L' HyperText Transfer Protocol (HTTP) è un protocollo a livello applicativo usato come principale sistema per la trasmissione di informazioni sul web, ovvero in un'architettura tipica client-server.

il network number , ovvero il numero assegnato alla rete IP su cui si trova l'elaboratore; l' host number , ovvero il numero assegnato all'elaboratore.

controllo degli errori; controllo di flusso; riordino dei TPDU (Transport Protocol Data Unit).

repubblica.it (in riferimento a un host); [email protected] (indirizzo di posta elettronica).

messaggi richiedono di fornire informazioni riservate, come passwords, numeri della carta di credito o informazioni personali.

Crittografia e crittoanalisi La crittografia è la branca della crittologia che tratta i metodi per rendere un messaggio non comprensibile/intelligibile a persone non autorizzate a leggerlo, garantendo così il requisito di confidenzialità o riservatezza tipico della sicurezza informatica.

Lʼantagonista della crittografia è la crittoanalisi , ovvero lo studio dei metodi per ottenere il significato di informazioni cifrate senza avere alla chiave che è di solito richiesta per effettuare l'operazione.

Bitcoin Il termine criptovaluta si riferisce a una rappresentazione digitale di un valore basata sulla crittografia , valore concordato tra le parti sulla base della legge della domanda e dell'offerta.

Il Bitcoin , nato nel 2008, è la prima e la più diffusa tra le criptovalute. La generazione di nuova valuta o l'attribuzione di proprietà della valuta sono alcuni degli aspetti che vengono gestiti dal protocollo Bitcoin , un complesso sistema di crittografia.

Funzionamento Ogni utente ha dei wallet , che rappresentano i loro conti. Ogni transazione in bitcoin è pubblica e memorizzata in un database distribuito (blockchain) , che viene cioè replicato nei computer di tutti coloro che possiedono un wallet.

Quando un utente 𝑥 trasferisce criptovaluta a un utente 𝑦 attraverso una connessione P 2 P, l'utente 𝑥 aggiunge alle proprie monete la chiave pubblica di 𝑦 e autorizza la transazione firmandola con la propria chiave privata. La transazione viene inviata sulla rete P 2 P, dove viene controllata e registrata da tutti gli elaboratori che partecipano alla rete.

Blockchain In parole semplici, la blockchain è un registro dove vengono registrati tutti i movimenti di tutti i bitcoin generati. Questo permette di evitare che una quantità già spesa possa essere utilizzata nuovamente dalla stessa persona: ogni punto della rete sa tutto di ogni singola moneta.

Ogni unità del registro è un " blocco "; tutte le unità sono collegate tra loro nell'ordine in cui sono state create. I blocchi che compongono la blockchain sono connessi usando la crittografia , che li lega in modo virtualmente non modificabile.

A verificare la legittimità delle transazioni registrate dai blocchi sono delle figure chiamate miner , ovvero coloro che mettono a disposizione la potenza di calcolo (computers) e le capacità computazionali per portare a termine questi processi. Trattandosi di un'attività particolarmente onerosa, il mining viene ricompensato in criptovaluta; questa viene generata e accreditata in maniera automatica nei wallet degli utenti che con il loro operato contribuiscono al mantenimento del sistema. Il mining è quindi un'attività che consente, a chi la pratica, di generare criptovaluta.