Il computer
Utente
Il computer
•Hardware
(processore, i dispositivi di input/output, ecc.)
•Software
(i programmi, ecc.)
La macchina virtuale
Utente
La macchina virtuale
0111000101
1101010100
Hardware
0011110
Il sistema operativo
Utente
0111000101
1101010100
Hardware
0011110
Avvio
Gestione: i processi, la memoria, i disp. di input/output
Interfaccia utente
Funzioni principali del sistema
operativo
• Avvio del computer
• Gestione del processore e dei processi
• Gestione della memoria principale
• Gestione della memoria virtuale
• Gestione della memoria secondaria
• Gestione dei dispositivi di input/output
• Interazione con l’utente
Funzioni principali del sistema
operativo
• Avvio del computer
• Gestione del processore e dei processi
• Gestione della memoria principale
• Gestione della memoria virtuale
• Gestione della memoria secondaria
• Gestione dei dispositivi di input/output
• Interazione con l’utente
Un processo è
un programma
in esecuzione
Esecuzione dei programmi
• Quando si scrive un comando (oppure si
clicca sull’icona di un programma) ….
C:> print foo1.doc
C:>
oppure
Esecuzione dei programmi
• Quando si scrive un comando (oppure si
clicca sull’icona di un programma), il sistema
operativo:
– Cerca il programma corrispondente sulla memoria
secondaria
– Copia il programma in memoria principale
–…
Processore Memoria principale
Stampante
Memoria
secondaria
Esecuzione dei programmi
• Quando si scrive un comando (oppure si
clicca sull’icona di un programma), il sistema
operativo:
– Cerca il programma corrispondente sulla memoria
secondaria
– Copia il programma in memoria principale
– Imposta il registro Program Counter con l’indirizzo
in memoria principale della prima istruzione del
programma
Il sistema operativo
• Mono-utente o multi-utente (mono/multiuser)
– Si distingue tra elaboratori di tipo personale e
elaboratori utilizzabili da più utenti
contemporaneamente
• Mono-programmati o multi-programmati
(mono/multi-tasking)
– Si distingue tra elaboratori in grado di eseguire un
solo programma alla volta oppure più programmi
“contemporaneamente”
Sistemi mono-utente, monoprogrammati
• Un solo utente può eseguire un solo
programma alla volta
– È forzato a sequenzializzare i programmi
• Ma il processore non viene sfruttata al meglio
– Il processore è molto più veloce dei supporti di
memoria secondaria e delle altre periferiche
– Passa la maggior parte del suo tempo in attesa
– Durante l’attesa si dice che il processore è un uno
stato inattivo (idle)
Sistemi mono-utente, monoprogrammati
• Supponiamo che il nostro sistema sia un bar
in cui il barista serve diversi clienti
• Il barista è corrispondente del processore, i
clienti sono l’equivalente dei processi da
eseguire
• Esecuzione mono-programmati:
Client 1
Ordinare
Preparare
il caffé
Consumare
Pagare
Client 2
Ordinare Preparare
il caffé
Consumare
Pagare
Esempio 1
• Un processo è costituito da 1000=10-3 istruzioni
– Ogni istruzione richiede 10-6 secondi per essere eseguita dal
processore
– Tempo totale di esecuzione?
Esempio 1
• Un processo è costituito da 1000=103 istruzioni
– Ogni istruzione richiede 10-6 secondi per essere eseguita dal
processore
– Tempo totale di esecuzione: 103 * 10-6 = 10-3 = 1
millisecondo
• A metà esecuzione è richiesta la lettura di un dato dal
disco. Il tempo di lettura è 1 millisecondo
• Tempo totale di esecuzione = 2 millisecondi
• Idle time = 1 millisecondo: 50% del tempo totale di
esecuzione ed è tempo sprecato
Esempio 2
• Un processo è costituito da 1000=103 istruzioni
– Ogni istruzione richiede 10-6 secondi per essere eseguita dal
processore
– Tempo totale di esecuzione: 103 * 10-6 = 10-3 = 1
millisecondo
• A metà esecuzione è richiesta un dato al’utente. Il
tempo di reazione è 1 secondo
• Tempo totale dell’esecuzione = 1001 millisecondi
• Idle time = 1 secondo: 99,9% del tempo totale di
esecuzione ed è tempo sprecato
Esecuzione sequenziale
Processo P1
inizio
Processo P2
fine inizio
fine
in attesa
esec
Processore
attivo
idle
Soluzione
• In realtà:
Client 1
Client 2
Ordinare
(C1)
Ordinare
(C2)
Preparare
il caffé (C1)
Preparare
il caffé (C2)
Pagare
(C1)
Pagare
(C2)
Soluzione: sistemi
multiprogrammati
• Quando il processore è nello stato di idle la si
può sfruttare per eseguire (parte di) un altro
processo
• Quando un processo si ferma (per esempio in
attesa di un dato dall’utente) il processore
può passare ad eseguire le istruzione di un
altro processo
• Il sistema operativo si occupa
dell’alternanza tra i processi in esecuzione
Sistemi multiprogrammati
Dal punto di vista dei processi
P1
P2
Dal punto di vista del processore
esec P1
esec P2
Sistemi multiprogrammati
• Più programmi sembrano essere
eseguiti “contemporaneamente”
• In realtà in esecuzione c’è sempre un
solo processo
– Ma, se l’alternanza è molto frequente, si ha
un’idea di simultaneità
Sistemi multiprogrammati
• Un processo può trovarsi in tre diversi
stati: in esecuzione, in attesa,
pronto
esecuzione
pronto
Quando è potenzialmente in condizione
di poter utlizzare il processore che è
occupato da un altro processo
Quando sta utlizzando
il processore
attesa
Quando è in attesa del verificarsi
di un evento esterno
Sistemi multiprogrammati
terminazione
esecuzione
richiesta I/O
o risorse
scambio
esecuzione
pronto
I/O terminato o
risorsa disponibile
attesa
Sistemi multiprogrammati
Quando un processo viene creato viene
messo nello stato di pronto
• in tale stato rimane fino a quando
non arriverà il suo turno
pronto
Sistemi multiprogrammati
Un processo può abbandonare lo stato di esecuzione per tre
diverse ragioni
esecuzione
pronto
attesa
Sistemi multiprogrammati
Un processo può abbandonare lo stato di esecuzione per tre
diverse ragioni
terminazione
esecuzione
pronto
Il processo termina
la sua esecuzione
e abbandona il sistema
attesa
Sistemi multiprogrammati
Un processo può abbandonare lo stato di esecuzione per tre
diverse ragioni
terminazione
esecuzione
richiesta I/O
o risorse
pronto
attesa
Il processore viene liberato e può essere
concesso ad un altro processo pronto
Sistemi multiprogrammati
Un processo può abbandonare lo stato di esecuzione per tre
diverse ragioni
terminazione
esecuzione
scambio
esecuzione
pronto
richiesta I/O
o risorse
attesa
Per realizzare in modo equo l’alternanza tra i processi, in certi casi può essere
opportuno fermare un processo e concedere il processore ad un altro processo
Sistemi multiprogrammati
• In quali casi è opportuno fermare un
processo e concedere il processore ad
un altro processo?
– Se un processo non si ferma mai in attesa
di input/output o di una risorsa
– Se più utenti vogliono usare il computer
• Si parla di scheduling del processore
Esempio di scheduling:
Round Robin
• Ad ogni processo viene assegnato un quanto
di tempo del processore (time slice)
• Terminato il quanto di tempo, il processore
viene sospeso e rimesso nella coda dei
processi pronti (al fondo)
• Il processore viene assignata ad un altro
processo pronto
• Un processo può usare meno del quanto che
gli spetta se deve eseguire operazioni di I/O
oppure ha terminato la sua computazione
Sistemi multi-utente, multiprogrammati
• Più utenti possono usare allo stesso
tempo il computer
– perché il processore viene assegnata
periodicamente ai processi dei vari utenti
• All’aumentare del numero di processi e
del numero di untenti le prestazioni del
sistema possono degradare
Esercizio 1a
• Supponiamo di avere nella coda dei processi pronti tre processi
P1, P2 e P3 con i seguenti “comportamenti” in termini di
computazione e tempi di attesa
P1
10
P2
10
P3
10
calcolo
40
10
30
20
10
10
10
in attesa
10
• Quante unità di tempo ci vogliono per portare a termine tutti e
tre i processi un sistema mono-programmato?
Esercizio 1a: soluzione
• Quante unità di tempo ci vogliono per portare
a termine tutti e tre i processi un sistema
mono-programmato?
10
40
10 10
20
30
Tot(P1)=60, Tot(P2)=60, Tot(P3)=50
Tot(P1+P2+P3) = 60 + 60 + 50 = 170
10
10 10
10 10
Esercizio 1b
• Supponiamo di avere nella coda dei processi pronti tre processi
P1, P2 e P3 con i seguenti “comportamenti” in termini di
computazione e tempi di attesa
P1
10
P2
10
P3
10
calcolo
40
10
30
20
10
10
10
in attesa
10
• Quante unità di tempo ci vogliono per portare a termine tutti e
tre i processi un sistema multi-programmato, se si applica
l’alternanza tra i processi?
Esercizio 1b: una soluzione
• Quante unità di tempo ci vogliono per portare a termine tutti e
tre i processi un sistema multi-programmato, se si applica
l’alternanza tra i processi?
P1
10
P2
10
P3
10
40
10
30
20
10
10
10
10
In questo caso, quando
un processo va in attesa,
Il processsore viene
assegnato al primo
processo pronto
Totale
= 100
P1 in attesa
P2 in attesa
P3 in attesa
P3 in attesa
Esercizio 2
• Supponiamo di avere nella coda dei
processi pronti i processi
– P1
– P2
– P3
– P4
durata
durata
durata
durata
=
=
=
=
40
10
60
30
unità
unità
unità
unità
di
di
di
di
tempo
tempo
tempo
tempo
• Qual è la sequenza di esecuzione con
una politica di scheduling Round Robin
e quanto di tempo pari a 20 unità?
Esercizio 2: soluzione
– P1
– P2
– P3
– P4
P1
0
P2
20 30
durata
durata
durata
durata
P3
=
=
=
=
40
10
60
30
P4
50
unità
unità
unità
unità
P1
70
90
di
di
di
di
tempo
tempo
tempo
tempo
P3
P4
P3
110 120
Non consideriamo eventuali tempi di attesa
140
Gestione dei processi
• Per gestire un insieme di processi
“contemporaneamente” attivi il sistema
operativo mantiene la tabella di processi
– Per ogni processo vi è un descrittore nel quale
sono memorizzate informazioni come:
•
•
•
•
L’identificatore del processo
L’identificatore dell’utente proprietario
Lo stato del processo
Ecc.
• Queste informazioni servono per realizzare
l’operazione di cambio di contesto
Gestione dei processi
• Cambio di contesto:
– Quando un processso rilascia il processore,
le informazioni sul suo stato vengono
memorizzate nel suo descrittore all’interno
della tabella dei processi
– In questo modo, quando tornerà
nuovamente in esecuzione, il processo
potrà ripartire dal punto in cui era
stato interotto
Funzioni principali del sistema
operativo
• Avvio del computer
• Gestione del processore e dei processi
• Gestione della memoria principale
• Gestione della memoria virtuale
• Gestione della memoria secondaria
• Gestione dei dispositivi di input/output
• Interazione con l’utente
Gestione della memoria
secondaria
• La memoria secondaria serve per memorizzare
programmi e dati in modo permanente
• Il file system: quella parte del sistema operativo
che si occupa di gestire e strutturare le informazioni
memorizzate sulla memoria secondaria
Processore
Stampante
Memoria principale
Memoria
secondaria
Il file system
• I file vengono utilizzati come supporto per la
memorizzazione dei programmi e dei dati
– Un file deve avere un nome logico
Consigli: è meglio usare nomi significativi
☹
tesi.doc, inf9.ppt ☺
mio.doc, a.txt
Il file system
• Un file ha anche una estensione
Esempi: .doc .txt .html .jpg .gif
Le estensioni sono importanti perchè di solito
indicano il tipo del file (quindi danno
informazioni sul programma applicativo in
grado di manipolarlo)
Il file system
• Mediante il file system il sistema operativo
fornisce una visione astratta dei file su disco
Utente
Avvio
Gestione: i processi,
Interfaccia utente
011100010
Hardware
111010101
000011110
la memoria, i disp. di input/output
Il file system
• Il file system permette all’utente di:
– Identificare ogni file mediante il suo n ome
– Operare sui file mediante opportune operazioni
– Effetuare l’accesso alle informazioni grazie ad
operazione di alto livello, che non tengono
conto del tipo di memorizzazione
• Per esempio, si deve accedere allo stesso modo ad un
file memorizzato sul disco rigido oppure su un CD-ROM
–…
Il file system
• Il file system permette all’utente di:
–…
– Strutturare i file, organizzandoli in
sottoinsiemi secondo le loro caratteristiche,
per avere una visione “ordinata” e
strutturata delle informazioni sul disco
– Proteggere i propri file in un sistema
multi-utente, ossia per impedire ad altri
utenti di leggerli, scriverli o cancellarli
Il file system
• Un insieme di operazioni minimale:
–
–
–
–
–
–
–
–
Creazione di un file
Cancellazione di un file
Copia o spostamento di un file
Visualizzazione del contenuto di un file
Stampa di un file
Modifica del contenuto di un file
Rinomina di un file
Visualizzazione delle caratteristiche di un file
Organizzazione gerarchica dei
file
• Il numero di file che devono essere
memorizzati su un disco può essere
molto elevato
• Si ha quindi la necessità di mantenere i
file in una forma ordinata
• Un unico spazio (“contentitore”) di file è
scomodo
Organizzazione gerarchica dei
file
• L’idea è quella di ragruppare i file in
sottoinsiemi
• Questi sottoinsiemi di file vengono
memorizzati all’interno di contenitori
dette cartelle (directory)
• I nomi dei file sono locali alle directory
– Si possono avere due file con lo stesso
nome perché siano in due directory diverse
Organizzazione gerarchica dei
file
• I computer sono dotati di più unità di
memoria secondaria, per esempio:
– Unità per floppy disk: A
– Unità per disco fisso: C
– Unità per CD-ROM: D
• DOS e Windows usano dei nomi per
distinguire le unità
Organizzazione gerarchica dei
file
Photoshop.exe
Applicazioni
A:
Biblioteca
Elab_imm
Premiere.exe
Elab_testi
Winword.exe
Narrativa-Fra
libro1
libro2
Narrativa-Ing
libro1
Narrativa-Ita
libro1
libro2
Utenti
Bianchi …
Rossi …
Indice
Pautasso …
Organizzazione gerarchica dei
radice
file
Photoshop.exe
dell’albero
Applicazioni
A:
Biblioteca
Elab_imm
Premiere.exe
Elab_testi
Winword.exe
Narrativa-Fra
libro1
libro2
Narrativa-Ing
libro1
Narrativa-Ita
libro1
foglie
libro2
Utenti
Bianchi …
Rossi …
Indice
Pautasso …
Questa struttura viene
chiamata albero
Organizzazione gerarchica dei
file
• Nel caso di un’organizzazione gerarchica a più
livelli il nome non è più sufficiente ad
identificare un file
A:
Biblioteca
Narrativa-Fra
libro1
libro2
Narrativa-Ing
libro1
Narrativa-Ita
libro1
libro2
• Per individuare un file o directory in modo
univoco si deve allora specificare l’intera
sequenza di directory che lo contengono, a
partire dalla radice dell’albero (“pathname”)
Organizzazione gerarchica dei
file
• Ad esempio il file libro1 di narrativa
italiana è univocamente identificato dal
pathname
A:\Biblioteca\Narrativa-Ita\libro1
• La directory Pautasso di Utenti è
identificata dal pathname
A:\Utenti\Pautasso
Organizzazione gerarchica dei
file
• Un altro modo di individuare un file o una
directory è basato sul concetto di posizione
relativa (pathname relativo)
• In questo caso per indivduare un file o una
directory in modo univoco si deve specificare
l’intera sequenza di directory lo
contengono, a partire dalla posizione
corrente
Organizzazione gerarchica dei
file
Photoshop.exe
Applicazioni
A:
Biblioteca
Elab_imm
Premiere.exe
Elab_testi
Winword.exe
Narrativa-Fra
libro1
libro2
Narrativa-Ing
libro1
Narrativa-Ita
libro1
libro2
Utenti
Bianchi …
Rossi …
Indice
Pautasso …
Posizione corrente
Organizzazione gerarchica dei
file
• Se la posizione corrente è A:\Biblioteca, il file
libro1 di narrativa italiana è univocamente
identificato dalla sequenza
Narrativa-Ita\libro1
• Se la posizione corrente è A:\Utenti, la
directory Pautasso è identificata dalla
sequenza
Pautasso
• “Narrativa-Ita\libro1” e “Pautasso” sono
esempi di pathname relativo
Organizzazione fisica dei file
presentazione.ppt
Sistema operativo
(file system)
Blocco
Settore
Organizzazione fisica dei file
• Nel caso della memorizzazione fisica si
devono considerare:
– Quali file sono memorizzati si disco?
– Dove sono?
– Come si può ottimizzare lo spazio su disco,
evitando degli sprechi?
Organizzazione fisica dei file
• Come sono memorizzati i file?
– Allocazione contigua
• Ogni file è visto come una entità indivisibile
memorizzata in blocchi contigui
• Noto l’indirizzo del primo blocco e il numero di
blocchi si accede alle informazioni
– Allocazione sparsa
• I blocchi sono memorizzati separatamente
Allocazione sparsa
• Possiamo vedere il disco fisso come un
quaderno can tante pagine su cui un utente
scrive delle relazione (file)
• L’utente ha la necessità di scrivere,
cancellare, e modificare i file
• Problemi:
– Quando un file viene cancellato rimangono delle
pagine “vuote”
– La modifica di un file può dare origine ad una
nuova versione più corta o più lunga di quella
precedente (potrebbero esserci dei file richiedono
delle pagine già occupate da altri file)
Allocazione sparsa
• In analogia con un quaderno “ad anelli”, le
pagine possono essere spostate, aggiunte,
cancellate senza creare sprechi di spazio e
senza limitazioni sulla cerscita delle
dimensioni di un file (l’unico limite è quello di
avere pagine bianche)
• In analogia con l’utilizzo di un indice, le
pagine del quaderno vengono numerate e
l’indice conterrà (nell’ordine) i numeri delle
pagine del file
Scarica

inf9 - Dipartimento di Informatica