Lucidi - Lintar

Transcript

Lucidi - Lintar
Corso di Laurea in Scienze e
Tecnologie Chimiche
corso di
Informatica Generale
Paolo Mereghetti
DISCo – Dipartimento di Informatica,
Sistemistica e Comunicazione
Sistema Operativo
Prima parte
Sistema Operativo: punto di vista
funzionale
• Insieme di programmi (componente sw) che
interagiscono e cooperano per
– Gestire in modo efficace ed efficiente
l’elaboratore e le sue periferiche
– Creare un “ambiente virtuale” per facilitare
l’interazione uomo-macchina: il SO opera sull’hw
isolando gli utenti dai dettagli dell’architettura hw
e fornendo loro un insieme di funzionalità di alto
livello (es. linguaggio di comandi per interagire
con la macchina)
• Alcuni esempi di SO: DOS, MS-Windows, Mac
System X, UNIX, LINUX
Sistema Operativo: Punto di
vista strutturale
• Struttura a “buccia di
cipolla”: insieme di
strati funzionali in cui
ogni livello
– Fornisce funzionalità e
servizi diversi
– Maschera le
caratteristiche della
macchina hw
– Si basa sulle funzioni e
servizi offerti dagli altri
livelli
Kernel
Gestione delle risorse
Interfaccia comandi
Sistema Operativo: diverse
tipologie
• Monoutente (Personal Computer) vs Multiutente
(più utenti possono operare contemporaneamente
sul medesimo elaboratore)
• Monoprogrammato (un solo programma) vs
Multiprogrammato (più programmi possono essere
eseguiti “contemporaneamente”)
• In ambiente multiprogrammato (multiutente) il SO
maschera la presenza di altri programmi in
esecuzione (utenti)
– Gestione risorse in modo condiviso tra i diversi processi
(utenti)
– Gestione interazione di diversi processi (utenti)
Sistema Operativo: principali
servizi offerti
• Accensione e creazione ambiente virtuale
• Gestione del processore e dei processi
• Gestione memoria principale
• Gestione memoria virtuale
• Gestione memoria secondaria (File System)
• Controllo e gestione delle periferiche di I/O
(driver)
• Interazione uomo/macchina (Interprete
comandi)
Avviamento dell’elaboratore: fase
di bootstrap
• Caricamento di una parte del SO in memoria
principale
– Programmi per gestione processi
– Programmi per gestione memoria
– Programmi per gestione periferiche
• Identificazione delle risorse hw e
inizializzazione dei relativi programmi di
gestione
• Esecuzione programmi antivirus
• ...
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 multi-tasking (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 multi-tasking (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
0
• Partizione della
X
memoria con
X+1
allocazione
– contigua
– non contigua
Sistema Operativo
Processi
N