3/16/10
So1ware:
di
sistema
e
applica.vo
•  Di
sistema:
controlla
il
comportamento
del
sistema
stesso
–  il
più
importante
dei
so2ware
di
sistema
è
il
sistema
opera5vo:
Il
Sistema
Opera.vo
•  controlla
le
risorse
del
sistema
•  fornisce
la
base
su
cui
costruire
tu:
gli
altri
programmi
•  Applica.vo:
risolve
i
problemi
dell’utente,
appoggiandosi
sullo
strato
fornito
dal
sistema
opera5vo
2
Il
sistema
opera.vo
•  Con
il
termine
sistema
opera+vo
si
intende
l’insieme
di
programmi
e
librerie
che
opera
direAamente
sulla
macchina
fisica...
–  …
mascherandone
le
caraAeris5che
specifiche...
–  …
e
fornendo
agli
uten5
un
insieme
di
funzionalità
di
alto
livello
Esempi
di
Sistemi
Opera.vi
•  MS‐DOS
•  MS‐Windows
(95,
98,
2000,
XP,
Vista,
7)
•  Unix
–  Commerciali:
Sun
Solaris,
IBM
AIX,
HP‐UX,…
–  Linux
–  BSD
•  Mac
OS
–  Mac
OS
X
•  Altri
(IBM
AS/400,
Symbian,…)
3
Archite:ura
di
un
S.O.
(1/2)
4
Archite:ura
di
un
S.O.
(2/2)
•  Un
moderno
S.O.
è
organizzato
secondo
una
architeAura
“a
stra+”
(a
cipolla)
•  Ogni
strato
implementa
una
macchina
virtuale
più
potente
del
precedente
Programmi
utente
Interfacce
utente
Interprete
dei
comandi
Gestore
del
file
system
–  Appoggiandosi
alle
funzionalità
offerte
dallo
strato
precedente
•  Tale
approccio
permeAe
una
chiara
separazione
tra
interfaccia
e
implementazione
delle
diverse
funzionalità
•  Ogni
strato
è
cos5tuito
da
un
insieme
di
programmi
e
librerie
–  I
meccanismi
di
chiamate
tra
livelli
possono
essere
diversi
•  chiamate
a
soAoprogrammi
•  interruzioni
sincrone
o
asincrone
•  invio
di
messaggi
a
processi
5
Interfaccia
grafica
Gestore
delle
periferiche
Gestori
di
risorse
(kernel)
Gestore
della
memoria
Gestore
dei
processi
(nucleo)
Macchina
fisica
6
1
3/16/10
Il
Nucleo
(KERNEL)
(1/2)
•  Si
appoggia
direAamente
sulla
macchina
fisica
Il
Nucleo
(KERNEL)
(1/2)
•  La
macchina
virtuale
realizzata
dal
nucleo
•  EffeAua
la
ges5one
dei
processi
Processore
virtuale
•  In
un
sistema
mul5tasking
realizza
una
macchina
virtuale
in
cui
ad
ogni
processo
è
assegnata
un
processore
virtuale
Processore
virtuale
•  Comprende
i
principali
programmi
di
risposta
ad
interruzione
Bus di sistema
•  Realizza
le
primi5ve
di
sincronizzazione
e
scambio
messaggi
tra
processi
Disco
7
Il
gestore
della
memoria
(1/2)
•  Realizza
le
funzionalità
di
allocazione
della
memoria
•  La
macchina
virtuale
realizzata
dal
gestore
della
memoria
Memoria
virtuale
Memoria
virtuale
...
Memoria
virtuale
Processore
virtuale
Processore
virtuale
...
Processore
virtuale
Bus di sistema
–  Garantendo
la
protezione
delle
diverse
zone
di
memoria
•  Offre
ad
ogni
processo
la
visibilità
di
un
insieme
di
periferiche
virtuali
dedicate
•  Ges5sce,
almeno
in
parte,
i
malfunzionamen5
delle
periferiche
11
Interfaccia
delle
periferiche
Disco
9
•  Fornisce
agli
stra5
superiori
un
insieme
di
procedure
di
alto
livello
per
l’accesso
alle
diverse
periferiche
Interfaccia
delle
periferiche
Memoria
centrale
Il
gestore
della
memoria
(2/2)
•  Par5ziona
la
memoria
tra
i
vari
processi
che
la
richiedono
•  Maschera
le
caraAeris5che
fisiche
delle
periferiche
Processore
virtuale
8
–  Supera
i
limi5
della
memoria
fisica
e
mostra
ai
processi
uno
spazio
di
memoria
virtuale
Il
gestore
delle
periferiche
(1/2)
...
10
Il
gestore
delle
periferiche
(2/2)
•  La
macchina
virtuale
realizzata
dal
gestore
delle
periferiche
Memoria
virtuale
Interfaccia
periferiche
virtuali
Memoria
virtuale
...
Bus
Processore
virtuale
Interfaccia
periferiche
virtuali
Bus
Processore
virtuale
Bus di sistema
Disco
12
2
3/16/10
Il
gestore
del
file
system
(1/7)
•  E’
responsabile
della
ges5one
delle
periferiche
di
massa
–  Hard
disk
–  CD
/
DVD
–  Memory
s5ck
USB
–  ...
Il
gestore
del
file
system
(2/7)
•  Le
funzioni
di
base
che
sono
supportate
da
un
file
system
sono
–  Il
recupero
di
da5
precedentemente
memorizza5
–  L’eliminazione
di
da5
obsole5
–  La
modifica/aggiornamento
di
da5
preesisten5
–  La
copia
di
da5
•  Fornisce
agli
stra5
superiori
un
insieme
di
procedure
per
l’accesso
al
file
system
•  Tra
suppor5
di
memorizzazione
diversi
(es.
da
HD
a
CD)
•  In
cartelle
diverse
nello
stesso
supporto
•  Garan5sce
la
protezione
nell’accesso
ai
file
13
14
Il
gestore
del
file
system
(3/7)
•  I
da5
contenu5
nella
memoria
di
massa
vengono
struAura5
e
ges55
mediante
una
organizzazione
in
file
Il
gestore
del
file
system
(4/7)
•  L’estensione
è
spesso
associata
al
programma
che
ha
generato
il
file
e
individua
pertanto
la
5pologia
del
contenuto
del
file
– 
– 
– 
– 
– 
– 
•  Un
file
è
un
contenitore
logico
iden5ficato
da
un
nome
(filename)
•  I
filename
generalmente
sono
compos5
da
due
par5
–  ad
es.
curriculum_vitae.doc
–  Il
filename
vero
e
proprio
(curriculum_vitae)
–  L’estensione
(doc)
.exe

