Corso di Laurea in
Biotecnologie
corso di
Informatica
Paolo Mereghetti
DISCo – Dipartimento di
Informatica, Sistemistica e
Comunicazione
Sistemi Operativi
Gestione dei Processi
• “Processo = programma in
esecuzione”
• P.S. ad ogni programma in
esecuzione possono corrispondere
più processi
• Oggetto dinamico (vs programma
= oggetto statico)
• Esecuzione di un processo
– Il programma è prelevato dal disco
(memoria secondaria)
– Portato in memoria centrale
– Attivato
Evoluzione dei processi – diagramma
stati/transizioni
Interruzione esterna
generata dal SO
Inizio
esecuzione
In esecuzione
Pronto
Interruzione
interna
Fine
esecuzione
In attesa
Evento esterno
atteso
Interruzioni
• Interna: generata dal processo
stesso
– Il processo passa dallo stato In
Esecuzione a In Attesa
– Per una buona logica di gestione dei
processi (es. se il processo è in attesa
di un input dall’utente o da un altro
programma è inutile che tenga
occupata l’unità di elaborazione)
• Esterna: generata da un processo
diverso dal processo in esecuzione
– Dal SO  politiche di gestione dei
processi (es. Round-Robin)
Da In Esecuzione a Pronto
– Dai programmi di gestione delle
periferiche (es.l’utente ha inserito un
input da tastiera ...)
da In Attesa a Pronto
Modalità di esecuzione in ambienti multitasking (1)
• Modalità batch
– Per l’esecuzione di programmi
caratterizzati da lunghe elaborazioni
non interattive (es. calcoli matematici)
– Un programma in esecuzione non
viene interrotto: il processo i-esimo
parte solo quando si è conclusa
l’elaborazione del processo (i-1)-esimo
• Modalità real-time
– Per programmi che possono
necessitare un’esecuzione immediata
(es. sistemi di controllo di volo,
impianti di sicurezza)
Modalità di esecuzione in ambienti multitasking (2)
• Modalità time-sharing
– Tempo di elaborazione suddiviso
fra vari processi: alternanza dei
programmi in esecuzione
– Il processore inizia un processo,
ma lo può sospendere per
dedicarsi a un altro e poi tornare
al processo sospeso
– L’utente ha comunque la
sensazione di avere un
processore dedicato
Modalità Batch: come il triathlon
• I tre processi nuoto, bici,
corsa vengono iniziati e
portati alla fine senza
interruzioni
• Le risorse di ogni processo
(cuffia e occhialini, scarpette
e casco) vengono caricate
all’inizio del processo e
rilasciate alla fine
NUOTO
BICI
CORSA
Time-sharing come il duathlon
• Dopo la prima corsa salvo le
risorse (tolgo le scarpe da
corsa) e carico quelle per la
bici (scarpette e casco); alla
fine scambio di nuovo per
ripartire a piedi
CORSA
BICI
CORSA
Modalità d’esecuzione – time-sharing
In esecuz
Pronto
P1
Pronto
In esecuz
P2
In esecuz
Pronto
Dal pto di
vista di P1
Dal punto di
vista di P2
P1
• Percezione che P1 e P2 siano eseguiti
contemporaneamente
• Dal punto di vista del processore, viene eseguito
un solo processo alla volta
Gestione della Memoria Principale
• L’esecuzione di un programma
richiede che esso risieda (con i dati
su cui opera) in memoria principale
• Gestire della memoria
– Gestione memoria principale “reale”:
condivisione della memoria
– Gestione memoria virtuale –
realizzazione di una visione astratta
della memoria reale (secondaria) per
estendere le potenzialità della
memoria principale
Gestione della Memoria Reale
•Condivisione da
parte dei processi
delle celle di
memoria
•Partizione della
memoria con
allocazione
–contigua
–non contigua
0
X
Sistema Operativo
X+1
Processi
N
Problemi che il SO deve gestire per la
condivisione della memoria
• Quante partizioni? Quale
dimensione?
• Partizioni statiche e definite a
priori o dinamiche?
• Quali processi nelle varie
partizioni?
• Come si tiene traccia dei vari
processi in esecuzione (es. stato)?
• Come si proteggono i dati dei vari
processi tra loro?
Gestione della Memoria Virtuale
• Necessaria in particolare per
sistemi multiprogrammati e
multiutente (elevati requisiti di
memoria)
• Il SO operativo fornisce una
visione astratta in cui i vari
processi (e utenti) hanno a loro
disposizione una macchina virtuale
(con quantità di memoria per ogni
processo o utente pari alla
quantità totale di memoria reale)
• Diverse tecniche (es. Swapping,
Demand Paging): tutte richiedono
oltre alla memoria principale una
memoria secondaria (es. hard disk)
File System:
Gestione della memoria secondaria
• Parte del SO per la gestione e
strutturazione delle
informazioni
• Insieme di programmi per
l’organizzazione
– Logica  Fornire all’utente una
visione logica dei file (che
astrae dall’organizzazione
fisica)
– Fisica  gestire i file nella
memoria secondaria (dischi) e
ottimizzare l’utilizzo dello spazio
disponibile
File system: Organizzazione logica
• L’utente deve poter
– Organizzare un insieme in file e
cartelle i dati
– Accedere ai dati
– Identificare ogni file con un
nome logico
– Operare sui file (creare,
eliminare, cambiare nome,
modificare)
– Proteggere i propri file (da
accessi non desiderati)
File system: Organizzazione logica
Paolo
Lezione1
Lezione2
Lezione3
Marco
Lezione1
FotoMarco
Utenti
DISCO
Sistema
DIRECTORIES
FILES
File system: Organizzazione fisica
• Il SO deve:
– Tener traccia dei file
memorizzati e della loro
posizione fisica sui dischi
– Ottimizzare l’utilizzo dello
spazio su disco
– Diverse tecniche (es.
Allocazione contigua,
allocazione sparsa)
Gestione delle Periferiche di Input/Output
• Il SO deve
– Fornire all’utente
• visione astratta dei dispositivi
• comandi per utilizzare i dispositivi
– Ottimizzare l’utilizzo dei
dispositivi
Gestione Input/Output
• I dispositivi sono seriali: possono
essere usati da un solo processo
alla volta
• La maggior parte dei dispositivi
sono pre-emptive (non
interrompibili)
• Meccanismi di coordinazione delle
varie richieste
• Diverse politiche/strategie per la
gestione delle code di processi in
attesa di utilizzare una risorsa (es.
con priorità, FIFO – First-In-FirstOut)
Gestione Input/Output
• Il SO fornisce un insieme di
comandi (linguaggio d’interazione
tra utente e sistema) che fornisce
una visione astratta del dispositivo
• Es.
– Stampa: per l’utente equivale all’invio
di un messaggio, indipendentemente
da come avviene il trasferimento dei
byte
– Lettura dello stato della stampante
– Modifica delle caratteristiche della
stampa: l’utente utilizza un pannello di
controllo, senza curarsi dei dettagli
implementativi
Interazione con Utente – Interfaccia
Testuale
Interazione con Utente – Interfaccia
Grafica
Scarica

Sistemi Operativi parte 2