file
eseguibili
.txt

file
di
testo
.doc

documen5
di
testo
(MS
Word)
.wav

file
audio
.bmp

immagine
in
formato
bitmap
...
•  Ad
ogni
file
sono
poi
associa5
dal
sistema
opera5vo
altri
da5
–  Data
di
creazione
/
modifica
–  Lunghezza
del
file
(in
byte)
–  Uten5/Gruppi
che
possono
accedere
ai
file
15
16
Il
gestore
del
file
system
(5/7)
Il
gestore
del
file
system
(6/7)
•  I
file
vengono
suddivisi
in
più
contenitori
logici,
chiama5
directory,
cataloghi
o
cartelle
(folders)
–  Le
cartelle
sono
organizzate
secondo
una
struAura
ad
albero
•  Il
file
system
con5ene
una
directory
deAa
radice
(ROOT)
dell’albero
che
può
contenere
file
o
altre
cartelle
•  Ciascun
file
è
individuato
univocamente
dal
suo
nome
completo
o
percorso
assoluto
–  Ad
es.
D:\downloads\temp\002.part
•  Due
file
con
lo
stesso
nome
in
due
cartelle
dis5nte,
ad
esempio
–  D:\Immagini\Compleanno\foto1.jpg
–  D:\Documen5\foto1.jpg
fanno
riferimento
a
due
file
che
in
generale
possono
essere
DIVERSI
17
D:
Documen5
Downloads
Incoming
Temp
...
...
18
3
3/16/10
Il
gestore
del
file
system
(7/7)
•  La
macchina
virtuale
realizzata
dal
gestore
del
file
system
Memoria
virtuale
Interfaccia
periferiche
virtuali
File
Memoria
virtuale
...
File
Interfaccia
periferiche
virtuali
Processore
virtuale
•  Cos5tuiscono
l’interfaccia
verso
l’utente
•  Consentono
l’interazione
dell’utente
con
il
s.o.
e
con
i
programmi
applica5vi
in
esecuzione
File
...
File
–  PermeAono
di
accedere
ai
programmi
conserva5
su
memoria
di
massa
e
mandarli
in
esecuzione
•  allocando
la
memoria
necessaria
•  creando
il
processo
rela5vo
...
Bus
Bus
L’interprete
dei
comandi
e
l’interfaccia
grafica
Processore
virtuale
Bus di sistema
•  Nel
caso
di
un
sistema
mul5utente
forniscono
ai
diversi
uten5
la
visione
di
una
macchina
virtuale
dedicata
19
Classificazione
dei
moderni
S.O.
•  Sistemi
monotask:
–  PermeAono
l’esecuzione
di
un
solo
programma
utente
per
volta
(es.
DOS)
–  Il
computer
a
disposizione
del
programma
dall’inizio
alla
fine
della
sua
esecuzione
–  Coda
dei
job,
ges5ta
FIFO
(first
in,
first
out)
e/o
con
priorità
•  Sistemi
mul5task
–  PermeAono
l’esecuzione
di
più
programmi
utente
contemporaneamente
–  Classificazione
ulteriore:
•  Mul5tasking
coopera5vo
(Windows
3.1,
MacOS
originario)
•  Mul5tasking
preemp5ve
(Windows
95/98/NT,
Unix)
–  Time
sharing
o
meno
20
Svantaggi
dei
sistemi
mono‐tasking
•  Nessuna
interazione
utente‐programma
durante
l’esecuzione
di
qualche
compito
•  Lentezza:
la
CPU
non
può
essere
usata
da
nessun
processo
mentre
il
programma
in
esecuzione
svolge
operazioni
di
I/O
(molto
piu’
lente
di
leAure/scriAure
in
Memoria)
•  Esempio:
DOS
è
un
SO
monotasking;
non
si
può
fare
niente
altro
mentre
si
formaAa
un
floppy
o
si
memorizzano
da5
su
disco
21
Mul.tasking
(.me
sharing)
•  Ripar5zione
del
tempo
di
CPU
tra
tu:
i
processi
che
la
vogliono
•  Ogni
job
rimane
in
esecuzione
solo
per
un
quanto
di
tempo,
poi
l’esecuzione
passa
al
prossimo
job
e
il
primo
va
in
aAesa
22
Sta.
di
un
processo
Selezione
primo
processo
pronto
e
sua
esecuzione
Inizio
esecuzione
–  Esecuzione
globale
più
veloce
•  Durata
del
quanto
di
tempo
tra
100
e
200
millisecondi
–  Granularità
molto
fine
Processi
pron.
•  A
ogni
utente
sembra
di
avere
la
CPU
tuAa
per
lui,
solo
più
lenta
Processo
in
esecuzione
Termine
quanto
di
tempo
Richiesta
operazione
di
I/O
Completamento
operazione
di
I/O
(evento
esterno
aAeso)
23
Processo
in
a:esa
24
4
3/16/10
A:esa
•  Se
il
processo
richiede
operazioni
ad
altri
disposi5vi
(es.
Operazioni
di
I/O),
la
CPU
rimarrebbe
inu5lizzata
–  lo
scheduler
meAe
il
processo
in
stato
di
aAesa,
–  il
dispatcher
sceglie
un
nuovo
processo
tra
i
pron5
dalla
tabella,
–  quando
l’operazione
sarà
finita,
lo
scheduler
dichiarerà
di
nuovo
pronto
il
processo
•  PermeAe
un
u5lizzo
molto
più
efficiente
delle
risorse
di
elaborazione
Bootstrap
(1/2)
•  Come
avviene
l’avvio
del
SO?
• 
All’inizio,
la
CPU
ha
un
indirizzo
fissato
nel
registro
contatore
di
programma,
che
punta
all’indirizzo
nella
ROM
(Read
Only
Memory)
ove
inizia
il
programma
di
bootstrap
che
è
sempre
memorizzato
lì
• 
L’esecuzione
del
programma
di
bootsrap
trasferisce
il
kernel
del
Sistema
Opera5vo
da
una
parte
prestabilita
della
memoria
di
massa
(hard‐disk,
floppy‐disk,
CD‐Rom,…)
in
memoria
principale
• 
Quindi
l’esecuzione
prosegue
con
un
salto
all’area
di
memoria
principale
contenente
il
Sistema
Opera5vo
(che
quindi
viene
mandato
in
esecuzione)
• 
Tra
le
prime
operazione
del
kernel
del
Sistema
Opera5vo
vi
sono
5picamente
quelle
di
caricamento
di
altri
componen5
so2ware:
–  Esempio:
•  durante
la
digitazione
di
un
documento
di
testo,
l’utente
compie
molte
pause
per
rifleAere
sul
contenuto
che
sta
scrivendo
•  questo
tempo
è
usato
dal
sistema
per
compiere
altre
operazioni
in
contemporanea
(ad
es.
ges5re
la
ricezione
di
e‐mail)
–  driver
delle
periferiche
installate
–  programmi
di
sistema
lancia5
automa5camente
all’avvio
25
26
Bootstrap
(2/2)
MS‐DOS
•  Sviluppato
dalla
Microso2
nel
1981
per
il
PC
IBM
•  AdoAato
da
altri
con
PC
IBM‐compa5bili
•  Molto
limitato:
–  mono‐utente,
–  mono‐tasking
•  Circa
50
comandi
per
il
SO:
– 
– 
– 
– 
– 
– 
– 
– 
DIR
per
vedere
il
contenuto
di
una
directory
COPY
per
copiare
file
DEL
per
cancellare
un
file
REN
per
cambiare
il
nome
a
un
file
CD
per
muoversi
in
un
altra
directory
MD
per
creare
nuove
directory
RD
per
cancellare
directory
Nome
file:
per
eseguire
il
file
(se
eseguibile)
–  …
27
28
UNIX
MS
Windows
–
Elemen.
principali
• 
• 
• 
• 
• 
• 
• 
• 
• 
•  Sistema
Opera5vo:
Interfaccia
grafica
Mouse
che
sposta
un
cursore
Cut
&
paste
(copia
e
incolla)
Drag
&
drop
(trascina
e
lascia)
Icone
associate
a
file,
directory,
dischi,
…
Directory
come
cartelle
Pulsan5
Finestre:
cornici
con
strumen5
Menu
di
comandi
Cultura
tecnologica
del
progeAo
–  mul5‐utente,
–  mul5‐tasking,
con
5me‐sharing
•  Nato
negli
anni
’60
con
un
progeAo
congiunto
AT&T
e
MIT
•  Concepito
per
poter
funzionare
su
diverse
piaAaforme
hardware
con
adaAamen5
limita5
•  Interprete
dei
comandi:
shell
–  testuale
–  più
di
300
comandi,
con
opzioni
•  Disponibilità
di
interfaccia
grafica
(finestre,
mouse,
etc.)
messa
a
disposizione
da
un
insieme
di
moduli
separa5
(sistema
X
Window)
29
30
5
3/16/10
LINUX
Gnome

Linux
•  Linux
è
una
delle
molte
varian5
di
Unix
con
la
peculiarità
di
essere
open
source
(=
il
cui
codice
sorgente
è
liberamente
disponibile)
•  La
sua
nascita
è
dovuta
in
parte
alle
restrizioni
imposte
da
AT&T
all’uso
di
del
codice
sorgente
di
UNIX
per
la
dida:ca:
–  hanno
indoAo
Andy
Tanenbaum
allo
sviluppo
di
MINIX,
un
implementazione
di
UNIX
per
scopi
dida:ci
–  MINIX
ha
ispirato
Linus
Torvalds
a
realizzare
una
propria
implementazione
del
kernel
UNIX
–  Il
kernel
sviluppato
da
Linus
è
stato
combinato
con
una
suite
di
programmi
UNIX,
sviluppa5
nell’ambito
del
progeAo
GNU
(inizia5va
che
ha
originato
il
movimento
open
source),
per
formare
la
prima
distribuzione
di
Linux
e
renderla
disponibile
su
Internet
come
so2ware
open
source
•  Oggi
esistono
innumerevoli
distribuzioni
di
Linux,
dis5nte
per
diverse
combinazioni
di
kernel,
interfacce
grafiche
(le
più
note
sono
Gnome
e
KDE)
e
programmi
di
u5lità.

KDE
31
BSD
•  BSD
è
un’altra
versione
open
source
del
sistema
opera5vo
Unix,
in
questo
caso
nata
alla
University
of
California,
Berkeley
(USA)
•  Ritenuto
più
stabile
di
Linux
(anche
grazie
ad
un
gruppo
di
sviluppo
più
ristreAo,
quindi
più
controllabile)
ma
il
numero
di
applicazioni
disponibili
è
più
ristreAo
(principalmente
applicazioni
per
i
server)
•  Oggi
esistono
4
distribuzioni
principali
di
BSD:
–  3
distribuzioni
free:
FreeBSD,
OpenBSD,
NetBSD
–  1
distribuzione
a
pagamento,
all’interno
del
Sistema
Opera5vo
Apple
MAC
OS‐X
33
32
MAC
OS‐X
•  MAC
OS‐X
è
l’ul5ma
generazione
di
S.O.
per
i
personal
computer
prodo:
da
Apple
•  Abbandonato
il
precedente
sistema
opera5vo
Apple
ha
costruito
la
nuova
generazione
del
proprio
S.O.
a
par5re
da
una
variante
di
BSD,
chiamata
Darwin,
che
rimane
open
source
•  A
questo
nucleo,
Apple
ha
aggiunto
componen5
proprietari,
dall’interfaccia
grafica
(Aqua)
ad
una
suite
di
applicazioni
e
u5li5es.
Archite3ura
MAC
OS‐X
Applicazioni
GUI

Kernel,
gestori
di
risorse
e
servizi
di
base
34
6
Scarica

Il Sistema OperaYvo Software: di sistema e applicaYvo Il sistema